Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

AW: Exception "Eigenschaft existiert nicht" lösen?

  Alt 18. Aug 2023, 01:40
Du hast nicht zufällig eine andere Version des DesignTime-Packages dieser Komponente in der IDE,
als das Runtimepackage oder der Quellcode, mit welchem das Programm kompiliert wird?



Tja, wenn sich nach dem Upgrade (Delphi oder Fremdkomponenten) etwas ändert, dann kann es nunmal knallen.

Kompilieren lassen ist keine Garantie, da die DFM nur auf eine valide Syntax geprüft wird, bzw. wenn sie als TextDFM vorliegt, dann wird sie nach binär konvertiert und als Ressource in die EXE gelinkt.
Ob die Komponenten, Property, sonstwas wirklich "gültig" sind, ist damit also nicht gesagt.

Erst zur Laufzeit knallt es dann.
Oder eben du mußt mal alle Forms im Delphi öffnen.

Der DFM-Reader im Formdesigner ist Fehlertoleranter, bzw du hast die Wahl
* ESC, bzw. Abbrechen -> die DFM wird nicht im Designer geladen und bleibt unverändert
* manchaml wird bei ungültigen Beziehungen ein Auswahldialog gezeigt, wo man eine andere Komponente wählen kann, oder ...
* und ansonsten gibt es noch "Ignorieren", wo unbekannte Property, oder Welche die im Setter knallen, werden nicht geladen und sind beim Speichern weg
* * bzw. unbekannte Komponenten oder wo es im Constructor knallt, die würden dann auch nicht geladen/weggelasse und sind beim Speichern weg
* der Rest der DFM wird aber geladen

* da man natürlich eine Versionsverwaltung nutzt, und wenn man nicht sieht was nun genau kaputt/weg ist, nach dem Speichern, sieht man das dann im DIFF



Was aber fieß ist (DDevExtension und Co. helfen), wenn sich die Signatur eines Event änderer, also Parameter und/oder deren Typen anders sind (Name der Parameter sind egal), dann sagt dir das die IDE beim Speichern nicht ... geänderte Typen von Komponenten (in der DFM anders, als in der PAS), das sagt dir Delphi beim Speichern und repariert es.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat