![]() |
exeption eclassnotfound in Modul Programname bei Adresse $$$$$$ klasse tedit
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 ... |
AW: exeption eclassnotfound in Modul Programname bei Adresse $$$$$$ klasse tedit
Vor Während dem Laden der DFM registriert der DFM-Loader bekannte Klassen (anhand der Typen aller Published-Felder der Klasse, inkl. der Vorfahren der Form)
![]() Gibt es für eine Klasse in der DFM keine Registrierung (entweder von dir oder dem DFM-Loader), dann kann der String des Klassennamen nicht in den Klassentyp (TComponentClass) übersetzt werden. PS: Man mag es nicht glauben, aber Strg+C funktioniert fast überall (Dialoge/Fehlermeldungen und auch in de LogMeldungen) und dann hier via Strg+V ohne Schreibfehler als Text hier rein kopieren. |
AW: exeption eclassnotfound in Modul Programname bei Adresse $$$$$$ klasse tedit
Zitat:
sorry das Problem dahinter habe ich glaube ich schon verstanden ... Aber wo finde ich die Classen die er registrieren möchte und nicht kann... Vielleicht war meine Frage auch etwas doof gestellt. Und was meinst du mit SRG-C funktioniert überall ? das ist klar aber was bringt mir das kopieren so ähnlich habe ich das ja gemacht aber halt irgend was auch falsch ... Also ich suche und bearbeite die Textansicht des Forms ... als Ergänzung und wo finde ich die " LogMeldungen" ? |
AW: exeption eclassnotfound in Modul Programname bei Adresse $$$$$$ klasse tedit
Meinst du die IDE ausgabe beim Compilieren ?
Da steht kein Fehler drinn. |
AW: exeption eclassnotfound in Modul Programname bei Adresse $$$$$$ klasse tedit
Zitat:
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
Das lohnt sich echt nicht. Viel zu fehleranfällig. |
AW: exeption eclassnotfound in Modul Programname bei Adresse $$$$$$ klasse tedit
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.
Ja das war ne schlechte IDEE sorry mach ich nie wieder !!!! Ich habe die die Form mit rechte Maustaste Ansicht als Text bearbeitet ... Danke habs kappiert die ganzen Edit felder müssen natürlich auch im Type im Source stehen ... Ich dachte das macht er dann selbst ... ich bin ein Fisch ..... Ich sagte ja schon dumme Idee... Es haben nicht 1 Tedit gefehlt sondern alle die ich selbst gemacht habe :-( :wall: Ich arbeite nach DANKE !!!!!:coder: Ich schreibe zwar schon ewig Pascal und Delphi Code aber bin immer froh wenn die IDE funktioniert... |
AW: exeption eclassnotfound in Modul Programname bei Adresse $$$$$$ klasse tedit
Ergänzend a alles geht wieder ! uff DANK DANKE
Im Strukturfenster zeigt er an wenn was doppelt deklariert ist aber nicht wenn was fehlt :-( könnte er ja netter weise machen ! |
AW: exeption eclassnotfound in Modul Programname bei Adresse $$$$$$ klasse tedit
Der Name der published Variablen muß nur gleich sein, da Komponenten (TComponent-Nachfahren) in ihrem Owner diese Variable setzen, welche so heißt, wie das was .Name zugewiesen wird. (aufpassen, es wird nicht auf den Typ der Variable geachtet)
Für das Laden der DFM, bzw. das Erstellen (Create) der Komponenten selbst, ist der Name egal, da dort ausschließlich die Typen wichtig sind ... egal wie viel in der DMF existiert, es muß mindestens irgendeine Variable diesen Typen besitzen (falls er nicht vorher schon registriert wurde). z.B. echt blöd, wenn man per Hand in PAS oder DFM die "Komponente" umbenennt, aber auf der anderen Seite vergisst. Oder wenn man z.B. eine Automatik nutzt, welche "blöde" KomponentenNamen, wie z.B. "Label1", automatisiert beim DFM-Laden umbenennen lässt (anhand der Caption, z.B. im Loaded oder SetName), aber das keine Auswirkung auf die PAS hat. Und man dann auch noch [Ja] klickt, wenn der FormDesigner fragt "Feld **** besitzt keine entsprechende Komponente. Soll die Deklaration entfernt werden?" aka "Hab keine Kompoente mit dem Namen dieser Variable in der DFM gefunden, also weg damit". |
AW: exeption eclassnotfound in Modul Programname bei Adresse $$$$$$ klasse tedit
Wenn es beim Start "deines" Programmes knallt,
dann dort der Fehlerdialog (MessageBox). Zitat:
Und wenn du das Programm im Debugger startest, dann vorher das Fehlerfenster im Delphi, Zitat:
Zitat:
"Keine Fehler" würde ich das jetzt nicht nennen: Zitat:
Aber "nicht initialisiert" ist etwas, dass sollte man niemals ignorieren. Variable lesen, bevor ihr etwas zugewiesen wurde. (bei lokalen nicht-gemanagten Variablen, steht dann gern "Schrott" drin, also irgendwas Zufälliges) |
AW: exeption eclassnotfound in Modul Programname bei Adresse $$$$$$ klasse tedit
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 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