Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Exception EReadError in Modul - Ungültiger Eigenschaftswert (https://www.delphipraxis.net/188862-exception-ereaderror-modul-ungueltiger-eigenschaftswert.html)

Freyr77 14. Apr 2016 10:22

Delphi-Version: 10 Seattle

Exception EReadError in Modul - Ungültiger Eigenschaftswert
 
Moin.

Mein Delphi zeigt mir mir folgenden Fehler an wenn ich mein Projekt starten will:

"Exception EReadError in Modul ProjectDBTest.exe bei 000BE940. Fehler beim Lesen von Form1.OnCreate: Ungültiger Eigenschaftswert."

Kleine Anmerkung: Es hat sich vorher schon Erzeugen lassen ohne diese Meldung.. ich finde den Fehler einfach nicht. Beim Debuggen bleibe ich in Vcl.Forms hängen - unten der Ausschnitt daraus.
Ab dem "raise" geht nichts mehr. Jemand ne Idee?

Delphi-Quellcode:
procedure TApplication.CreateForm(InstanceClass: TComponentClass; var Reference);
var
  Instance: TComponent;
begin
  // Set flag that TCustomForm constructor can read, so it knows if it's being
  // created as a main form or not (required when MainFormOnTaskbar is True)
  FCreatingMainForm := (FMainForm = nil) and InstanceClass.InheritsFrom(TForm);
  Instance := nil;
  try
{$IF DEFINED(CLR)}
    Instance := InstanceClass.Create(Self);
    Reference := Instance;
{$ELSE}
    Instance := TComponent(InstanceClass.NewInstance);
    TComponent(Reference) := Instance;
    try
      Instance.Create(Self);
    except
      TComponent(Reference) := nil;
      Instance := nil;
      raise;
    end;

Stevie 14. Apr 2016 10:33

AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
 
Korrupte dfm. Öffne das Form in der IDE um dort den Fehler zu beheben und kompilier das Program dann neu.

Freyr77 14. Apr 2016 10:37

AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
 
Zitat:

Zitat von Stevie (Beitrag 1335549)
Korrupte dfm. Öffne das Form in der IDE um dort den Fehler zu beheben und kompilier das Program dann neu.

Wenn ich das versuche sagt er mir: "Sicherungsordner 'c\......\embarcadero\studio\17.0\SOURCE\VCL\_hist ory\' kann nicht angelegt werden.

Freyr77 14. Apr 2016 10:50

AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
 
Ach quatsch, vergesst das da oben wieder... könntest du das nochmal genauer erklären?

Stevie 14. Apr 2016 11:26

AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
 
Du wirst wohl irgendwo eine Unit1 oder so haben mit einem Form1 (in welchem es ja das Problem gibt). Also öffne dieses Form in der IDE um den Fehler der falschen Zuweisung von OnCreate zu fixen.

Ich rat jetzt mal so ins Blaue, weil du ja nicht mehr Informationen bereitgestellt hast, dass dort irgendwas in der dfm hängt, was es nicht im Code gibt (falscher Form1Create event handler oder sowas). :glaskugel:

himitsu 14. Apr 2016 11:36

AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
 
Zitat:

Wenn ich das versuche sagt er mir: "Sicherungsordner 'c\......\embarcadero\studio\17.0\SOURCE\VCL\_hist ory\' kann nicht angelegt werden.
Das klingt danach, als wenn du eine Unit der VCL bearbeiten/speichern willst, aber du solltest doch nur in deiner eigenen Unit (Unit1 oder so) den Fehler suchen, bzw. in der zugehörigen Unit1.dfm .

In der laufenden Anwendung werden DFM-Fehler mit einer Exception beantwortet.
Beim Laden der Unit in der IDE hängt da ein "Reparatur"-Code im DFM-Loader, welcher DFM-Fehler versucht zu behandeln.

Freyr77 14. Apr 2016 12:38

AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
 
FormCreate :

Delphi-Quellcode:
  DefaultFont.Name := 'Tahoma';
  DefaultFont.Size := 9;
  Tables := TStringList.Create;
  C := nil;
  with TSQLConnection.RecordProps do
  begin
    AddFilterOrValidate('Ident', TSynFilterTrim.Create);
    AddFilterOrValidate('Ident', TSynValidateText.Create);
    // AddFilterOrValidate('Server',TSynValidateText.Create);
  end;
  MainCaption := Caption;
  if (ParamCount = 1) and FileExists(paramstr(1)) then
  begin
    FN := paramstr(1);
    if IsJetFile(FN) then
      CmdLine := ctJet_mdbOLEDB
    else if IsSQLite3File(FN) then
      CmdLine := ctSqlite3
    else
    begin
      ShowMessage(FN + '?', True);
      exit;
    end;
    C := TSQLConnection.Create;
    try
      C.Connection := CmdLine;
      C.Ident := S2U(FN);
      C.Server := C.Ident;
      TryConnect(C, True);
    finally
      C.Free;
    end;
  end
  else
  begin
    Conns := TSQLRestStorageInMemory.Create(TSQLConnection, nil,
      ChangeFileExt(ExeVersion.ProgramFileName, '.config'), false);
    try
      Conns.ExpandedJSON := True; // for better human reading and modification
      Task.Title := MainCaption;
      Task.Inst := sSelectAConnection;
      Task.Content := sSelectOrCreateAConnection;
      if Conns.Count = 0 then
        Btns := [cbCancel]
      else
      begin
        for i := 0 to Conns.Count - 1 do
          Task.Selection := Task.Selection +
            U2S(TSQLConnection(Conns[i]).Ident) + #10;
        Btns := [cbOk, cbCancel];
        Task.Query := U2S(TSQLConnection(Conns[0]).Ident);
        Task.Verify := sUpdateConnection;
      end;
      Task.VerifyChecked := false;
      Task.Buttons := sNew;
      res := Task.Execute(Btns, 0, [], tiQuestion);
      case res of
        mrOk:
          if Task.VerifyChecked then
          begin
            C := TSQLConnection(Conns[Task.SelectionRes]);
            msg := Task.Verify;
          end
          else
          TryConnect(TSQLConnection(Conns[Task.SelectionRes]), false);
        100:
          begin
            C := TSQLConnection.Create;
            msg := sNew;
          end;
      end;
      if C <> nil then
        with TRecordEditForm.Create(self) do
          try
            C.Password := Crypt(C.Password);
            SetRecord(nil, C, nil, nil, sConnectionHints, 0, msg);
            if ShowModal = mrOk then
            begin
              C.Password := Crypt(C.Password);
              if TryConnect(C, True) and (res = 100) then
                Conns.AddOne(C, false, '')
              else if res = 100 then
                FreeAndNil(C);
            end
            else
              FreeAndNil(C);
          finally
            Free;
          end;
    finally
      Conns.Free;
    end;
  end;
end;

DeddyH 14. Apr 2016 12:49

AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
 
Heißt Deine Komponente wirklich TSQLConnection?

Freyr77 14. Apr 2016 12:53

AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
 
Zitat:

Zitat von DeddyH (Beitrag 1335569)
Heißt Deine Komponente wirklich TSQLConnection?

Tut sie, ja.

DeddyH 14. Apr 2016 12:56

AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
 
Und sie ist vom Typ TSQLConnection (oder die Unit SQLExpr ist aus einem anderen Grund eingebunden)? In dem Fall könnte ich mir vorstellen, dass der Compiler/die IDE durcheinanderkommt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:09 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz