Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
824 Beiträge
 
Delphi 10.4 Sydney
 
#1

Fehler bei Form.ShowModal

  Alt 23. Aug 2018, 09:54
Hallo Zusammen,

ich habe eine Fehlermeldung, die ich nicht verstehe.
Ich habe ein kleines Eingabe-Form erstellt, in dem Informationen, die nachher in eine Textdatei geschrieben werden erfasst werden.
Wenn ich das dieses Form mit ShowModal von meinem Hauptprogramm aus öffne, dann funktioniert alles wie es soll.

Jetzt habe ich aber eine Klasse in einer eigenen Unit definiert und ich möchte, dass sich das Form öffnen, wen keine Textdatei gefunden wurde. Aber dabei wird mir leider immer ein Fehler ausgeworfen...

Unit:
Delphi-Quellcode:
unit TDatenbankUnit;

interface

uses Uni, UniProvider, MySQLUniProvider, Codes, SysUtils, Vcl.Forms, Data.DB, Vcl.StdCtrls,
      System.Classes, ODBCUniProvider, CREncryption, Form_DBZugriffsdatenUnit;

Type
   TEvent = procedure(Sender: TObject) of object;
   TMySQLDB=class
      strict protected
         FMySQLConnection: TUniConnection;
         FMySQLProvider: TMySQLUniProvider;
         //Querys
         FMySelectQuery: TUniQuery;
         FMyWriteQuery: TUniQuery;
         FMyQuery_Signature: TUniQuery;
         FMyQuery_Einstellungen: TUniQuery;
         FMyQuery_Ansprechpartner: TUniQuery;
         FMyQuery_Sprache: TUniQuery;
und so weiter...


Procedure, in der der Fehler auftritt:
Delphi-Quellcode:
procedure TMySQLDB.Connect (Connection: TUniConnection);
var Datei: TextFile;
    MyString: String;
    ResultDBZugriff: integer;
begin
   ResultDBZugriff:=0;
   if not FileExists(ExtractFilePath(Application.ExeName) + 'SQL.set') then begin
      ResultDBZugriff:=Form_DBZugriffsdaten.ShowModal; //Hier tritt der Fehler auf!
      if ResultDBZugriff>1 then begin
         Exit;
      end;
   end;
   AssignFile(Datei, ExtractFilePath(Application.ExeName) + 'SQL.set');
   Reset(Datei);
   try
      ReadLn(Datei, MyString);
      Connection.Server := copy(MyString, pos(':', MyString)+1, length(MyString));
      ReadLn(Datei, MyString);
      Connection.Username := copy(MyString, pos(':', MyString)+1, length(MyString));
      ReadLn(Datei, MyString);
      Connection.Password := copy(MyString, pos(':', MyString)+1, length(MyString));
      ReadLn(Datei, MyString);
      Connection.Database := copy(MyString, pos(':', MyString)+1, length(MyString));
      ReadLn(Datei, MyString);
      Connection.ProviderName := copy(MyString, pos(':', MyString)+1, length(MyString));
      ReadLn(Datei, MyString);
      Connection.Port := strtoint(copy(MyString, pos(':', MyString)+1, length(MyString)));
   finally
      CloseFile(Datei);
   end;
   Connection.Connected:=true;
end;
Fehlermeldung:Eine Exception in der Klasse $C0000005 mit der Meldung 'access violation at 0x00b31be0: read of adress 0x00000000' aufgetreten. Sieht jemand was ich falsch mache?

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat