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 :allright:

Grüße ... Kiffi