On Thu, Aug 08, 2013 at 12:15:44PM +0100, Lukasz Sokol wrote:
> but I would then need to make the wrapper object aware of the Application 
> or its forms then?
> 
> I wanted the wrapper unit to be as self-contained as much as possible,
> (so the callback function is defined in a unit that only has Classes, 
> SysUtils and dynlibs as uses,
> i.e. no Forms. Controls or Graphics)
> but still be thread-safe w/r/t to where the wrapper object is created
> (within a GUI form or /not/)

Create an event in your wrapper class and make sure that it's documented
that this event will be called from a thread.  Then if you use this
wrapper class from a gui app, you can use Application.QueueAsyncCall or
PostMessage in the event handler.  If you use the wrapper from a command
line app, you'll have to use a thread-safe queue that you query from
time to time in the main thread of the app, or build it into your event
loop, if you have one.

Henry
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to