Seite 1 von 1
Blättern in LinkedList
Verfasst: 16.07.2006 11:44
von Bayernhans
Möchte die Daten einer LinkedList in einem Gadget (Text?) anzeigen. Der Anwender soll darin blättern können (auf/ab).
Hat jemand ein Prozedur o. Codeschnipsel die mir weiterhelfen ?
Vielen DANK.
Re: Blättern in LinkedList
Verfasst: 16.07.2006 11:48
von Kiffi
Bayernhans hat geschrieben:Möchte die Daten einer LinkedList in einem Gadget (Text?) anzeigen. Der Anwender soll darin blättern können (auf/ab).
Du kannst folgende Befehle verwenden:
Code: Alles auswählen
- NextElement(DeineLinkedList())
- PreviousElement(DeineLinkedList())
- SelectElement(DeineLinkedList())
Grüße ... Kiffi
P.S.: Falsches Forum. @Mod: bitte verschieben
Verfasst: 16.07.2006 12:29
von nco2k
@Bayernhans
meinst du das so in etwa?
Code: Alles auswählen
Structure TestStruc
Name.s
Alter.l
EndStructure
Global NewList TestList.TestStruc()
If AddElement(TestList())
TestList()\Name = "Hans"
TestList()\Alter = 31
Debug "Position: "+Str(ListIndex(TestList()))+" - Name: "+TestList()\Name+" - Alter: "+Str(TestList()\Alter)
EndIf
If AddElement(TestList())
TestList()\Name = "Dieter"
TestList()\Alter = 26
Debug "Position: "+Str(ListIndex(TestList()))+" - Name: "+TestList()\Name+" - Alter: "+Str(TestList()\Alter)
EndIf
If AddElement(TestList())
TestList()\Name = "Klaus"
TestList()\Alter = 42
Debug "Position: "+Str(ListIndex(TestList()))+" - Name: "+TestList()\Name+" - Alter: "+Str(TestList()\Alter)
EndIf
If AddElement(TestList())
TestList()\Name = "Heidi"
TestList()\Alter = 19
Debug "Position: "+Str(ListIndex(TestList()))+" - Name: "+TestList()\Name+" - Alter: "+Str(TestList()\Alter)
EndIf
Debug "Es befinden sich "+Str(CountList(TestList()))+" Elemente in der Linked List"
If OpenWindow(0, 0, 0, 200, 30, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(0))
ButtonGadget(0, 5, 5, 25, 20, "<")
SelectElement(TestList(), 0)
TextGadget(1, 35, 5, 130, 20, TestList()\Name+" - "+Str(TestList()\Alter), #PB_Text_Border | #PB_Text_Center)
ButtonGadget(2, 170, 5, 25, 20, ">")
Repeat
WinEvent = WaitWindowEvent()
Select WinEvent
Case #PB_Event_Gadget
Select EventGadget()
Case 0
If ListIndex(TestList()) = 0
LastElement(TestList())
Else
PreviousElement(TestList())
EndIf
SetGadgetText(1, TestList()\Name+" - "+Str(TestList()\Alter))
Case 2
If ListIndex(TestList()) = CountList(TestList()) - 1
FirstElement(TestList())
Else
NextElement(TestList())
EndIf
SetGadgetText(1, TestList()\Name+" - "+Str(TestList()\Alter))
EndSelect
EndSelect
Until WinEvent = #PB_Event_CloseWindow
EndIf
EndIf
End
c ya,
nco2k
Danke nco2k, für die schnelle Reaktion.
Verfasst: 16.07.2006 22:51
von Bayernhans
ein paar kleine Änderungen, z. B. EventGadgetID(), und schon fliegt ide Kiste.
Vielleicht liegts an verschiedenen Versionen, ich progr. mit PB 3.94
Verfasst: 16.07.2006 22:53
von nco2k
Code: Alles auswählen
Structure TestStruc
Name.s
Alter.l
EndStructure
NewList TestList.TestStruc()
If AddElement(TestList())
TestList()\Name = "Hans"
TestList()\Alter = 31
Debug "Position: "+Str(ListIndex(TestList()))+" - Name: "+TestList()\Name+" - Alter: "+Str(TestList()\Alter)
EndIf
If AddElement(TestList())
TestList()\Name = "Dieter"
TestList()\Alter = 26
Debug "Position: "+Str(ListIndex(TestList()))+" - Name: "+TestList()\Name+" - Alter: "+Str(TestList()\Alter)
EndIf
If AddElement(TestList())
TestList()\Name = "Klaus"
TestList()\Alter = 42
Debug "Position: "+Str(ListIndex(TestList()))+" - Name: "+TestList()\Name+" - Alter: "+Str(TestList()\Alter)
EndIf
If AddElement(TestList())
TestList()\Name = "Heidi"
TestList()\Alter = 19
Debug "Position: "+Str(ListIndex(TestList()))+" - Name: "+TestList()\Name+" - Alter: "+Str(TestList()\Alter)
EndIf
Debug "Es befinden sich "+Str(CountList(TestList()))+" Elemente in der Linked List"
If OpenWindow(0, 0, 0, 200, 30, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Test")
If CreateGadgetList(WindowID(0))
ButtonGadget(0, 5, 5, 25, 20, "<")
SelectElement(TestList(), 0)
TextGadget(1, 35, 5, 130, 20, TestList()\Name+" - "+Str(TestList()\Alter), #PB_Text_Border | #PB_Text_Center)
ButtonGadget(2, 170, 5, 25, 20, ">")
Repeat
WinEvent = WaitWindowEvent()
Select WinEvent
Case #PB_Event_Gadget
Select EventGadgetID()
Case 0
If ListIndex(TestList()) = 0
LastElement(TestList())
Else
PreviousElement(TestList())
EndIf
SetGadgetText(1, TestList()\Name+" - "+Str(TestList()\Alter))
Case 2
If ListIndex(TestList()) = CountList(TestList()) - 1
FirstElement(TestList())
Else
NextElement(TestList())
EndIf
SetGadgetText(1, TestList()\Name+" - "+Str(TestList()\Alter))
EndSelect
EndSelect
Until WinEvent = #PB_Event_CloseWindow
EndIf
EndIf
End
c ya,
nco2k
Re: Danke nco2k, für die schnelle Reaktion.
Verfasst: 16.07.2006 22:55
von Kiffi
> und schon fliegt ide Kiste.
wie meinen?
> Vielleicht liegts an verschiedenen Versionen, ich progr. mit PB 3.94
dann tu uns doch den Gefallen und schreib das in Deine Signatur.
Grüße ... Kiffi
Verfasst: 17.07.2006 22:22
von Bayernhans
Perfekt nco2k - Dankeschön!
Kiffi, was meinst du zu meiner Signatur ?
Verfasst: 17.07.2006 22:50
von Kiffi
> Kiffi, was meinst du zu meiner Signatur ?
schon besser
Grüße ... Kiffi