Ich habe jetzt nur eine Methode deines Sources angeschaut
Delphi-Quellcode:
procedure TFrmServerConfig.FormCreate(Sender: TObject);
begin
if FileExists(GetDataPath+'System.fdb') then
begin
DMSystem.dbSystemZeos.Database := GetDataPath+'System.fdb';
try
DMSystem.dbSystemZeos.Connect;
except
Application.Terminate;
end;
end
else
Application.Terminate;
MPGetLanguage(); // Sprache aus System.fdb auslesen (füllt Array aSprache)
MPSetLanguage(Self); //Verpasst den Komponenten die richtigen Text/Caption Propertys
slPlugins := TStringList.Create;
bActivated := false;
sLicenseHolder := aSprache[1379];
iMaxUser := 0;
end;
Hier machst du schon mehrere Fehler meiner Meinung nach.
1.) nach dem Application.Terminate gehts im obigen Quelltext weiter. Ich vermute mal das MPGetLanguage() usw. auf eine bestehende Connection zur Datenbank angewiesen sind ?
2.) wichtige Objekte wie slPlugins werden erst nach der Initialisierung der
DB erzeugt.
Ich würds so schreiben
Delphi-Quellcode:
procedure TFrmServerConfig.FormCreate(Sender: TObject);
begin
slPlugins := TStringList.Create;
bActivated := false;
iMaxUser := 0;
if FileExists(GetDataPath+'System.fdb') then
begin
DMSystem.dbSystemZeos.Database := GetDataPath+'System.fdb';
try
DMSystem.dbSystemZeos.Connect;
except
Application.Terminate;
Exit;
end;
end else
begin
Application.Terminate;
Exit;
end;
MPGetLanguage(); // Sprache aus System.fdb auslesen (füllt Array aSprache)
sLicenseHolder := aSprache[1379];
MPSetLanguage(Self); //Verpasst den Komponenten die richtigen Text/Caption Propertys
end;
Gruß hagen