Zitat von
quendolineDD:
Mir vorgeschlagen wurde auch eine andere Möglichkeit:
Delphi-Quellcode:
TIMainMenuWrapper = class(TInterfacedObject, IMainMenu)
end;
TIMainMenu = class(TMainMenu)
private
FInterface : TIMainMenuWrapper;
public
constructor Create(AOwner : TComponent; AInterface : TIMainMenuWrapper = nil); reintroduce; virtual;
end;
Jedoch kann ich mit der 2. Variante nichts anfangen.
Wie kann ich nun ersteres realisieren?
Schau mal in Classes.pas (Delphi 7):
TComponent = class(TPersistent, IInterface, IInterfaceComponentReference)
Sieht so aus, als ob man jede Komponente auch als Interface ansprechen kann. Die Referenzzählung in TComponent ist aber mit einigen if's gestaltet, die ich mir noch nicht näher angeschaut habe.