Zitat von
[TP:
Hawk274]
Zitat:
Außerdem würd ich das Property RealLabel ReadOnly machen! Eine Set-Methode für das Label mit einer einfachen Zuweisung:
ist eine potenzielle Fehlerquelle!
Kannst du das bitte mal näher erläutern? Mit einem Beispiel würde ich das in diesem Fall besser verstehen. Danke ...
Objekte sind in Delphi nur Pointer die implizit dereferenziert werden (klingt komplizierter als es ist). Durch die Anweisung fRealLabel := Value wird also nicht das Objekt sondern einfach nur eine Referenz kopiert. Einerseits verliert man damit die Referenz auf das Original-Objekt, das fRealLabel ursprünglich referenziert hat, und hat damit keine Möglichkeit mehr darauf zuzugreifen und es freizugeben (-> Speicherleck), und andrerseits erhält man eine Referenz auf ein Objekt, auf das höchstwahrscheinlich auch noch eine andere Referenz existiert. Wird dieses Objekt nun freigegeben und die TRealLabeledEdit-Komponente versucht auf "sein" Label zuzugreifen, dann wird damit ein EAccessViolent ausgelöst da das Objekt ja nicht mehr existiert.