Seite 1 von 1

Frage zu #PB_Event_SizeDesktop

Verfasst: 28.08.2020 15:15
von Kurzer
Wenn man auf die Änderung der Fenstergröße des Browsers reagieren möchte (#PB_Event_SizeDesktop) ist es vermutlich Blödsinn, den BindGadget() Befehl auf ein bestimmtes SpiderBasic-Fenster zu begrenzen.

Trotzdem fällt mir dabei auf, dass auf das Event nur reagiert wird, wenn ich feste Fensternummern verwende.
Öffne ich ein Fenster mit #PB_Any und benutze die generierte Fenster ID dann für BindEvent(), dann wird nicht mehr auf den Event reagiert.

Vermutlich übersehe ich mal wieder was. :roll:

Code: Alles auswählen

EnableExplicit

Procedure SizeWindowHandler()
	Debug "Size event on window #" + EventWindow()
EndProcedure

; This works
; OpenWindow(0, 100, 100, 200, 200, "Resize test")
; BindEvent(#PB_Event_SizeDesktop, @SizeWindowHandler(), 0)

; This not
Define.i Wnd = OpenWindow(#PB_Any, 100, 100, 200, 200, "Resize test")
BindEvent(#PB_Event_SizeDesktop, @SizeWindowHandler(), Wnd)
Markus

Re: Frage zu #PB_Event_SizeDesktop

Verfasst: 28.08.2020 15:38
von Kiffi
Kurzer hat geschrieben:Vermutlich übersehe ich mal wieder was. :roll:
nee, nur falsch verstanden. Das Event wird ja vom Desktop (also dem Browser) ausgelöst (#PB_Event_SizeDesktop). Insofern darf dort kein Wnd eingetragen werden.

Code: Alles auswählen

BindEvent(#PB_Event_SizeDesktop, @SizeWindowHandler())
Demzufolge ist auch diese Aussage nicht korrekt:

Code: Alles auswählen

Procedure SizeWindowHandler()
   Debug "Size event on window #" + EventWindow()
EndProcedure
sondern eher:

Code: Alles auswählen

   Debug "Size event on desktop-window"
Dein Beispiel:

Code: Alles auswählen

OpenWindow(0, 100, 100, 200, 200, "Resize test")
BindEvent(#PB_Event_SizeDesktop, @SizeWindowHandler(), 0)
funktioniert wahrscheinlich nur zufälligerweise wegen der 0.

Wenn Du beispielsweise eine 1 einträgst, funktioniert es nicht mehr:

Code: Alles auswählen

OpenWindow(1, 100, 100, 200, 200, "Resize test")
BindEvent(#PB_Event_SizeDesktop, @SizeWindowHandler(), 1)
Grüße ... Peter

Re: Frage zu #PB_Event_SizeDesktop

Verfasst: 28.08.2020 22:47
von Kurzer
Danke für die Aufklärung. Mit der Objektnummer 1 habe ich es in der Tat nicht versucht.
Also ist es Zufall gewesen, dass es mit der Windownummer 0 funktioniert und ich habe mich dadurch in die Irre leiten lassen.

Den Code habe ich einfach nur aus der Hilfe zu BindEvent() kopiert. Dass da das EventWindow() ausgegeben wird war mir erstmal egal.