![]() |
Re: Loginform soll geschlossen werden bevor MainForm erschei
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:
In allen anderen Fällen hat sich bei mir das Einklinken in die InitProc bewährt.
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; Grüße vom marabu |
Re: Loginform soll geschlossen werden bevor MainForm erschei
Hallo,
also ich finde, das "Rumwurschteln im Projekt-Quellcode" am einfachsten. Allerdings steht in meiner DPR nur 1 Zeile
Delphi-Quellcode:
naja, program bla; uses unit_Start; usw. ;)
DoStart;
und die Unit Start enthält dann halt
Delphi-Quellcode:
unit_Start;
bla procedure DoStart; begin Application.Initialize; if not ExcecuteFormLogin32(Application) then Exit; Application.CreateForm(TForm_MainZES, Form_MainZES); Application.Run; end; Heiko |
Re: Loginform soll geschlossen werden bevor MainForm erschei
Zugegeben: Den Projektquelltext für diesen Zweck zu modifizieren mag dem ein oder anderen nicht gefallen, für mich persönlich ist es eine elegante und absolut fehlerfreie Möglichkeit vor Ausführung von egal-was-auch-immer diverse Einstellungen und Abfragen vorzunehmen. Probleme hatte ich damit bisher nie und diese Art von Programmierung nutze ich jetzt seit Delphi 5 und aufwärts ohne jemals damit auf die Nase zu fallen.
Letztlich ist das natürlich Geschmackssache, denn jeder hat so seine Eigenarten und Vorstellungen, wenn es ums Programmieren geht. Viele Wege führen nach Rom. In diesem Sinne. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz