Michael Schnell wrote:
On 05/03/2012 03:16 PM, Mark Morgan Lloyd wrote:
even if that meant that they were built up step-by-step under code
control rather than constructed from a description in resources.
Yep. If you don't want to create a tool that uses the resources in the
DLL and constructs the GUI from same, you can't use the Lazarus form
designer and need to write code to manually add the controls you need
for your plugin. IMHO it should not be too hard to do such a tool, as
this is exactly what is done by the program startup code, anyway. You
just need to take a look at the LCL part that does this
(TApplication.CreateForm, when creating a non-Main form) and take out
what you think is useful for that purpose. But (as said) you need to use
the LCL of the main project, not that of the DLL. So the tool should be
done in the main program, so that it attaches to the correct Application
instance. You then need to pass the address of the resource to same when
the DLL is "started" (e.g. by providing a function that returns that
address). Beware, that the memory management should be unified before.
One thing does occur to me, and that is that if the IDE was used to
create a form stored in a DLL (or, presumably, a shared object library)
then it even if it's not animated it should be usable as a template for
copying to a blank form in the main program. And code to do that, once
written, should be fairly general.
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus