Wo steht der Aufruf des Anmeldeformulares, was steht zwischen diesem Aufruf und dem Application.Run?
Das von Dir beschriebene Szenario "Anmeldemaske mit Abbruchmöglichkeit" löse ich für gewöhnlich in der Art:
Delphi-Quellcode:
begin
Application.Initialize;
// hier der Aufruf der Anmeldemaske:
// Anmeldemaske erstellen oder passende Methode aufrufen ...
if Anmeldemaske.ShowModal = mrOk
then begin
// Von den Initialisierungen der Formulare ... wird beim Abbruch nix benötigt.
// also werden sie vor der Entscheidung, ob Anmeldung oder Abbruch, nicht erstellt.
Application.CreateForm(TfmMain, fmMain);
// ... und alle anderen Formulare ...
Application.Run;
end else begin
// nix oder Meldung des Programmabbruches ...
// Hier ist Application.Terminate eine schlechte Idee.
// Wenn schon CreateForms vor der Entscheidung, dann wird hier das Hauptformular des Programmes geschlossen,
// damit alle anderen auch die Chance bekommen, ordentlich aufzuräumen.
// Application.MainForm.Close;
// Wobei: Die Erfahrung zeigt, dass auch das nicht immer zwingend ohne negative Nebenwirkungen "durchläuft".
// Z. B. Irgendwo in 'nem FormCreate oder einer DFM wird/ist ein Timer auf True gesetzt, Thread erstellt, ...
end;
end.