This question could be reformulated as "How do I dynamically determine the correct GUI to use or whether to use the nogui interface."

My understanding is that Lazarus programs usually do this at link time as a result of setting the LCL_PLATFORM environment variable. This forces the requested GUI's "interfaces" unit to be included which, in turn, has an "initialization" section that calls the "CreateWidgetSet" procedure for the selected GUI.

Although I've never tried this, I would have thought it possible to build with LVL_PLATFORM=NOGUI and dynamically to test for a platform specific GUI. If present, then "FreeWidgetSet" can be used to unload the NOGUI and a call to CreateWidgetset used to load the required GUI e.g. under Linux:

CreateWidgetset(TGtk2WidgetSet);

with InterfaceBase and Gtk2Int in the uses clauses.

Just an idea,

Tony Whyman

MWA


On 11/04/17 10:15, Mark Morgan Lloyd via Lazarus wrote:
Apologies if this is an FAQ.

Is there an orthodox way that a Lazarus program can very early on look at how it's been started and decide whether it can usefully fall back to a text mode, e.g. to display help info on stdout rather than a messagebox?

I'm tinkering with something (a media test program for SDCards etc.) which I'd like to either run as a conventional console program, or using a GUI. I've previously written stuff where operation was entirely dependant on command-line options, but haven't tried making the decision completely automatically.

Current operating environment is KDE on Debian on an RPi.


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to