[Lazarus] TCoolBar improvements

Juha Manninen juha.manninen62 at gmail.com
Sun Apr 27 13:42:16 CEST 2014


TCoolBar was improved a lot by Vojtech Cihak.
See:
 http://bugs.freepascal.org/view.php?id=25026

I am moving the discussion from bug tracker to here. Maybe others have
comments, too.


>> Drag cursor is wrong with QT but that is a QT widgetset issue.
>> With GTK2 it is better, although the left-right resize cursor for 2 bands side by side is wrong while moving mouse.

> Unfortunately, I cannot reproduce it here. Cursors look fine in both Qt4 and GTK2.

For me it happens with GTK2 and QT on Linux Mint 14.
1. Drag a band to the right side of another band.
2. Place mouse cursor on the grab-handle of the right side band. It is
kind of between the 2 bands. Cursor correctly changes to horizontal
resize.
3. Grab the handle (mouse down) and the cursor changes to "disallowed" sign.
  On Windows the cursor remains as "resize" which is correct.

On Windows the cursor changes to normal pointer when mouse goes over
other controls on bands.
With QT + Linux the cursor is always "disallowed" when dragging.

With all widgetsets it is possible to drag and resize bands, only the
cursor is wrong.


>> For example the associated conrol's location goes wrong if you set its alignment.

> What does this mean: "set its alignment"? How can I see it? Do you mean changing control's --property Align when it is on band?

Yes, in Object Inspector set Align=alBottom or Align=alClient for a
control which is attached to a band.
Strangely, after switching back to Align=alNone the positionsing logic
is still broken. You can move the control manually.
I still think the code should use AlignControls. It is part of LCL's
design and solves cleanly exactly this kind of issues.
I am afraid now you must do more hacks to fix the positioning and it
will still not be good.

Juha




More information about the Lazarus mailing list