[Lazarus] Main form resize events
Mark Morgan Lloyd
markMLl.lazarus at telemetry.co.uk
Mon Sep 27 11:30:28 CEST 2010
Mattias Gaertner wrote:
> On Mon, 13 Sep 2010 09:54:45 +0000
> Mark Morgan Lloyd <markMLl.lazarus at telemetry.co.uk> wrote:
>> I've got a form containing main menu, status lines top and bottom, and a
>> couple of grids. I've been doing other things for a few days but I now
>> seem to have a problem where resizing the form (diagonal mouse-drag on
>> bottom-right corner) does not correctly resize/reposition all of the
>> Running on x86 Linux (Debian) and looking at the app built with
>> different versions of Lazarus, each with its own LCL and preferred FPC
>> version, and for either GTK1 or GTK2:
>> With 0.9.28.3 (27343) for GTK, neither status line changes when the form
>> is resized, one of the grids which is left-aligned also stays unchanged
>> with part of the bottom status line visible below it.
>> With 0.9.28.3 (27343) for GTK2, performance is erratic. The bottom
>> status line sometimes changes correctly, but the width of the top line
>> and its panes is always unchanged.
>> With 0.9.29 (27343) for both GTK and GTK2, attempting to resize the form
>> sometimes results in it "snapping back" to the original size or
>> sometimes to something intermediate; I suspect that this might be a DPI
>> issue since I'm working over VNC and the setting of the two X servers
>> might not be the same. Positioning of the status lines etc. appears to
>> be correct.
>> For completeness, 0.9.26.2 (25955) and 0.9.28.2 (27246) appear to behave
>> as 0.9.28. However I think that I've seen all of those working properly
>> in the past, although details such as the resizing of panes within a
>> status line might have been erratic.
> The layout algorithm was rewritten in 0.9.29 to support complex layouts.
> Please create a bug report with an example.
I've reviewed my code and not liked what I saw. After reorganising some
things overall behavior is far better so I don't think it's worth
treating as a bug.
For the record, I'd put in various hacks to work around the fact that a
TDrawGrid doesn't have a resize event. This was having non-obvious
side-effects including things like the menu bar not tracking the form
width properly, moving the DrawGrid and its immediate siblings into a
panel hence being able to use the panel's resize appears to have sorted
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
More information about the Lazarus