Seite 1 von 1

Gadgets während des Programmablaufs nachträglich hinzufügen

Verfasst: 17.11.2004 19:21
von PBZecke
Ich hab mal ne Frage zu CreateGadgetList(). Wenn ich mehrere Fenster erstellen, und während des Programmverlaufs Gadgets hinzufügen möchte, muss ich CreateGadgetList() mit dem Handle des Fensters in dem das neue Gadget platziert werden soll aufrufen. Das funktioniert auch. Aber mache ich das auch richtig so, oder macht man das anders?

Beispiel:

Code: Alles auswählen

Enumeration
  #Window_0
  #Window_1
EndEnumeration


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 269, 233, 600, 300,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "New window ( 0 )")
    If CreateGadgetList(WindowID())
    ButtonGadget(0,10,10,50,50,"Button 0")  
    EndIf
  EndIf
EndProcedure

Procedure Open_Window_1()
  If OpenWindow(#Window_1, 271, 487, 600, 300,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "New window ( 1 )")
    If CreateGadgetList(WindowID())
      
    EndIf
  EndIf
EndProcedure

;Fenster 1 öffnen
Open_Window_0()
;Fenster 2 öffnen
Open_Window_1()

;Um den Button in Fenster 1 zu erstellen nochmal CreateGadgetlist() ?
CreateGadgetList(WindowID(#Window_0))
ButtonGadget(1,60,10,50,50,"Button 1")


Repeat : Until WaitWindowEvent() = #PB_EventCloseWindow
Ich erstelle hier zwei Fenster. Danach will ich im ersten Fenster noch einen Button hinzufügen. Nach herumprobieren fand ich heraus, dass das nur durch erneutes aufrufen von CreateGadgetList geht, sonst wird der neue Button im zuletzt erstellten Fenster erzeugt.

Verfasst: 17.11.2004 19:28
von MLK

Code: Alles auswählen

UseGadgetList(WindowID(#Window_0))

Verfasst: 17.11.2004 19:35
von PBZecke
Ich werd erstmal nen Kaffe trinken, um richtig wach zu werden... :lol: :oops:

Danke!