Ich habe zwei Listviewgadgets eine voll und eine leer, jetzt will ich aber die Items der leeren Liste mit Punktzahlen versehen.
Das heißt, wenn ich einen Eintrag in die zweite Liste bringe soll auf einem extra StringGadget die gesamte Punktezahl der Objekte in der Liste zu sehen sein.
z.B. ich hab Objekt 1 (10 Punkte), 2 (15 Punkte) und 3 (30 Punkte) in der Liste und auf dem StringGadget soll jetzt 55 Punkte angezeigt werden.
Ich hab aber keine Ahnung wie ich sowas hinkriegen kann.
Hoffe mal das wird nicht allzu schwer und lässt sich mit der 3.30er version machen.
Danke schonmal für eure Hilfe!
GadgetItems
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Weiss nich' ob ich dich richtig verstanden habe aber so wie es interpretiere dürfte das hier von Nutzen sein:
Code: Alles auswählen
OpenWindow(0,0,0,375,290,"Punkte Dingsi",#WS_SYSMENU | #WS_CAPTION | 1)
CreateGadgetList(WindowID(0))
ListViewGadget(0,5,5,180,255,#PB_ListView_Multiselect)
ListViewGadget(1,190,5,180,255)
StringGadget(2,5,265,180,20,"")
ButtonGadget(3,190,265,85,20,"Hinzufügen")
ButtonGadget(4,285,265,85,20,"Enfernen")
For i=0 To 9
AddGadgetItem(0,-1,"Object #" + Str(i+1) + " [" + Str((i+1)*15) + " Punkte]")
SetGadgetItemData(0,i,(i+1)*15)
Next
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 3
State = GetGadgetState(0)
If State ! -1
AddGadgetItem(1,-1,GetGadgetItemText(0,State,0))
SetGadgetItemData(1,CountGadgetItems(1)-1,GetGadgetItemData(0,State))
For i=0 To CountGadgetItems(1)-1
Punkte + GetGadgetItemData(1,i)
Next
SetGadgetText(2,Str(Punkte) + " Punkte") : Punkte = 0
EndIf
Case 4
State = GetGadgetState(1)
If State ! -1
RemoveGadgetItem(1,State)
For i=0 To CountGadgetItems(1)-1
Punkte + GetGadgetItemData(1,i)
Next
SetGadgetText(2,Str(Punkte) + " Punkte") : Punkte = 0
EndIf
EndSelect
EndIf
Until EventID = 16
Windows 10 Pro, 64-Bit / Outtakes | Derek
Ok also danke erstmal für die Antwort, aber irgentwie verträgt sich der code mit meinem 3.30er nicht so ganz. 
Hab den dann mal probiert in die ältere Version umzuformen, war dann aber doch nicht so dass was ich wollte, sorry..
Naja also Das StringGadget soll einfach die Werte zu den Einträgen zusammenzählen. Und ich weiß jetzt nicht ob man GadgetItems auch Zahlenwerte zuordnen kann...
Ist das überhaupt noch eine Anfängerfrage?

Hab den dann mal probiert in die ältere Version umzuformen, war dann aber doch nicht so dass was ich wollte, sorry..

Naja also Das StringGadget soll einfach die Werte zu den Einträgen zusammenzählen. Und ich weiß jetzt nicht ob man GadgetItems auch Zahlenwerte zuordnen kann...
Ist das überhaupt noch eine Anfängerfrage?

Ich benutze PureBasic 3.30
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
die einträge wirst du ja in irgendnem array oder ner liste haben.
daraus zählst du sie zusammen, und die summe zeigst du im stringgadget an.
das kann natürlich nur strings beinhalten, also musst du mit Str() aus der zahl nen string machen.
daraus zählst du sie zusammen, und die summe zeigst du im stringgadget an.
das kann natürlich nur strings beinhalten, also musst du mit Str() aus der zahl nen string machen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Yup, sorry. Habs nicht gesehen. Geh' immer von der neusten Version aus.kreeph hat geschrieben:Ok also danke erstmal für die Antwort, aber irgentwie verträgt sich der code mit meinem 3.30er nicht so ganz.
Sicher? Hast du den code 1:1 und sinngemäß in 3.30 konvertiert?Hab den dann mal probiert in die ältere Version umzuformen, war dann aber doch nicht so dass was ich wollte, sorry..
Genau das macht der code aber das StringGadget selber zählt gar nix sondern stellt lediglich die Gesamtpunktzahl grafisch dar.Naja also Das StringGadget soll einfach die Werte zu den Einträgen zusammenzählen.
Absolut simpel mit Set-/GetGAdgetItemData(). Aber genau diese Befehle gibts in 3.30 nicht. Muss man API für nehmen.Und ich weiß jetzt nicht ob man GadgetItems auch Zahlenwerte zuordnen kann...
Total aber du drückst dich halt ein wenig unpräzise aus.Ist das überhaupt noch eine Anfängerfrage?

Ich hab' den code nochmal auf 3.30 umgeschrieben:
Code: Alles auswählen
OpenWindow(0,0,0,375,290,"Punkte Dingsi",#WS_SYSMENU | #WS_CAPTION | 1)
CreateGadgetList(WindowID(0))
ListViewGadget(0,5,5,180,255,#PB_ListView_Multiselect)
ListViewGadget(1,190,5,180,255)
StringGadget(2,5,265,180,20,"")
ButtonGadget(3,190,265,85,20,"Hinzufügen")
ButtonGadget(4,285,265,85,20,"Enfernen")
For i=0 To 9
AddGadgetItem(0,-1,"Object #" + Str(i+1) + " [" + Str((i+1)*15) + " Punkte]")
SendMessage_(GadgetID(0),#LB_SETITEMDATA,i,(i+1)*15)
Next
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case 3
State = GetGadgetState(0)
If State ! -1
AddGadgetItem(1,-1,GetGadgetItemText(0,State,0))
SendMessage_(GadgetID(1),#LB_SETITEMDATA,CountGadgetItems(1)-1,SendMessage_(GadgetID(0),#LB_GETITEMDATA,State,0))
For i=0 To CountGadgetItems(1)-1
Punkte + SendMessage_(GadgetID(1),#LB_GETITEMDATA,i,0)
Next
SetGadgetText(2,Str(Punkte) + " Punkte") : Punkte = 0
EndIf
Case 4
State = GetGadgetState(1)
If State ! -1
RemoveGadgetItem(1,State)
For i=0 To CountGadgetItems(1)-1
Punkte + SendMessage_(GadgetID(1),#LB_GETITEMDATA,i,0)
Next
SetGadgetText(2,Str(Punkte) + " Punkte") : Punkte = 0
EndIf
EndSelect
EndIf
Until EventID = 16
Windows 10 Pro, 64-Bit / Outtakes | Derek