Im ListIconGadget zeichnen
Verfasst: 15.03.2012 04:23
Hallo.
Ich habe eine Liste mit Zahlen, die im ListIconGadget gelistet sind.
Nun möchte ich in der Spalte daneben einen Balken zeichnen,
abhängig von der Zahl.
Geht sowas und wenn ja, habt ihr eine Lösung für mich?
Bisher habe ich meine komplette Liste auf einem Image gezeichnet.
Hier mal ein Beispiel, was ich meine:
Vielen Dank schon mal im Voraus.
Bernd
PB 4.60 (x86) Win Vista Home
Ich habe eine Liste mit Zahlen, die im ListIconGadget gelistet sind.
Nun möchte ich in der Spalte daneben einen Balken zeichnen,
abhängig von der Zahl.
Geht sowas und wenn ja, habt ihr eine Lösung für mich?
Bisher habe ich meine komplette Liste auf einem Image gezeichnet.
Hier mal ein Beispiel, was ich meine:
Code: Alles auswählen
EnableExplicit
Define EventID
Define i
Global Dim img(10)
Procedure ZeichneBalken(zeile)
; Diesen Teil möchte ich
; durch einen echten Grafikbalken ersetzen.
Protected zahl=Val(GetGadgetItemText(1,zeile,0))
Protected a$=LSet("",zahl,Chr(149))
SetGadgetItemText(1,zeile,a$,1)
;
Protected Texth = SendMessage_(GadgetID(1), #LVM_GETITEMSPACING, 1, 0) >> 16 - 4
Protected faktor=8 ; wird später Errechnet
img(zeile)=CreateImage(#PB_Any,zahl,Texth)
StartDrawing(ImageOutput(img(zeile)))
Box(0,0,zahl*faktor,Texth,RGB(255,0,0))
StopDrawing()
;BalkenEinsetzen
EndProcedure
If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ListIconGadget(1,10,10,WindowWidth(0)-20,WindowHeight(0)-20,"Zahl",50,#PB_ListIcon_GridLines)
AddGadgetColumn(1,1,"Balken",300)
For i=0 To 9
AddGadgetItem(1,-1,Str((Random(20)+1)*2))
Next
For i=0 To 9
ZeichneBalken(i)
Next
Repeat
EventID=WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
End
EndIf
ForEver
EndIfBernd
PB 4.60 (x86) Win Vista Home

