[PB 5.30] ResizeGadget : Changement de fonctionnement
Publié : sam. 31/mai/2014 18:40
Le mode de fonctionnement de ResizeGadget() change.
■ Le positionnement ou redimensionnement des gadgets se fait une fois que le redimensionnement de la fenêtre est terminée afin d'éviter les effets de flickering.
■ Pour obtenir un redimensionnement ou un repositionnement des gadgets en temps reel, il faut passer par la fonction BindEvent() avec un appel à une procédure.
Et non ce n'est pas un bug 
■ Le positionnement ou redimensionnement des gadgets se fait une fois que le redimensionnement de la fenêtre est terminée afin d'éviter les effets de flickering.
Code : Tout sélectionner
Enumeration
#Mainform
#Button
EndEnumeration
Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered|#PB_Window_SizeGadget, Event
OpenWindow(#Mainform, 0, 0, 500, 400, "Window Resize", WindowStyle)
ButtonGadget(#Button, 400, 30, 80, 24, "My Button")
Repeat
Event = WaitWindowEvent(10)
Select Event
Case #PB_Event_Gadget
Select GEvent
EndSelect
Case #PB_Event_CloseWindow
End
Case #PB_Event_SizeWindow
ResizeGadget(#Button, WindowWidth(#Mainform)-100, #PB_Ignore, #PB_Ignore, #PB_Ignore)
EndSelect
ForEver
Code : Tout sélectionner
Enumeration
#Mainform
#Button
EndEnumeration
Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered|#PB_Window_SizeGadget, Event
Procedure OnResize()
ResizeGadget(#Button, WindowWidth(#Mainform)-100, #PB_Ignore, #PB_Ignore, #PB_Ignore)
EndProcedure
OpenWindow(#Mainform, 0, 0, 500, 400, "Window Resize", WindowStyle)
ButtonGadget(#Button, 400, 30, 80, 24, "My Button")
BindEvent(#PB_Event_SizeWindow, @OnResize(), #Mainform)
Repeat
Event = WaitWindowEvent(10)
Select Event
Case #PB_Event_Gadget
Select GEvent
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver

The #PB_Event_SizeWindow and #PB_Event_MoveWindow events are no longer reported in realtime in the main event loop. This is to reduce problems with flickering on resize. To get realtime events you have to use the BindEvent() function and a callback in the future.