Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#31

Re: Loginform soll geschlossen werden bevor MainForm erschei

  Alt 26. Sep 2006, 09:40
Hi all,

auch mir missfällt das Abändern des Projekt-Quelltextes. Mir missfällt aber auch so ziemlich jede andere Restriktion. Bei Datenbankanwendungen gibt es einen sehr komfortablen Ansatz, der lediglich die automatische Erzeugung des Hauptdatenmoduls vor allen anderen Datenmodulen und Formularen erfordert. Im Ereignis OnCreate() werden dort zuerst die user credentials entgegengenommen. Scheitert der Verbindungsaufbau mit diesen Angaben, dann kann die Anwendung einfach verlassen werden.

Delphi-Quellcode:
procedure HaltApplication(msg: String);
begin
  if msg <> 'then
    ShowMessage(msg); // shutdown reason
  with Application do
  begin
    Terminate; // walk the TermProc chain
    Free; // free resources
    Halt; // shut down
  end;
end;

procedure TDM.DataModuleCreate(Sender: TObject);
var
  userName, passWord, roleName: String;
  canceled: Boolean;
begin
  with TLoginForm.Create(nil) do
  begin
    canceled := not Execute();
    Free;
  end;

  if canceled then
    HaltApplication('');

  Connection.ConnectionString := GetConnectionString(userName, passWord, roleName);

  try
    Connection.Connected := True;
  except
    on E: Exception do
      HaltApplication(E.message);
  end;

  // ...
end;
In allen anderen Fällen hat sich bei mir das Einklinken in die InitProc bewährt.

Grüße vom marabu
  Mit Zitat antworten Zitat