Nun war ich fast schon soweit, dass ich meinen Code posten konnte und dann kommst du. Kannst einem aber auch jeden Spaß verderben
Naja, sie hat noch ein zwei Fehler, werd ins Bett.
Aber ist einfach, übersichtlich und verständlich. Kann nicht viel, aber hier schon mal eine fehlerhafte Version:
Code: Alles auswählen
Enumeration
#MainWin
EndEnumeration
If OpenWindow(#MainWin, 0, 0, 420, 420, "Liste", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
ListIconGadget(2, 10, 280, 400, 130, "Kunde",200,#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
SetGadgetData(2,0) ; Anzahl der Spalten
ListIconGadget(3, 10, 20, 150, 130, "Anzahl",50,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(3,1,"ID",60)
ListIconGadget(4, 235,5, 170, 110, "Bez.",70,#PB_ListIcon_FullRowSelect|#PB_ListIcon_MultiSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(4,1,"ID",30)
AddGadgetColumn(4,2,"Preis",40)
StringGadget(21,10,250,200,20,"Name")
ButtonGadget(22,220,250,40,20,"\/")
SpinGadget( 31,180,50,40,20,0,100,#PB_Spin_Numeric)
SetGadgetState(31,1)
ButtonGadget( 32,180,70,40,20,"<--")
ButtonGadget( 33,170,100,20,20,"-")
ButtonGadget( 34,170,120,20,20,"+")
StringGadget(41,250,120,100,20,"Bezeichnung")
StringGadget(42,250,140,100,20,"ID001")
StringGadget(43,250,160,100,20,"76",#PB_String_Numeric) ; Preis in Cent
ButtonGadget( 44,360,120,30,60,"/\")
; ID, NAME, PREIS, Liter
Repeat
Event=WaitWindowEvent()
If GetActiveWindow()=#MainWin
If Event=#PB_Event_CloseWindow
Quit=1
EndIf
If Event=#PB_Event_Gadget
GadgetNr=EventGadget()
If GadgetNr=22 ; [ \/ ] fügt Kunden hinzu (Kunden mit gleichem Namen stehen einfach so in der Liste, ohne eindeutige Identifizierung!)
If GetGadgetText(21)<>"" ; oder schon mal vorhanden, müsste hier überprüft werden
AddGadgetItem(2,-1,GetGadgetText(21))
EndIf
EndIf
If GadgetNr=44 ; [ /\ ]
;If GetGadgetText(41) ... fügt auch leere Felder und falsch ausgefüllte hinzu
AddGadgetItem(4,-1,GetGadgetText(41)+Chr(10)+GetGadgetText(42)+Chr(10)+GetGadgetText(43))
EndIf
If GadgetNr=32 ; [<--]
If GetGadgetState(31)<>0 And GetGadgetState(4)<>-1 ; Liste der Ware
AddGadgetItem(3,-1,GetGadgetText(31)+Chr(10)+GetGadgetItemText(4,GetGadgetState(4),1))
Debug CountGadgetItems(3)
Debug GetGadgetData(2)
While GetGadgetData(2) < CountGadgetItems(3)*2
SetGadgetData(2,GetGadgetData(2)+2)
AddGadgetColumn(2,GetGadgetData(2),"Anz.",40)
AddGadgetColumn(2,GetGadgetData(2),"ID",40)
Wend
SetGadgetItemText(2,GetGadgetState(31),GetGadgetItemText(3,CountGadgetItems(3)-1,0),(CountGadgetItems(3)-1)*2+1)
SetGadgetItemText(2,GetGadgetState(31),GetGadgetItemText(3,CountGadgetItems(3)-1,1),(CountGadgetItems(3)-1)*2+2)
EndIf
EndIf
If GadgetNr=2 ; KundenAuswahl
;If GetGadgetState(2)>-1
ClearGadgetItemList(3) ; Liste mit gekauften Getränken wird geleert
If GetGadgetData(2)>1
For i=1 To GetGadgetData(2); /2
AddGadgetItem(3,-1,GetGadgetItemText(2,GetGadgetState(2),i))
Next
EndIf
;EndIf
EndIf
EndIf
EndIf
Until Quit
EndIf
CloseWindow(0)