ich habe da mal wieder ein Problem bei dem ich so langsam verzweifel.
Im Codebeispiel unten seht ihr ein Panelgadget auf dem Buttons platziert sind.
Ein ButtonGadget wird direkt nach dem erstellen und VOR AddGadgetItem auf ein Panelgadget geklebt.
Ein zweiter Button wird NACH AddGadgetItem auf die erste Registerkarte des Panelgadgets platziert.
Ich möchte jetzt gerne die parent GadgetID der Buttons herausfinden. (Im Beispiel wäre das die 2)
Leider läuft das nicht so wie ich es eigentlich erwarte.
Im Codebeispiel ist das Problem bei den Kommentaren näher erläutert.
Wo ist mein Denkfehler, oder hat jemand eine bessere Methode?
Vielen Dank für eure Mühe und Geduld mit mir...
Stef
Code: Alles auswählen
EnableExplicit
Global.i iEvent, iQuit
If OpenWindow(1, 0, 0, 500, 300, "PureBasic Window - GetParent_ Test - PanelGadget Problem", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
PanelGadget(2, 50, 20, 300, 200)
ButtonGadget(3, 50, 70, 100, 50, "Button 1 (ID 3)") ; Button 3 liegt NICHT in einer Registerkarte des Panels und ist somit IMMER sichtbar
AddGadgetItem (2, -1, "Panel 1") ; Registerkarte zum Panel hinzufügen
ButtonGadget(4, 180, 70, 100, 50, "Button 2 (ID 4)") ; Button 4 in der Registerkarte erstellen.
AddGadgetItem (2, -1, "Panel 2") ; nächste (leere) Registerkarte hinzufügen
CloseGadgetList() ; Gadgetliste schließen.
Debug "Parent: " + Str(GetProp_(GetParent_(GadgetID(3)),"PB_ID")) ; Korrekte Rückgabe '2' der Panel ID, aber sinnlos, da Button nicht IN Registerkarte liegt
Debug "Parent: " + Str(GetProp_(GetParent_(GadgetID(4)),"PB_ID")) ; Falsche Rückgabe '0' der Panel ID!? Button liegt aber richtig IN Registerkarte.
; --- Main eventloop --------------------
Repeat
iEvent = WaitWindowEvent()
If iEvent = #PB_Event_CloseWindow
iQuit = 1
EndIf
Until iQuit = 1
EndIf
End