![]() |
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; |
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.
|
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Zitat:
|
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Ach quatsch, vergesst das da oben wieder... könntest du das nochmal genauer erklären?
|
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: |
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Zitat:
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. |
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; |
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Heißt Deine Komponente wirklich TSQLConnection?
|
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Zitat:
|
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.
|
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Ich hab keine Ahnung was da passieren soll, aber ich würds mal ausklammern:
Delphi-Quellcode:
with TSQLConnection.RecordProps do
begin AddFilterOrValidate('Ident', TSynFilterTrim.Create); AddFilterOrValidate('Ident', TSynValidateText.Create); // AddFilterOrValidate('Server',TSynValidateText.Create); end; |
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Das scheint es auch nicht zu sein... also bezogen auf DeddyH
|
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Ähhh, warum jetzt im Quellcode (PAS) rumpfuschen, wo das Problem doch scheinbar im Formular (DFM) liegt?
|
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Zitat:
"The <methodenname in der dfm> method referenced by Form1.OnCreate does not exist. Remove the reference?" bekommt. Klickt man da auf nein, dann lässt Delphi das so falsch in der dfm stehen und es gibt den besagten Fehler beim Starten der Anwendung. Machsu rechtsklick auf deine Form und als dfm anzeigen und schaust mal, was dort bei
Code:
steht. Dort sollte in deinem Fall der Methodenname der Methode, dessen Code du vorhin gepostet hast, stehen.
OnCreate =
|
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Zitat:
|
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Zitat:
Somit kann der Fehler auch wo anders in der DFM sein. Also nochmal. Was passiert, wenn du die Unit/Form im Delphi lädst? |
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Zitat:
Zitat:
|
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Zitat:
Delphi-Quellcode:
begin
Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(DBTestMain.Form1); //THTTPServerForm, HTTPServerForm Application.Run; end. |
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Den Punkt setzt du da hin
Delphi-Quellcode:
Application.CreateForm(DBTestMain.Form1);
Dann die Debug-DCUs aktivieren. Aber das kann man sich sparen, weil wer totalen Mist gebaut hat und der Schrott standardmäßig immer aktiviert ist. Und dann mit F7 in die VCL rein (und leider auch in die RTL, also ab und an besser F8 statt F7) Aber eigentlich sollte der DFMLoader in der IDE den selben Fehler anzeigen, wie der DFMLoader im Programm. :gruebel: |
AW: Exception EReadError in Modul - Ungültiger Eigenschaftswert
Hallo,
erzeuge eine neue leere Unit, mache die zur Hauptunit (in der dpr). Dann klammerst du die Problem-Unit in der dpr aus. Jetzt schrittweise alles von der Problem-Unit in neue leere Unit rein. Ist mühsam, aber danach sollte es wieder laufen. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz