Frage zu #PB_Event_SizeDesktop

Hier könnt ihr alle Fragen zu SpiderBasic austauschen.
Benutzeravatar
Kurzer
Beiträge: 1614
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Frage zu #PB_Event_SizeDesktop

Beitrag 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
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2023: 56 Jahre.
Benutzeravatar
Kiffi
Beiträge: 10620
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Frage zu #PB_Event_SizeDesktop

Beitrag 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
Hygge
Benutzeravatar
Kurzer
Beiträge: 1614
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: Frage zu #PB_Event_SizeDesktop

Beitrag 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.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2023: 56 Jahre.
Antworten