Mattias Gaertner wrote:
On Tue, 05 Jun 2012 10:18:04 +0930
SteveG <[email protected]> wrote:

I understand that the gui system is non-reentrant, and therefore should not be accessed by any thread but the main one.

yes
I am using cmem as my memory manager for both my app and library (if thats relevant),

yes it is relevant.
If you have two memory managers you can not exchange strings and
classes.


and it would appear that the entrant thread of the library is the same as the main app ?

Yes.

What OS?

So.... is it safe to read / write to gui components (I have the control addresses) from within the library (no new threads created) without problems ?

The "is" operator requires that the library uses the VMTs of the main
application.

To summarise - can I rd/wr to form controls from within a cmem controlled library using its main thread ?

Yes, to some degree.

Please can I tack a related question onto this. If I have analogous forms in a main program and shared library (.dll or .so), where the menu structure in the main form is built up from what's in the library, can the main program's menu call OnClick() events in the library safely?

What I'm hoping to do is use the library's form(s) purely for design purposes, i.e. they're never displayed but instead their menu structure is copied to the main program. Non-graphical backend functionality would be in the library, and I've obviously got the choice of attempting to control this using OnClick() etc. or by passing commands in strings to be parsed.

--
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
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to