AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein exeption eclassnotfound in Modul Programname bei Adresse $$$$$$ klasse tedit
Thema durchsuchen
Ansicht
Themen-Optionen

exeption eclassnotfound in Modul Programname bei Adresse $$$$$$ klasse tedit

Ein Thema von joehd · begonnen am 4. Feb 2024 · letzter Beitrag vom 4. Feb 2024
 
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
715 Beiträge
 
Delphi 12 Athens
 
#6

AW: exeption eclassnotfound in Modul Programname bei Adresse $$$$$$ klasse tedit

  Alt 4. Feb 2024, 12:10
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
  1. in der unit Initialization für die Klasse der Komponente RegisterClass aufrufen
  2. 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.
Peter Below
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:32 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