Zitat von
Khabarakh:
Zitat von
r2c2:
Das Problem ist
IMHO, dass du - wo wies aussieht das Control zur Designtime erstellst und dann der property zuweist. Wenn das Objekt dann wieder deserialisiert wird, is der Pointer noch nil ==>
AV.
Genau diesen Fall fängt er doch im Setter schon längst ab
.
Indem er eine weitere
Exception auslöst... jo...
Zitat:
Zitat:
Du müsstest also sicherstellen, dass zum Zeitpunkt des Zugriffs - am besten schon im Konstruktor - der Property n Control zugewiesen wurde. Also entweder im Konstruktor das Control zuweisen oder gleich dort erstellen...
Wozu sollte man ein leeres Control erstellen, wenn es eine Zehntelsekunde danach vom Deserialisierer überschrieben wird?
Ähm... zu viel .NET gemacht? Da wird man verwöhnt, nicht? Is jetzt nur geraten. Ich könnt mir aber vorstellen, dass das in .NET geht(Hab in .NET bisher noch nicht viel gemacht. Serialisierung steht noch auf der Liste...). In Delphi muss man sich aber um so manches noch selber kümmern...
Spaß beiseite:
IMHO wird durch ReadComponent nur das serialisierte Objekt *ohne* Unterobjekte created. Für das Createn der Unterobjekte is das Objekt selbst verantwortlich. Wenn also das Control nicht im Konstruktor erstellt wird und auch sonst nirgendwo, dann produziert ReadComponent eine
Exception, weil es ein bereits erstelltes Objekt erwartet, aber nicht findet...
mfg
Christian