Forum: Object-Pascal / Delphi-Language
Delphi
by jaenicke,
5. Feb 2019
Das hört sich so an als ob da Objektreferenzen mit Interfacereferenzen gemischt werden. Der einfachste Fall:
procedure Example(const AData: IBlub);
begin...end;
Example(TMySuperObject.Create);
In diesem Fall geht die Referenzzählung schief, da durch das const die Referenzzählung deaktiviert wird. Nach der Erstellung des Objekts wäre es aber gut, wenn der Referenzzähler einmal erhöht würde....
Forum: Object-Pascal / Delphi-Language
Delphi
by jaenicke,
5. Feb 2019
Wenn man so etwas braucht, sollte man mit Interfaces arbeiten.
Man kann auch schauen, ob man statt den Originalpointer weiterzugeben nur Kopien weiterreichen kann. Das geht nicht immer, wäre aber eine gute Lösung. So wird es ja z.B. mit TPicture schon gemacht. Da wird eine Zuweisung zu einem Assign umgebogen.