Ich habe auch so einen Fall, dass ich mal das Hauptformular nicht anzeigen will und durch Parameter das Programm dann automatisch etwas tun soll. Ich habe es allerdings so gelöst, dass das Hauptform dennoch erzeugt und nur nicht angezeigt wird - die eigentliche Verarbeitung von Parametern erfolgt dann bei mir auch nicht in der Projektdatei, sondern im FormActivate des Hauptforms (hat den Vorteil, dass ich da dann auch Dinge anstellen kann, die doch das Hauptform brauchen - außerdem sollten dann auch wirklich alle nötigen Dinge initialisiert sein, was bei dir ja ggf. das Problem ist).
Also, in der Projektdatei dann sowas:
Delphi-Quellcode:
Application.CreateForm(Tmain, main);
// ... weitere nötige Forms erzeugen...
if paramCount>0 then begin
Application.showMainForm:=false;
main.FormActivate(nil); // das hier ist nötig, weil "OnActive" durch
// show=false nicht mehr aufgerufen wird
end;
Und dann im main-Form:
Delphi-Quellcode:
procedure Tmain.FormActivate(Sender: TObject);
begin
if firstRun then begin
firstRun:=false; // wurde in FormCreate auf true gesetzt...
if paramCount>0 then begin
// mach hier das Zeugs, das automatisch passieren soll...
end;
end;
end;
Klappt eigentlich ganz gut. In Wahrheit prüfe ich in der Projektdatei noch, ob bei den Parametern einer dabei ist, der überhaupt für ein Verstecken des Hauptforms sorgen soll, aber das sind Details...
Bis denn
Bommel