LinkdLists Bug???
Verfasst: 27.02.2005 16:56
Hallo,
ich hab einen Code. Der will nicht ganz so das machen, was er soll. Ich schreib nämlich Autos in eine LL. Wenn ich das nachher auslesen will, sind manche Elemente mehrmals drin und im Durcheinander. Ist das ein Käfer in PB, oder hab ich da gepfuscht?
Hier der Code:
Mfg,
AndyX
ich hab einen Code. Der will nicht ganz so das machen, was er soll. Ich schreib nämlich Autos in eine LL. Wenn ich das nachher auslesen will, sind manche Elemente mehrmals drin und im Durcheinander. Ist das ein Käfer in PB, oder hab ich da gepfuscht?
Hier der Code:
Code: Alles auswählen
; Structuren, Listen, Enumerations und ein paar Variablen... :D
Enumeration
#Button1
#Button2
#Button3
EndEnumeration
Structure Cars
Name.s
Color.s
PS.w
Price.l
EndStructure
NewList Autoausstellung.Cars()
NameAusst.s = InputRequester("Neue Autoaustellung","Wie soll ihre Autoausstellung heißen?","")
Budget.l = Val(InputRequester(NameAusst,"Wie viel Geld wollen sie zur Verfügung stellen?","100000"))
Cars.s = ""
Quit.b
; Das Fenster aufmachen ( Frischluft... :D ) und Gadgets reintun...
If OpenWindow(window,0,0,200,190,#PB_Window_ScreenCentered | #PB_Window_SystemMenu,NameAusst)
CreateGadgetList(WindowID(window))
ButtonGadget(#Button1,10,10,180,50,"Neues Auto")
ButtonGadget(#Button2,10,70,180,50,"Alle Autos anzeigen")
ButtonGadget(#Button3,10,130,180,50,"Autoliste löschen")
;Hauptschleife...
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
ElseIf EventID.l = #PB_Event_Gadget
GadgetID.l = EventGadgetID()
If GadgetID = #Button1
AddElement(Autoausstellung())
Autoausstellung()\Name = InputRequester("Neues Auto","Welchen Namen hat es?","")
Autoausstellung()\Color = InputRequester("Neues Auto","Welche Farbe hat es?","")
Autoausstellung()\PS = Val(InputRequester("Neues Auto","Wie viel PS hat es?",""))
Autoausstellung()\Price = Val(InputRequester("Neues Auto","Wie viel kostet es?",""))
If Budget < Autoausstellung()\Price
DeleteElement(Autoausstellung())
MessageRequester("Zu wenig Geld","Das Auto ist zu teuer für Ihr Budget! Es wird entfernt.",0)
Else
Budget - Autoausstellung()\Price
EndIf
ElseIf GadgetID = #Button2
ForEach Autoausstellung()
Cars + Autoausstellung()\Name : Cars + ", " : Cars + Autoausstellung()\Color : Cars + ", "
Cars + Str(Autoausstellung()\PS) : Cars + " PS, " : Cars + Str(Autoausstellung()\Price) : Cars + " Euro."
Cars + Chr(13)
Next
MessageRequester("Autos",Cars,0)
ElseIf GadgetID = #Button3
ClearList(Autoausstellung())
EndIf
EndIf
Until Quit = 1
Else
MessageRequester("Fehler","Konnte Fenster nicht öffnen! "+NameAusst+" wird sich jetzt beenden!",0)
EndIfAndyX