Vielleicht ist es für mich noch zu früh am Morgen, aber wenn du das einkürzen könntest sodass ein lauffähiges Programm überbleibt wäre das super hilfreich.
Ich habe es mal versucht in einem kompletten Programm nachzustellen (so wie du es beschrieben hast) und da ist alles in Ordnung - Da scheint also noch mehr dahinter zu stecken.
Delphi-Quellcode:
program Project1;
uses FastMM4, System.SysUtils, System.Generics.Collections;
type
TMyInterfacedObject = class(TInterfacedObject, IInterface)
private var
objects: TObjectList<TObject>;
public
constructor Create(const a, b: TObject);
destructor Destroy(); override;
end;
{ TMyInterfacedObject }
constructor TMyInterfacedObject.Create(const a, b: TObject);
begin
inherited Create();
objects := TObjectList<TObject>.Create({ownsObjects:}True);
objects.Add(a);
objects.Add(b);
end;
destructor TMyInterfacedObject.Destroy();
begin
objects.Free();
inherited;
end;
procedure p();
var
a, b: TObject;
g: IInterface;
begin
a := TObject.Create();
b := TObject.Create();
g := TMyInterfacedObject.Create(a, b);
end;
begin
p();
end.
Was gibt es denn noch spannendes was bei dir mit
// ...
angedeutet ist?