OK, eigene Dummheit: Natürlich funzt die in dem anderen Thread angesprochene Lösung. Nichtdestotrotz tut die Referenzzählung von TIntfOwnedPersistent in der VTEditors.pas nicht:
Delphi-Quellcode:
function TIntfOwnedPersistent._Release: Integer;
begin
If FOwnerInterface <> nil then
Result := FOwnerInterface._Release
else if not FManaged then
begin
Result := InterlockedDecrement(FRefCount);
if Result <= 0 then Destroy;
end
else
Result := -1;
end;
Standardmäßig wird FManaged auf true gesetzt, so dass hier niemals das Destroy aufgerufen wird. Ich habe mal FManaged auf false gesetzt, aber dann gibts ne
Access-Violation in irgendwelchen Process-Handlern.
Was solls, es läuft ja.
VG, Daniel