[Lazarus] Release Candidate 1 of Lazarus 1.6

Mattias Gaertner nc-gaertnma at netcologne.de
Wed Dec 9 13:44:23 CET 2015


On Wed, 09 Dec 2015 12:17:55 +0100
Michael Schnell <mschnell at lumino.de> wrote:

> On 12/09/2015 11:45 AM, Mattias Gaertner wrote:
> >> Application QueuAsyncCall is implemented using TThread.Queue.
> > What is wrong with the current implementation?
> Nothing. But it uses another Queue. Queue handling needs OS calls for 
> waiting. I  want to avoid to do any OS Calls so I simply use what the 
> RTL offers for exactly this purpose.

Please take a look at the NoGUI widgetset. It does not use another
Queue.

 
>[...]
> > NoGUi has already a dedicated mainthread, TThread.Synchronize, 
> > TThread.Queue, Application.ProcessMessages, 
> > Application.QueueAsyncCall. Only SendMessage and TTimer are missing.
>[...]
> In fact I would not like to try to re-use the NoGUI code,

What code? It only contains the basic methods to let it compile. Any LCL interface must have at least that.

> especially as 
> I seem to remember that I read about several shortcomings of same (I did 
> not yet check myself). Is there a documentation on what exactly NoGUI is 
> supposed to provide ?

The NoGUI allows to compile a LCL application without a GUI. It has a few lines of code to connect the RTL.

 
> (I suppose this "Service Application" might replace "noGUI", but of 
> course same should stay in place for legacy projects. )

I guess implementing TTimer and SendMessage only needs a few hundred
lines. I see no problem adding that to the NoGUI widgetset.

Mattias




More information about the Lazarus mailing list