Man ruft nicht direkt Destroy auf.
Delphi-Quellcode:
Application.Free;
if not Application.Terminated the
Und jetzt rate mal, was du da machst?
Genau, du erzeugst eine
Exception, da du versuchst ein Objekt (TApplication) zu nutzen, welches nicht mehr existiert und da du an dieser Stelle keine Exceptions mehr abfängst/verarbeitest, schmiert gleich die ganze Anwendung ordentlich ab.
Von Halt würde ich abraten.
Das ist so, als wenn du bei 200 km/h 'nen Anker aus'm Auto wirfst, anstatt mit angemessener Geschwindigkeit abzubremsen.
Delphi-Quellcode:
Application.Initialize;
{hier prüfe ich, ob einen Datei vorhanden ist}
if darf_starten then begin
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end;
oder notfalls
Delphi-Quellcode:
Application.Initialize;
{hier prüfe ich, ob einen Datei vorhanden ist}
if not darf_starten then
Application.Terminate;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
Du kannst aber auch mal
Exit probieren
Delphi-Quellcode:
Application.Initialize;
{hier prüfe ich, ob einen Datei vorhanden ist}
if not darf_starten then
Exit;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;