[Lazarus] Using Lazarus for non-graphical apps

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Tue Jan 7 12:27:23 CET 2014


Michael Schnell wrote:
> On 12/28/2013 10:07 PM, Mark Morgan Lloyd wrote:
>>
>> Thanks, I'm reading stdin directly with a tight timeout using fpselect 
>> so it sounds like I should be able to manage something.
>>
> This of course requests for a multithreaded application. (i.e. the 
> threads that handle the blocking pipes communicate with the main thread 
> via "TThread.Queue" or "Application.QueueAsyncCall").
> 
> In fact without a GUI binding currently you even can't use TTimer.
> 
> Exact,y this is why I am planing to do a "active NoGui" "Widget Type" - 
> and since not that long I do know how this can be done. :-)
> 
> As Michael and Sven state, "TThread.Queue", "Application.QueueAsyncCall" 
> depend on checksynchronize() (and TTimer needs a dedicated 
> implementation in a new WidgetType, anyway).

Thanks, yes. In practice there will be limited communication between 
backend threads and the frontend console, I think I've managed to 
organise things so that there's effectively a single point of contact 
and the program will be able to run in text mode (i.e. inside something 
like GNU Screen) or with a GUI.

The non-GUI version is a <1Mb binary smartlinked and stripped, which is 
credible for publishing. Haven't a clue what the GUI version will come 
to yet, since I want to embed symbolic debugging and a simulated logic 
analyser which implies pulling in a lot of code.

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]




More information about the Lazarus mailing list