Du solltest auf jeden Fall 3 Forms haben:
Form1 (Hauptformular der Anwendung)
Form2 (LoginFormular)
Form3 (Arbeitsfenster)
Form2 und Form3 weist Du im
OI visible = false zu.
In den Projektoptionen soll stehen, dass Formulare 1 und 3 automatisch erzeugt werden und Form1 das Hauptfenster ist.
Im Ereignis OnShow der Form1 rufst Du Form2.ShowModal auf.
Dort weist Du (je nach Erfolg des Login) Form2.ModalResult den Wert mrOK oder mrCancel zu, dadurch wird das Fenster geschlossen. (Dazu kann ich nichts genaueres sagen, weil ich nicht weiß, wie Dein Login funktioniert).
Delphi-Quellcode:
var loginForm: TForm;
begin
loginForm := TForm2.Create(Application);
if Form2.ShowModal = mrOK
then
begin
Form2.FreeAndNil;
Form3.Show
end
else Form1.Close;
end;
Was passiert?
1. Form1 und Form3 werden
erzeugt (d.h. speicher reserviert und der ganze kram. Das siehst Du auch in der 'Projekt'.dpr-Datei vor Application.Run.
2. Form1 (als Hauptformular) wird
angezeigt. Dann wird OnShow ausgelöst.
3. In OnShow erzeugst Du eine Instanz des Loginfensters und zeigst es mit ShowModal an. Das heißt, dass das Fenster im Vordergrund bleibt (d.h. man nichts anderes in der Anwendung gleichzeitig machen kann).
Wenn der Loginvorgang erfolgreich war (mrOK), wird Form2 befreit (und ist dann auch nicht mehr im Speicher) und Form3 angezeigt, in der wohl die eigentliche Arbeit des Programms abläuft.
Wenn der Login fehlgeschlagen ist, wird Form1 geschlossen.
Wenn Du das Hauptformular einer Anwendung schließt, wird die Anwendung beendet.
Ich hoffe, das hat es klarer gemacht
MFG
Urs
P.S. Timer oder sowas brauchst Du auf jeden fall nicht.