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