Am 10.01.2011 12:42, schrieb Michael Schnell:
On 01/10/2011 12:30 PM, Graeme Geldenhuys wrote:
The fpGUI UI Designer generates source code.
I see. I understand that the Lazarus `form designer creates a resource
that is interpreted by the runtime Form creating process (an at design
time by the design time Form creating process in a very similar way).
Why does fpGUI go the other way ?
If I recall correctly, Graeme dislikes the "resource form" approach used
by Lazarus and Delphi. (@Graeme: please correct me, if I'm wrong here)
You can test this yourself, by creating a LCL-fpGUI based application
and using any of the Standard Component Palette components.
Once I happen to get Lazarus running again ;)
LCL's form
designer generates a *.lfm file, like normal.
But I suppose they are not used at all, so using the Lazarus Form
designer for an fpGUI project does not make any sense. Correct ?
Wrong.
Let's try this another way:
LCL applications don't need to use resource files at all. All components
can be created at runtime by overriding the constructor (Create) of
TForm. Normally the constructor searches a resource file, creates all
child classes that are found in there and assigns the properties/events
found in the resource file.
Now a pure fpGUI project only does the first: create components at
runtime in a "special" method.
An LCL-fpGUI application does the same as other LCL applications: it
searches a resource, creates the child components and assigns the
properties. This works, because a TButton from the LCL IS NOT a fpGUI
button (TfpgButton), but a class that (basically) WRAPS a TfpgButton
(it's the same with the other widget sets btw.). This wrapping code is
located inside the lcl/interfaces/<widgetset> directories. Only there is
widgetset specific code used (e.g. only in lcl/interfaces/fpgui units
from fpGUI are used). The other parts in lcl directory are widgetset
independant.
Is it more clear now?
Regards,
Sven
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus