[Lazarus] nonlcl basic issue: is codetools LCL dependent?
Michael Schnell
mschnell at lumino.de
Thu Jun 26 15:07:22 CEST 2014
On 06/26/2014 02:52 PM, Mattias Gaertner wrote:
> On Thu, 26 Jun 2014 14:06:15 +0200
> Michael Schnell <mschnell at lumino.de> wrote:
>
>> [...]
>> Of course I do know this.
> Make up your mind. Either I'm "Not true at all" or I wrote something
> right.
>
"Not true" was, that my implementation of Application.QueuAsyncCall
using TThread.Queue would not perform the calls in the main thread.
(This in fact already does work perfectly.)
But maybe it really is not perfectly compatible, as,
_when_called_in_the_main_thread_, TThread.Queue perhaps does a direct
call instead of a queued schedule, which might not be true with
Application.QueueAsyncCall. I need to take a look at this.
> If your main thread does not call Application.ProcessMessages, what
> does it call to give time to the async calls?
See the my messages above in this thread:
checksynchronize()
>
> Stating the obvious:
> If you implement a LCL function in the nogui widgetset, you have to
> implement it compatible. Your goals and opinions are no excuses
> for incompatibility.
>
"Events are executed without the user needing to call
Application.ProcessMessages" is how all "decent" LCL WidgetTypes work
(but supposedly not NoGUI). Hence this is perfectly "compatible".
My initial intention was a new WidgetType called "ActiveNoGUI". But
here, I was presented with the suggestion to instead enhance the current
"NoGUI" WidgetType. This might or might not (for compatibility issues)
be desirable.
Of course, my primary goal is compatibility, of course, secondary is low
overhead.
-Michael
More information about the Lazarus
mailing list