Da ich nun ernsthaft mit den Vorbereitungen anfange, beginne ich einen eigenen Thread für das Thema.
Zunächst soll ein Beispielprogramm gebaut werden, das keine GUI hat, in dem aber Ereignis-gesteuerte Programmierung (z.B. Timer-events und TThread.Synchronize) verwendet werden können.
Ich habe herausgefunden, dass es hier sinnvoll ist, von TCustomApplication eine neue Klasse (z.B. TNonGuiApplication) abzuleiten (statt TApplication in einem GUI Projekt). Das geht auch problemlos, da TCustomApplication keine Bindung zur GUI (Windows oder GTK enthält). Die Prozedur TApplication.DoRun wird in TNonGuiApplication überschrieben mit einer Prozedur
die auf Messages wartet (in Windows Windows-Messages, in Linux System-VI Messages) und nach Eintreffen einer Message angemeldete Events (z.B. Timer-Events und ein Event, das für TThread.Synchronize verwendet wird) aufrufen kann. Das Application-Objekt wird dann als Instanz von TNonGuiApplication kreiert.
Bei der Recherche habe ich festgestellt, dass so etwas ähnliches in Lazarus schon existiert.
Man kann mit dem Menue "Datei->Neu->Projekt->CGI-Application" eine "CGI-Application" erstellen. Hier wird eine Klasse TCGIApplication von TCustomApplication abgeleitet und das Application-Objekt wird als Instanz von TCGIApplication kriert.
Ich vermute eine GGI-Application ist tatsächlich eine "Application" (also kein "Programm"
Wenn ich mit Lazarus versuche, eine neue "CGI-Application" zu erzeugen, bekomme ich eine Access-Violation, bevor ich überhaupt kompilieren kann.
Hat jemand schon einmal eine Lazarus CGI-Application verwendet ?
Gibt es irgendwelche Doku dafür ?
-Michael