ich stehe im Moment total auf dem Schlauch...
Ich möchte (nur als Beispiel) ein ButtonGadget inklusive OptionGadget einsetzen, was mit Setparent_ auch funktioniert:
Code: Alles auswählen
Enumeration
#Window_Auswahl
EndEnumeration
Enumeration
#Button_1
#Button_2
#Button_3
#Button_4
#Button_5
#Button_6
#Option_13
#Option_14
#Option_15
#Option_16
#Option_17
#Option_18
#Option_19
#Option_20
#Option_21
#Option_22
EndEnumeration
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
Procedure OpenWindow_Auswahl()
If OpenWindow(#Window_Auswahl, 514, 171, 615, 500, "Auswahl", #PB_Window_SystemMenu)
ButtonGadget(#Button_1, 5, 5, 300, 100, "krank", #PB_Button_Toggle)
ButtonGadget(#Button_2, 310, 5, 300, 100, "frei", #PB_Button_Toggle)
ButtonGadget(#Button_3, 5, 110, 300, 100, "Urlaub", #PB_Button_Toggle)
ButtonGadget(#Button_4, 310, 110, 300, 100, "Diensttausch", #PB_Button_Toggle)
ButtonGadget(#Button_5, 5, 215, 300, 240, "geänderte Dienstzeit:"+#CRLF$+#CRLF$+#CRLF$+#CRLF$+#CRLF$+#CRLF$+#CRLF$+#CRLF$+#CRLF$+#CRLF$, #PB_Button_Toggle|#PB_Button_MultiLine)
ButtonGadget(#Button_6, 310, 215, 300, 240, "geänderte Tätigkeit:"+#CRLF$+#CRLF$+#CRLF$+#CRLF$+#CRLF$+#CRLF$+#CRLF$+#CRLF$+#CRLF$+#CRLF$, #PB_Button_Toggle|#PB_Button_MultiLine)
OptionGadget(#Option_13, 100, 70, 100, 35, "SAW")
OptionGadget(#Option_14, 100, 100, 100, 35, "SVP")
OptionGadget(#Option_15, 100, 130, 100, 35, "HAP")
OptionGadget(#Option_16, 100, 160, 100, 35, "SKP")
OptionGadget(#Option_17, 100, 190, 100, 35, "HAV")
OptionGadget(#Option_18, 100, 70, 220, 35, "08:00 - 16:30 Uhr")
OptionGadget(#Option_19, 100, 100, 220, 35, "10:00 - 18:00 Uhr")
OptionGadget(#Option_20, 100, 130, 220, 35, "13:00 - 21:12 Uhr")
OptionGadget(#Option_21, 100, 160, 220, 35, "16:00 - 00:12 Uhr")
OptionGadget(#Option_22, 100, 190, 220, 35, "n.n.b. oder sonst.")
;-Einsatz Setparent mit OptionGadget und den letzten ButtonGadget:
SetParent_(GadgetID(#Option_18),GadgetID(#Button_5))
SetParent_(GadgetID(#Option_19),GadgetID(#Button_5))
SetParent_(GadgetID(#Option_20),GadgetID(#Button_5))
SetParent_(GadgetID(#Option_21),GadgetID(#Button_5))
SetParent_(GadgetID(#Option_22),GadgetID(#Button_5))
SetParent_(GadgetID(#Option_13),GadgetID(#Button_6))
SetParent_(GadgetID(#Option_14),GadgetID(#Button_6))
SetParent_(GadgetID(#Option_15),GadgetID(#Button_6))
SetParent_(GadgetID(#Option_16),GadgetID(#Button_6))
SetParent_(GadgetID(#Option_17),GadgetID(#Button_6))
EndIf
EndProcedure
OpenWindow_Auswahl()
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #Button_1
ElseIf EventGadget = #Button_2
ElseIf EventGadget = #Button_3
ElseIf EventGadget = #Button_4
ElseIf EventGadget = #Button_5
ElseIf EventGadget = #Button_6
;-hier funktioniert die gewünschte Reaktion wegen fehlender Subclasses nicht:
ElseIf EventGadget = #Option_13
Debug "Klick!"
ElseIf EventGadget = #Option_14
ElseIf EventGadget = #Option_15
ElseIf EventGadget = #Option_16
ElseIf EventGadget = #Option_17
ElseIf EventGadget = #Option_18
ElseIf EventGadget = #Option_19
ElseIf EventGadget = #Option_20
ElseIf EventGadget = #Option_21
ElseIf EventGadget = #Option_22
EndIf
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_Auswahl
CloseWindow(#Window_Auswahl)
Break
EndIf
EndSelect
ForEver
Doch wenn ich eine EventGadget-Abfrage starte (hier EventGadget = #Option_13), werden die Abfragen bei OptionGadget ignoriert. Grund sind die Parent- und Childclasses, wobei das übergeordnete Fenster kein EventGadget durchlässt. Ich müsste quasi "subclassen", doch hier hört mein Verständnis zum Thema Classes auf.
Meine Idee war dann der Einsatz mit UseGadgetList(), aber nach Ausprobieren und Recherche funktioniert sie nur bei WindowsID, nicht bei GadgetID (siehe englisches Forum).
Also, wieder zurück zum Subclasses, doch wie funktioniert sie? Kann mir einer helfen?
Häns