ButtonGadget in Statusbar

Für allgemeine Fragen zur Programmierung mit PureBasic.
topsoft
Beiträge: 67
Registriert: 16.09.2004 11:55
Wohnort: nrw

ButtonGadget in Statusbar

Beitrag von topsoft »

Hallo, ich möchte ein Buttongadget in der Statusbar anzeigen. Folgender Code:

Code: Alles auswählen

If OpenWindow(0, 100, 150, 300, 100, "PureBasic - StatusBar Example", #PB_Window_SystemMenu | #PB_Window_SizeGadget)
  CreateStatusBar(0, WindowID(0))
  ButtonGadget(0, 10, 10, 100, 20, "A")
  ;SetParent_(GadgetID(0), StatusBarID(0))
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        Break
      Case #PB_Event_Gadget
        Debug EventGadget()
    EndSelect
  ForEver
EndIf
Setze ich den Button mit SetParent_ in die Statusbar gibt es kein WindowEvent #PB_Event_Gadget mehr.
Aber warum nicht? Nehme ich eine ComboBox funktioniert es.

Gruß Topsoft
Skylake QuadCore i7 6700K @4400MHz, MSI Z170A Gaming M5, 64 GB DDR4 @ 2133MHz, B: Ramdisk 32GB, C: Raid0 SATA SSD 1TB, D: Raid0 M2 SSD 1TB, E: Raid0 HDD 8TB, 28" 4K @ RTX2080, Win10 X64
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: ButtonGadget in Statusbar

Beitrag von RSBasic »

Das ist komisch. Keine Ahnung, warum das PB-Event nichts mehr sagt, aber hier ein Workaround, damit es ebenfalls funktioniert:

Code: Alles auswählen

If OpenWindow(0, 100, 150, 300, 100, "PureBasic - StatusBar Example", #PB_Window_SystemMenu | #PB_Window_SizeGadget)
  CreateStatusBar(0, WindowID(0))
  If ContainerGadget(1,0,0,100,20, #PB_Container_BorderLess)
    ButtonGadget(0, 0, 0, 100, 20, "A")
    CloseGadgetList()
  EndIf
  SetParent_(GadgetID(1), StatusBarID(0))
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        Break
      Case #PB_Event_Gadget
        Debug EventGadget()
    EndSelect
  ForEver
EndIf
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten