Dynamisch erstelltes Gadget bei mehreren Fenstern

Für allgemeine Fragen zur Programmierung mit PureBasic.
kmais
Beiträge: 45
Registriert: 09.02.2017 13:54

Dynamisch erstelltes Gadget bei mehreren Fenstern

Beitrag 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.
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: Dynamisch erstelltes Gadget bei mehreren Fenstern

Beitrag von Bisonte »

UseGadgetList() ist da dein Verbündeter.
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
kmais
Beiträge: 45
Registriert: 09.02.2017 13:54

Re: Dynamisch erstelltes Gadget bei mehreren Fenstern

Beitrag von kmais »

:allright: :) und vielen Dank.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Dynamisch erstelltes Gadget bei mehreren Fenstern

Beitrag 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
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Antworten