[Lazarus] Lazarus 2.2 and FormResize

R.Smith ryansmithhe at gmail.com
Tue Jun 28 11:36:10 CEST 2022


Amazing coincidence, I just ran into this yesterday and contemplated 
posting about it.

The behaviour now seems as if for a "OnAfterResize" type of event - and 
it's great to have - but on occasion you really want to resize form 
internals during a resize operation by the user.

In my case, I have a form with 2 panels [alLeft, alClient] on it that I 
resize to 50% (by changing the width of the alLeft-aligned panel) when 
the form resizes. If the form was quite large and thus the panels are 
both large, then the user grabs the form-edge and drag it smaller, the 
alClient-aligned panel will resize into nothingness and the other panel 
become partly hidden (when the form becomes smaller than its original 
size, until the user releases the mouse at which point the event fire 
and they jump back to size.

To be clear - it's a fantastic feature to have, I've often wished for an 
OnAfterResize type event, and will mostly use it so, but in some cases 
would want the old behaviour. Perhaps if there was some way to change 
that for a form? A new property perhaps, or even a programmatically 
selectable variable or such.

I'm happy to say in the form's OnCreate() event for the form, or even 
application-wide if need be:
   formContinuousResize := True;

or whatever sounds feasible.


On 2022/06/28 09:03, Luca Olivetti via lazarus wrote:
> With Lazarus 2.0.12 the OnResize event for a form was fired while 
> resizing, but in 2.2.2 it's fired only when the resizing is done (only 
> under windows, under linux it behaves the same as before).
> However, if I put, say, a panel with top,left,bottom,right anchoring, 
> its OnResize event is fired while resizing.
> Is there a way to restore the previous behaviour for a form?
>
> Bye


More information about the lazarus mailing list