Hallo !
also ich habe ein Programm erstellt das lief normal ... Dann habe ich weil ich dachte ich bin schneller die Forms händisch bearbeitet. Felder Hinzugefügt und so ... ( dumme Idee )
Jetzt habe ich beim ausführen den obigen Fehler...
Wie finde ich das Tedit welches nicht oder nicht richtig definiert ist ?
Ich habe die Adresse AD91E gab es nicht mal ne funktion in der
IDE wo ich das finden konnte ?
Ich suche schon stunden lang die Formulare durch zahlenmäßig sind alle Tedit da .. ( Anzahl wie auf dem Form )
Wenn ich syntaxcheck mache alles tipitopi
wenn ich compiliere alles topi beim Ausführen crash ...
Verzweiflung macht sich breit ...
Hast Du das
dfm-File direkt bearbeitet und dort Komponenten eingefügt? Ganz schlechte Idee, zumindest wenn Du nicht weist wie das component streaming im Detail funktioniert. Jedenfalls: wenn Du für eine im
dfm-File manuell definierte Komponente das zugehörige Feld in der Formklasse einfügst
muss das in der obersten Sektion der Klasse passieren, wo auch die von der
IDE erzeugten Felder stehen. Und das Feld muss den gleichen Namen haben wie in der "Name"-Eigenschaft der Komponente im
dfm-File angegeben, sonst kann der Loader die von ihm erzeugte Komponente nicht dem Feld zuweisen und Du kannst sie nicht im Kode ansprechen.
Für alle im oberen Teil der Formklasse stehenden Felder (die haben published visibility) legt der Compiler für die Formklasse eine Liste der Klassen an, die dort verwendet werden. Diese Liste verwendet der Loader um die Klassen zu den Komponenten aus dem
dfm-File zu finden damit er die Objekte erzeugen kann. Wenn er die Klasse dort nicht findet schaut er in einer
VCL-internen Liste nach, in die man Klassen per RegisterClass aufnehmen kann. Das passiert aber
nicht automatisch!
Wenn Du also händisch Komponenten im
dfm-File anlegst und das zugehörige Feld nicht published ist mußt Du
- in der unit Initialization für die Klasse der Komponente RegisterClass aufrufen
- die Loaded-Methode überschreiben und dort (nach inherited) die Komponente per FindComponent suchen und ihre Referenz dem Feld zuweisen. Die Name-Eigenschaft darf dafür nicht leer sein, denn danach sucht FindComponent.
Das lohnt sich echt nicht. Viel zu fehleranfällig.