Ik ben een applicatie in elkaar aan het draaien die in de SysTray (Windows) of menu-balk (MacOSX) gaat zitten. Dit programma dient op te starten zodra de computer start, maar ik wilde eindgebruiker niet lastig vallen met een venster dat men moet sluiten.
De vraag dus: hoe start ik mijn applicatie nu zonder dat het hoofd venster meteen opent bij het opstarten?
Gelukkig vond ik goed verborgen in het Lazarus Forum het antwoord.
Door het toevoegen van een enkele regel in de project file (*.lpr bestand) kunnen we voorkomen dat het programma venster zich opent bij het op starten.
Open de project file (het .lpr bestand) - dit kan direct of via het "Project" menu, waar je "Project Inspector" kiest en dan onder file het ".lpr" bestand dubbel klikt.
In de project code voegen we de regel "Application.ShowMainForm:=FALSE" toe, net voor de regel met "Application.CreateForm()".
Ik heb het getest onder MacOS X en Windows en het werkt uitstekend - de applicatie start zonder dat het hoofd venster zichtbaar wordt.
Een voorbeeld:
program VoorbeeldProgje;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, mainunit
{ you can add units after this };
{$R *.res}
begin
RequireDerivedFormResource := True;
Application.Initialize;
Application.ShowMainForm := FALSE; // <- deze regel voorkomt dat het hoofdvenster zich opent
Application.CreateForm(TForm1, Form1);
Application.Run;
end.