Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Programm beenden bevor Mainform angezeigt wird

  Alt 28. Feb 2006, 15:29
Dein Ansatz ist falsch: Im OnCreate sollte man nicht abbrechen (wie Du ja gemerkt hast)
Ich mache es so:
1. Das eigentliche Hauptfenster, sei es 'TfmMain', wird erst zur Laufzeit erzeugt.
2. Ich habe einen kleinen Login-Dialog
3. Ich erzeuge im Hauptprogramm nur die Datenmodule und als Letztes den Login-Dialog. Also ist der Logindialog die Hauptform der Anwendung!

Der Login-Dialog hat 2 Knöppels (OK und Abbruch, btOk und btCancel) sowie zwei Eingabefelder (edLogin und edPassword).

Delphi-Quellcode:
Procedure TfmLoginDialog.btOkClick (Sender : TObject);
Begin
  If DM.LoginOk (edLogin.Text, edPassword.Text) Then Begin
    Self.Hide;
    With TfmMain.Create (Nil) Do Begin
      ShowModal;
      Release;
    End;
    Self.Show;
  End
  Else Raise Exception.Create('Login inkorrekt');
End;

Procedure TfmLoginDialog.btCancelClick (Sender : TObject);
Begin
  If AskUserYesNo('Wirklich beenden?') = mrYes Then
    Close;
End;
Also sauberer hab ich es bisher nicht hinbekommen.

Oje: Neue Beiträge... Die Sache mit der Statusbar...
Na dann so:
Mein Hauptfenster ist im Gegensatz zum o.g. Ansatz weiterhin das Hauptfenster.
Ich habe ein Panel, das über allen Controls liegt. In der Mitte des Panels ist ein Login-Edit sowie die bekannte Ok/Abbruch-Knöpfe.

Das Panel ist beim Start sichtbar und überdeckt ALLES (bis auf -von mir aus- die Statusbar). Der Login 'dialog' befindet sich auf dem Panel. Wer sich Mühe gibt, verwendet eine Pagecontrol mit 2 Seiten (tcLogin und tcMain). Die Page-Reiter sind unsichtbar.

Wenn der Login ok ist, wird das dicke Panel einfach unsichtbar gemacht und die Hauptanwendung wird sichtbar.

Vom Rumwerkeln im Projekt-Quellcode halte ich Nichts.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat