Thema: Delphi Anwendung ohne MainForm

Einzelnen Beitrag anzeigen

Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#1

Anwendung ohne MainForm

  Alt 17. Jul 2012, 10:37
Hi,

in einer Anwendung sollen alles Forms erst dann erstellt werden wenn sie benötigt werden. Es soll auch kein MainForm geben, lediglich ein DatenModul soll von Anfang an verfügbar sein. Lösche ich aus der Projekt-Datei die Zeile Application.CreateForm(...); mit der das MainForm erzeugt wurde, startet die Anwendung zwar, nach erstellen des DatenModul beendet sich das Programm aber sofort. Mit folgenden Code kann ich das verhindern:

Delphi-Quellcode:
program Project3;

uses
  Forms,
  Unit2 in 'Unit2.pas{Form2},
  Unit3 in 'Unit3.pas{DataModule3: TDataModule};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := False;
  Application.CreateForm(TDataModule3, DataModule3);
  Application.ShowMainForm := False;
  Application.Run;

  while not Application.Terminated do
    Application.ProcessMessages;
end.
Bisher hat alles wunderbar auf diese Weise funktioniert.

Jetzt wollte ich aber wissen: Kann das irgendwelche Seiteneffekte erzeugen? Oder die Performance der Anwendung mindern? Gibt es noch andere Möglichkeiten eine Anwendung ohne MainForm zu erzeugen (keine Konsolen-App)?

EDIT: Mit HandleMessage geht es auch:
Delphi-Quellcode:
  while not Application.Terminated do
    Application.HandleMessage;
Was ist besser? HandleMessage oder ProccesMessages? Das TApplication-Ojbekt macht intern auch nicht anderes als
Delphi-Quellcode:
  ...
      repeat
        try
          HandleMessage;
        except
          HandleException(Self);
        end;
      until Terminated;
...
Andreas Lauß
Blog

Geändert von Andreas L. (17. Jul 2012 um 10:48 Uhr)
  Mit Zitat antworten Zitat