Seite 1 von 1

Dynamisch erstelltes Gadget bei mehreren Fenstern

Verfasst: 19.01.2020 18:00
von kmais
Ich stelle mir gerade folgende Frage,

Ich habe eine Anwendung mit mehreren Fenster.
Die Anwendung wird in einer main.pb gesteuert.
Wenn ich jetzt in einer Routine ein beliebiges Gadget dynamisch
erstelle, wie sage ich dem Gadget zu welchem Fenster es gehört?
In der Erstellungsanweisung ist ja dafür kein Parameter vorhanden.

Re: Dynamisch erstelltes Gadget bei mehreren Fenstern

Verfasst: 19.01.2020 18:10
von Bisonte
UseGadgetList() ist da dein Verbündeter.

Re: Dynamisch erstelltes Gadget bei mehreren Fenstern

Verfasst: 19.01.2020 18:17
von kmais
:allright: :) und vielen Dank.

Re: Dynamisch erstelltes Gadget bei mehreren Fenstern

Verfasst: 19.01.2020 18:28
von ccode_new
Hier war jemand schneller.

Aber trotzdem mal ein kleines Beispiel:

Code: Alles auswählen

Procedure Zweit_Fenster()
  If OpenWindow(1, 0, 0, 200, 200, "Das Hallo-Fenster", #PB_Window_SystemMenu)
    
  EndIf
EndProcedure


If OpenWindow(0, 100, 200, 600, 400, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget)
  ButtonGadget(0, 5, 5, 200, 30, "Statischer Knopf")
  
  Zweit_Fenster()
  
  Repeat
    Event = WaitWindowEvent()

    If Event = #PB_Event_CloseWindow
      If EventWindow() = 0
        Quit = 1
      ElseIf IsWindow(1)
        CloseWindow(1)
      EndIf
    EndIf
    
    If Event = #PB_Event_Gadget
      If EventGadget() = 0
        If IsWindow(1) And Not IsGadget(1)
          ButtonGadget(1, 10, 10, 100, 30, "Hallo!")
        Else
          UseGadgetList(WindowID(0))
          ButtonGadget(1, 100, 100, 100, 30, "Hallo!")
        EndIf
      EndIf
    EndIf

  Until Quit = 1
  
EndIf

End