[Lazarus] Lazarus IDE + Qt annoyances

Graeme Geldenhuys graemeg.lists at gmail.com
Sat Feb 6 13:12:22 CET 2010


Graeme Geldenhuys schrieb:

>> Yes, you need to mess with Gtk to do it. I would however recommend
>> that you try it with Qt instead.
> 
> But that defeats the point of LCL then - not all features work in all
> widgetsets. So you end up having an application that looks or behaves
> different depending on widgetset used (Qt, GTK1, GTK2, Win32, Carbon
> etc.). Consistent cross-platform out the window. :-(

I'm still dreaming of an LCL that also supports widgetsets natively. 
Please note *also*, not exclusively.

This model would cover an set of general controls, which map to 
compatible controls of every widgetset. This would make layouts 
compatible across widgetsets, with a chance to select one of multiple 
compatible controls for the controls in the general form descriptions 
(skeletons).

Then distinct GUIs can be created from a form skeleton, for specific 
widgetsets, where the code of the form interacts with the native 
controls, with regards to painting, event handling, and whatever is 
different across multiple widgetsets. Most configuration can be done in 
the Object Inspector, based on the properties of the concrete (native) 
controls. An XML or similar description of the form layouts could cover 
the specific settings of every component in dedicated widgetset sections.

A more general form designer would cover the different layout rules, 
resulting from according container controls or layout managers. As I 
already suggested, the TWinControl.DockManager then could be replaced by 
an LayoutManager hook, with all required methods to configure and resize 
the child controls of a container control. Then docked controls differ 
from other controls only in their DragMode property, and the DockSite 
property only is an alias for Parent. Regardless of how controls are 
inserted into a container control - by an form designer, in code or by 
docking - the Dock/LayoutManager of the container handles their 
placement within the container.

DoDi





More information about the Lazarus mailing list