Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#11

Re: Application Error 0xc0000142

  Alt 25. Jul 2007, 12:16
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
  Mit Zitat antworten Zitat