Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
Delphi 12 Athens
|
AW: Verweis auf Interface-Instanz weitergeben - ist das erlaubt?
27. Feb 2024, 14:28
Das macht Delphi der immer, Managed Types automatisch aufräumen.
Interface, Variant, LongStrings (WideString und alle Delphi-Strings, außer ShortString-Typen) und dynamische Arrays.
Im Falle von Interface-Variablen wird bei <>nil ein intf._Release ausgeführt und die Variable quasi auf nil gesetzt.
Wurde also das TObjekt bereits freigegeben (Destroy/Free aufgerufen, oder dessen Owner oder Parent wurde freigegeben)
und nachfolgend wird der Variable was neues zugewiesen oder die Variable wird Freigegeben (z.B. läuft aus dem Scope),
dann täte es im _Release knallen.
Alternativ kein Interface auf das TComponente selbst, sondern IM Component ein Interface,
also z.B. TInterfacedPersistent als Vorfahre. (ich glaub es gab auch einen TComponentNachfahre, der sowas hat)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
Geändert von himitsu (27. Feb 2024 um 14:35 Uhr)
|