[Lazarus] creating a Lazarus package "NoGUIApplication"

Mattias Gaertner nc-gaertnma at netcologne.de
Thu Mar 11 17:01:38 CET 2010


On Thu, 11 Mar 2010 12:04:40 +0100
Michael Schnell <mschnell at lumino.de> wrote:

> Hi Experts,
> 
> I'd like to create an opens source Lazarus package "NoGUIApplication", that allows for creating a Linux "Application" that allows for event driven programming but avoids any binding to the GUI. Same can be used in GUI-Less embedded systems. 
> 
> If that works, I'd like to add a Lazarus package "IFI" that allows for creating a "remote GUI" or such applications. 
> 
> As discussed in the "fpc-devel" mailing list, I already have a running implementation of "NoGUIApplication, that I did by porting the code from MSEIDE (which provides "NoGUIApplication" as a standard choice when creating a new project).
> 
> Now I am not happy with introducing this huge amount of code into Lazarus (i.e. a Lazarus "package") and rather use what the Lazarus and FPC distributions offer.
> 
> So I took a look what we have in the RTL and the LCL. I did some steps to do do a "TNoGUIApplication = class(TCustomApplication)", but looking into the "Forms" code (that implements the LCL "Application = class(TCustomApplication)", I saw that the connection to the underlying Graphics system is not direct, but done by kind of dynamically linking to a "Widget Type", and looking in the project options, I see that the Widget Type can be selected independently of the source code and creation method of the Application. Here even we already have a selectable widget type "NoGUI (Pre-Alpha)". Obviously somebody already once started such a project.

The strange thing is, that every time I read your mails in the last
weeks about nogui and lazarus, I thought you meant the nogui widgetset.

The "pre-alpha" is misleading.
The nogui widgetset is for applications, that uses the LCL, but doesn't
use the widgetset functions. The nogui widgetset simply makes the
compiler happy.
It does what it should, so you can say it is "beta". So far we didn't
receive much bug reports, so maybe it is "stable".

 
> Now I need to find out how the Widget Type selected in project options is linked to the code that implements the "controls" and how I can debug/edit the source code for the "NoGUI" Widget Type.
> 
> Thanks for any pointers.

Just choose the nogui widgetset and press F9. Of course you can not
create any TWinControl.


Mattias




More information about the Lazarus mailing list