[fpc-devel] TCustomApplication

Michael Schnell mschnell at lumino.de
Mon Aug 19 11:19:47 CEST 2013

Hi Experts.

Since ages I am searching  for an "easy" method to do "normal (i.e. 
"event driven") Pascal programming using Lazarus as an IDE and targeting 
headless embedded devices (with no GUI hardware and/or GUI software 

I understand that the fpc RTL already provides TCustomApplication (while 
Lazarus creates descendants from same to do "Lazarus Applications" - of 
several kinds,  definable by Lazarus "WidgetTypes" - in the LCL).

Now, unfortunately, there is no predefined "WidgetType" that out of the 
box allows for event driven programming using "normal" stuff like 
TTimer, TThread.Synchronize, TThread,Queue, and 
Application.QueuAsnycCall without forcing a GUI binding (while all this 
seems to be possible with mseide).

In fact some years ago I tried to create  an LCL Widget Type like that, 
using the "Lazarus Way", but failed due to the complexity of the LCL.

I understand that (without using the LCL at all), in the RTL, it is 
possible to do e.g. an "Application" that provides at least one timer 
(see testtimer.pp) or things like a "DaemonApplication (see 
daemonapp.pp). At least the "DaemonApplication" seems to auto-adapt to 
Linux or Windows while being compiled.

But here it seems, the application programmer needs to dedicatedly 
tailor his code for a very special kind of application himself.

Is there (or would it be viable to have in an LCL-independent package) a 
more general "TCustomApplication" descendant such as "TApplication" or 
similar, that (auto-adapting to Linux and Windows when being compiled) 
provides TTimer, TThread.Synchronize, TThread,Queue, and 
Application.QueuAsnycCall, while allowing for decent "event driven" 
programming ? Here a decent (OS-dependent) mechanism needs to be 
implemented to notify the main thread of timer and Thread generated 
events so that it is able to try to fetch the next event from the queue 
as soon as possible after (and only when) at least one has been generated.

I would happily try to do something like that myself, but at least for 
the rest of this year I will not find the time :( . But as this thought 
comes in my mind, I now try to collect information on this issue.


More information about the fpc-devel mailing list