Seite 1 von 1

Diagramm (-Gadget?)

Verfasst: 20.07.2010 09:38
von Mok
Hallo.
Gibt es bereits irgendwelche Realisierungen für die folgenden Gadgets?
Bild
Das erste ist nicht wirklich schwer, aber ich frage vorsichtshalber mal. Das zweite, tjo, auch möglich, aber gibt es sowas schon (evtl. API?)

Grüße, Mok.

[OT]Mich hat's auch gewundert wie viel meine CPU im beinahen Leerlauf (Firefox mit 2 Tabs, VLC, PureBasic) arbeitet :shock:[/OT]

Re: Diagramm (-Gadget?)

Verfasst: 20.07.2010 09:45
von STARGÅTE
Ich bezweifel das es "genau" so ein Gadget gibt.

Allgemeinkannst du DiagrammGadgets aber einfach mit einem Imagegadget erstellen.
Koordinatenlinien rein und Graph plotten.

Die Frage ist halt, was soll das Gadget für Events empfangen/senden ...

[OT]Nimm halt IE 8.0, der hat bei mir 0% ^^[/OT]

EDIT: So sieht zB "mein" LineChartGadget aus, mit "komplexer" Achsenbeschriftung und Scroller, einfach mit einem ImageGadget realisiert.
Bild

Re: Diagramm (-Gadget?)

Verfasst: 20.07.2010 10:04
von Mok
Ich hätte da schon mal was zusammengepfuscht (Pfui Deibl, ist der Code hässlich)

Code: Alles auswählen

IncludePath #PB_Compiler_Home + "srod\comateplus\"
XIncludeFile "comateplus.pbi"

Procedure GetLoad()
Define objWMIService.COMateObject
Define objItem.COMateObject
Define colItems.COMateEnumObject
Define Computer.s = "."

objWMIService = COMate_GetObject("winmgmts:\\" + Computer + "\root\cimv2", "")
If objWMIService
  colItems  = objWMIService\CreateEnumeration("ExecQuery('SELECT * FROM Win32_Processor')")
  If colItems
    objItem = colItems\GetNextObject()
    ProcedureReturn objItem\GetIntegerProperty("LoadPercentage")
  EndIf
EndIf
EndProcedure
    
OpenWindow(0,320,320,200,200,"Diagramm")
CreateImage(0,50,130,32)
ImageGadget(0,20,20,50,130,ImageID(0))
ListViewGadget(1,90,20,80,130)
ButtonGadget(2,20,160,100,30,"Clear")

StartDrawing(ImageOutput(0))
 Repeat
   
  Event = WaitWindowEvent()
    
  Select Event
    Case #PB_Event_Gadget
      If EventGadget() = 2
        ClearGadgetItems(1)
      EndIf
    
    Case #PB_Event_Repaint
      FillArea(10,110-Load,#Black,#Black)
      Load = GetLoad()
      Box(10,10,30,100,RGB(0,128,0))
      Box(10,110-Load,30,Load,RGB(10,255,5))
      DrawText(10,110,Str(Load)+" %   ",RGB(10,255,5),RGB(0,0,0))

      SetGadgetState(0,ImageID(0))
      AddGadgetItem(1,-1,Str(Load)+" %")
EndSelect

Until Event = #PB_Event_CloseWindow
StopDrawing()
End
Meine Frage: Wie kann ich den Code optimieren?

21.07. 14:49 Code aktualisiert

Re: Diagramm (-Gadget?)

Verfasst: 23.07.2010 13:37
von Mok
Gut, dann stelle ich mal eine explizite Frage: Warum kann ich keine Events abfangen? Scheinbar braucht die Prozedur GetLoad() so lange, aber warum funzt dann der Task-Manager auch einwandfrei?

Re: Diagramm (-Gadget?)

Verfasst: 29.07.2010 09:29
von RSBasic
Der Thread ist zwar einige Tage alt, aber hier ist ein Code, womit man solche Diagramme zeichnen kann: http://www.purebasic.fr/english/viewtop ... 12&t=24528

Re: Diagramm (-Gadget?)

Verfasst: 26.04.2022 20:13
von Taz
STARGÅTE hat geschrieben: 20.07.2010 09:45 Ich bezweifel das es "genau" so ein Gadget gibt.

Allgemeinkannst du DiagrammGadgets aber einfach mit einem Imagegadget erstellen.
Koordinatenlinien rein und Graph plotten.

Die Frage ist halt, was soll das Gadget für Events empfangen/senden ...

[OT]Nimm halt IE 8.0, der hat bei mir 0% ^^[/OT]

EDIT: So sieht zB "mein" LineChartGadget aus, mit "komplexer" Achsenbeschriftung und Scroller, einfach mit einem ImageGadget realisiert.
Bild
Das sieht wahnsinnig gut aus :allright:
Würdest du den entsprechenden Code vielleicht Teilen? :praise: