Entwickler-Ecke

Sonstiges (Delphi) - EReadError mit Ungültiger Eigenschaftswert


hirsch - Mi 08.10.08 11:46
Titel: EReadError mit Ungültiger Eigenschaftswert
Es tut mir furchbar leid, ich habe glaube ich das komplette Forum durchsucht und nichts gefunden was mich hier, bei diesem Fehler weiterbringt.
Meine Delphikenntnisse sind sehr gering, ich bitte dies zu entschuldigen.

Vor Monaten habe ich das Programm compiliert und die exe erstellt, da hats noch funktioniert. Jetzt aber bekomme ich die folgende Fehlermeldung:

Erste Gelegenheit für Exception bei $7C812A5B. Exception-Klasse EReadError mit Meldung 'Ungültiger Eigenschaftswert'. Prozess Waage.exe (3780)

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
Program Waage;

uses
  Forms,
  Main in 'Main.pas' {Form1},
  Anmeldung in 'Anmeldung.pas' {Form2},
  DataModul in 'DataModul.pas' {DataModule1: TDataModule};


{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TDataModule1, DataModule1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm1, Form1);
  Application.Run; // <<< hier kommt der Fehler beim compilieren
end.


Ich binn dann in das Form1 gegangen und hab alles nachgeschaut und kann nichts finden was da falsch ist.
Das Form1 hat 1864 Zeilen, irgendwie hab ich manschetten, hier die 1864 Zeilen zu posten, wenn es aber nicht anders geht stelle ich das hier rein, falls gewünscht. Ich werde die Main.pas mal hier hochladen....

Ich hab, da gibts ja auf der linken Seite in der IDE die Eigenschaften von Form1, alles nachgeschaut, aber kann nichts entdecken, was da falsch sein soll.
Achja ich benutze das Serial.pas, was die serielle Schnittstelle COM1 bedient. Habe daran aber nix geändert.

Ich nutze Codegear RAD Studio 2007
Bin für jede Hilfe dankbar.


jaenicke - Mi 08.10.08 13:02

Hast du einmal alle Formulare und Module geöffnet und das ganze gespeichert und neu kompiliert?
Grund: Wenn eine Eigenschaft nicht in der Delphiversion existiert, dann merkt Delphi das dabei und entfernt diese.


hirsch - Mi 08.10.08 15:28
Titel: EReadError mit Ungültiger Eigenschaftswert
Hallo jaenicke,
ersteinmal vielen Dank für Deinen Denkansatz,
in der IDE sind ja oben die Kartenreiter, da kann man ja alle anklicken und auf die Formularansicht wechseln. Das habe ich selbstverständlich getan.
Was ich noch getan habe:
Nachdem ich RadStudio geschlossen hatte,
im Projektordner alle
*.dcu
*.dsk
*.local
*.res
*.identcache
gelöscht.
Ich dachte mir dann werden die neu erstellt. Aber Banannennase, nein, nichts hat sich geändert.

Vielleicht ist das wichtig:
Nochmal zu dem Problem, ich habs jetzt noch genauer beobachtet.
Beim compilieren kommt keine Fehlermeldung! Die Fehlermeldung kommt erst beim erstellen, also wenn der Compiler ferig ist, dann macht er ja die .exe.
Hat nochjemand eine Idee?


jaenicke - Mi 08.10.08 15:37
Titel: Re: EReadError mit Ungültiger Eigenschaftswert
user profile iconhirsch hat folgendes geschrieben Zum zitierten Posting springen:
in der IDE sind ja oben die Kartenreiter, da kann man ja alle anklicken und auf die Formularansicht wechseln.
Und das hast du mit allen beiden drei Formularen gemacht? Verändere am besten irgendetwas, damit die einzelnen Formulare auch wirklich neu gespeichert werden.

Ansonsten fällt mir dazu auch nichts mehr ein, eigentlich kenne ich den Fehler nur in diesem Zusammenhang.


hirsch - Mi 08.10.08 16:19
Titel: Re: EReadError mit Ungültiger Eigenschaftswert
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Und das hast du mit allen beiden drei Formularen gemacht? Verändere am besten irgendetwas, damit die einzelnen Formulare auch wirklich neu gespeichert werden.

Ja hab ich jetzt gemacht, hab in allen Formularen etwas verändert, und jedesmal neu abgespeichert.
Leider ohne Erfolg. Immer noch das Gleiche.
Ich Danke Dir trotzdem, jaenicke.

:lupe: :autsch: :flehan: :autsch:


jaenicke - Mi 08.10.08 16:26

Einfallen tut mir dazu so nix mehr, außer die Eigenschaften alle zu prüfen. Also wenn du möchtest kannst du ja das ganze Projekt reinstellen, dann schau ich es mir an, per Remotezugriff sollte ich auch auf einen PC mit Delphi 2007 zugreifen können um es direkt in der selben IDE zu testen (selbst hab ich 2007 nämlich nicht ;-)).


hirsch - Do 09.10.08 11:50

Vielen Dank,
hab es hier angehängt.


hirsch - Do 09.10.08 12:34

Hallo jaenicke,
ich habe jetzt RAD geschlossen, dann im Notepad das main.dfm geöffnet um alle Verweise auf Serial ausgeREMt.
Dann hab ich das Projekt wieder im RAD geöffnet und dann kam keine Fehlermeldung mehr.

Nun habe ich den Hinweis bekommen :
das Control dynamisch erzeugen? (Im OnFormCreate)

Brrr. Toll, wie geht denn das, weisst Du das?
I am a bloddy beginner....


baka0815 - Do 09.10.08 13:35

Kann es sein, dass du vorher eine andere Delphi-Version hattest bzw. Delphi neu installiert hast und die Serial-Komponente nicht richtig installiert ist?


Delete - Do 09.10.08 13:41

Es scheint eher so zu sein, dass das Projekt mit einer älteren bzw. neueren Version der TSerial-Komponente erstellt wurde.


hirsch - Do 09.10.08 14:43

Hallo baka, hallo DeddyH
@baka, das kann schon sein.
@DeddyH, das Programm hat mein Vorgänger gemacht, ich glaube begonnen hat er in Pascal.
Dann später immer eine Version weiter bis Delphi 7.
Als ich dann hier angefangen hatte, hat er das in RAD 2007 reingeholt. Das komische daran ist dass es da aber funktionierte.
Was ich nun zwischenzeitlich gemacht habe, ist:
aus der Toolbox hab ich von Serial eine neue bpl gemacht.
Die alte bpl habe ich entfernt, RAD geschlossen und wieder neu geöffnet.
Die soeben neu gemachte bpl habe ich dann unter komponenten hinzugefügt.
Hat auch wunderbar geklappt, soll heissen es gab keine Fehlermeldung.

Danach habe ich alles was Serial zu tun hat, was ja zuvor noch ausgeREMt war, wieder aktiviert.
Die beiden Serial-Prozeduren hab ich auch neu gemacht.
.... :oops: und dann kam wieder der alte gleiche Fehler. :eyecrazy:
Was mache ich falsch?


Delete - Do 09.10.08 14:50

Wie ich in der DP bereits geschrieben hatte: die Serial-Kompo aus der *.dfm löschen (z.B. mit Notepad), neu installierte Serial aus der Komponentenpalette aufs Form packen und die alten Werte bzw. deren aktuelle Entsprechungen einstellen. Der Fehler kann z.B. auftreten, wenn aus einem "normalen" integer mittlerweile eine Enumeration gemacht wurde, Konstanten umbenannt wurden und und...


jaenicke - Do 09.10.08 15:10

Also wenn ich die Main.pas zu öffnen versuche, dann kommen Lesefehler bei und nach der Eigenschaft Baudrate der Serial-Komponente.
Und dann habe ich mal geschaut warum. Ganz einfach, statt

Delphi-Quelltext
1:
Baudrate = 2400                    
gehört in der Main.dfm

Delphi-Quelltext
1:
Baudrate = br_002400                    
hin. ;-)
Mit der Änderung dieser Zeile konnte ich das neu entpackte Originalprojekt von dir dann auch fehlerfrei öffnen ;-).


hirsch - Do 09.10.08 15:32

Hallo jaenicke
also ich hab mit nem notepad die main.dfm
so abgeändert.
dann bekomme ich die Fehlermeldung wie im Anhang, wenn ich das Projekt dann lade.


hirsch - Do 09.10.08 15:35

user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
Wie ich in der DP bereits geschrieben hatte: die Serial-Kompo aus der *.dfm löschen (z.B. mit Notepad), neu installierte Serial aus der Komponentenpalette aufs Form packen und die alten Werte bzw. deren aktuelle Entsprechungen einstellen. Der Fehler kann z.B. auftreten, wenn aus einem "normalen" integer mittlerweile eine Enumeration gemacht wurde, Konstanten umbenannt wurden und und...


Ja, danke DeddyH, klar hab ich gerade gemacht,
Das objekt jetzt nach der neuinstallation gelöscht und wieder neu eingefügt.
Hat leider aber nicht geholfen.
Sorry....


jaenicke - Do 09.10.08 15:45

Komisch, bei mir geht das, es kommt nur noch ein Fehler beim Start, aber das ist nur ein Datenbankfehler, das Formular an sich etc. wird angezeigt. :nixweiss:

Du kannst die Komponente höchstens mal manuell erzeugen.


hirsch - Do 09.10.08 16:17

Sehr seltsam,
wenn es bei Dir geht und bei mir nicht, dann muss doch was an meiner Umgebung faul sein oder?
Soll ich mal RAD deinstallieren?
:autsch: :flehan: :autsch: :flehan:


jaenicke - Do 09.10.08 16:20

Deinstalliere einfach mal die Komponente und erstelle die in FormCreate manuell, die Einstellungen musst du dann eben auch selbst machen, aber es waren ja wenige die nicht eh Standardeinstellungen waren.

Oben unter public oder so Serial1: TSerial;, in FormCreate dann

Delphi-Quelltext
1:
2:
Serial1 := TSerial.Create(Self);
Serial1.Baudrate := br_002400;
etc.


hirsch - Do 09.10.08 16:29

Hallo Sebastian,
hab ich gemacht, dann schimpft er mit mir, und sagt
Exception EClassNotFound mit der Meldung 'Klasse TSerial nicht gefunden'.


Delete - Do 09.10.08 16:42

Ist die Unit denn noch eingebunden?

P.S.: In welchem Forum soll ich denn nun antworten?


jaenicke - Do 09.10.08 16:51

Bevor die Diskussion so zweigleisig und auch teilweise doppelt weitergeht (das Thema mit doppeltem Nachdenken wurde ja auch schon in deinem Crosspost [http://www.delphipraxis.net/topic143942_ereaderror+mit+unguumlltiger+eigenschaftswert.html] angesprochen :roll: ) antworte ich mal lieber drüben in der DP, das Thema dort habe ich erst durch den Hinweis eben gesehen, vorher hatte ich den Hinweis auf die DP überlesen...


hirsch - Do 09.10.08 17:01

ÖÖhhm

user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
Ist die Unit denn noch eingebunden?


Woran kann ich das denn sehen?

Nachdem nun alle im DP schreiben, mache ich das hier nun zu.
Hat ja eignetlich keinen Sinn....


hirsch - Fr 10.10.08 09:21
Titel: GELÖST
Also, Leute ich weiss nicht wie ich das erklären soll, aber
jetzt funktioniert wieder alles.
Der Grund war im Ordner C:\Dokumente und Einstellungen\All Users\Dokumente\RAD Studio\5.0\Bpl
Hier waren so komische ~-Dateien.

Package1.~bpl 22kb
Toolbox_Delphi.~bpl 69kb

Die hab ich gelöscht.
Nun funktioniert wieder alles.

Habt vielen vielen Dank, für alle Euren superguten Ideen und Euer geduldiges Ausharren mit einem Anfänger, der blöde Fragen stellt.
Es grüßt Euch
Wolfgang Hirsch


jaenicke - Fr 10.10.08 11:24

Das sind Sicherungskopien der Packages, aber aus irgendeinem Grund war die Sicherungskopie dann wohl (mit der Komponente noch einmal drin) trotzdem als Package installiert. Und deshalb gab es die Probleme ;-).