SplitterGadGet mit mehr als 2 Gadgets (variabel)
Verfasst: 01.04.2014 15:01
Hallo Leute!
Hab ein Problem mit dem SplitterGadget.
Zur Ausgangslage:
Habe im linken Bereich eine Hauptliste. Im rechten Bereich sollen abhängig von einer mit Inputrequester eingelesenen Zahl X,
X Listen und X Buttons erzeugt werden.
Durch Doppelklick in der Hauptliste soll der Text entsprechend gewählter Liste (ButtonX) in die Liste X übernommen werden.
Das Grundgerüst steht soweit.
Nun besteht jedoch der Wunsch, die ausgewählte Liste auf ein mögliches Maximum zu vergrößern, sodass der Überblick besser ist. Die "Titelleisten" der anderen Listen sollen aber sichtbar bleiben!
Habe so ziemlich alle Beiträge zum SplitterGadget gelesen, aber ich komme nicht wirklich weiter.
Problem 1: Durch die variable Anzahl der Listen, bekomme ich die Zuordnung im SplitterGadget nicht hin (Liste1,Liste2) --> (Liste3,Slitter1)
Problem 2: Die Listen sollen bei Start gleich groß sein!
Danke im Vorraus!
Beispiel:
Hab ein Problem mit dem SplitterGadget.
Zur Ausgangslage:
Habe im linken Bereich eine Hauptliste. Im rechten Bereich sollen abhängig von einer mit Inputrequester eingelesenen Zahl X,
X Listen und X Buttons erzeugt werden.
Durch Doppelklick in der Hauptliste soll der Text entsprechend gewählter Liste (ButtonX) in die Liste X übernommen werden.
Das Grundgerüst steht soweit.
Nun besteht jedoch der Wunsch, die ausgewählte Liste auf ein mögliches Maximum zu vergrößern, sodass der Überblick besser ist. Die "Titelleisten" der anderen Listen sollen aber sichtbar bleiben!
Habe so ziemlich alle Beiträge zum SplitterGadget gelesen, aber ich komme nicht wirklich weiter.
Problem 1: Durch die variable Anzahl der Listen, bekomme ich die Zuordnung im SplitterGadget nicht hin (Liste1,Liste2) --> (Liste3,Slitter1)
Problem 2: Die Listen sollen bei Start gleich groß sein!
Danke im Vorraus!
Beispiel:
Code: Alles auswählen
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Window_0
#MainList
EndEnumeration
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
Global Anz
Procedure OpenWindow_Window_0()
Anz=Val(InputRequester("","Wieviele Listen?","4"))
ExamineDesktops()
x=DesktopWidth(0)
y=DesktopHeight(0)-80
H=y/Anz
If OpenWindow(#Window_0, 0, 0, x-20, y, "Fenster 1" , #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
ListIconGadget(#MainList, 10, 75, x/2, y-150,"Nr:",200,#PB_ListIcon_GridLines|#PB_ListIcon_MultiSelect|#PB_ListIcon_FullRowSelect)
For i=1 To 20
AddGadgetItem(#MainList,-1,"Text "+Str(i))
Next
For i= 0 To Anz-1
ListIconGadget(600+i+1, x/2+150, i*H+10, x/3, H,"Liste "+Str(i+1),200,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
ButtonGadget(700+i+1, x/2+30, 40+i*30+10, 100, 30, "Liste "+Str(i+1), #PB_Button_Toggle)
Next
EndIf
EndProcedure
OpenWindow_Window_0()
;{- Event loop
Repeat
Event = WaitWindowEvent()
Select Event
; ///////////////////
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget=#MainList ;-Doppelklich Mainlist
If EventType=2
For i=1 To Anz
status+GetGadgetState(700+i)
Next
If status>0
Code$=GetGadgetItemText(#MainList,GetGadgetState(#MainList),0)
Debug Code$
For i=1 To Anz
status= GetGadgetState(700+i)
If status=1
AddGadgetItem(600+i,-1,Code$)
EndIf
Next
RemoveGadgetItem(#MainList,GetGadgetState(#MainList))
status=0
Else
MessageRequester("","Sie haben keine Liste ausgewählt",#MB_ICONINFORMATION)
EndIf
EndIf
EndIf
If EventType=2 And Left(Str(EventGadget),1)="6"
TEXT_DEL1$=GetGadgetItemText(EventGadget,GetGadgetState(EventGadget),0)
AddGadgetItem(#MainList,-1,TEXT_DEL1$)
RemoveGadgetItem(EventGadget,GetGadgetState(EventGadget))
EndIf
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_0
CloseWindow(#Window_0)
Break
EndIf
EndSelect
ForEver
;
;}