Hallo Leute,
ich habe ein kleines Problem mit Intrfaces und Supports, bzw suche ich eine schönere vorgehensweise als meine jetzige.
Ich habe mehrere Interfaces die voneinander abgeleitet sind. Also in etwa in dieser Art:
Delphi-Quellcode:
type
IIntf_1 = interface (IInterface)
procedure proc_1()
end;
IIntf_2 = interface (IIntf_1)
procedure proc_2()
end;
IIntf_3 = interface (IIntf_2)
procedure proc_3()
end;
Desweiteren ein Object, dass das letzte (und somit auch die beiden anderen) Interfaces implementiert:
Delphi-Quellcode:
TMyObject_A = (TObject,IIntf_3)
procedure proc_1;
procedure proc_2;
procedure proc_3;
Wenn ich nun über supports abfragen möchte ob ein interface unterstützt wird bekomm ich nur für das IIntf_3 ein true, für 2 und 1 leider nicht.
Deklariere ich das Object wie folgt:
Delphi-Quellcode:
TMyObject_B = (TObject,IIntf_3,IIntf_2)
procedure proc_1;
procedure proc_2;
procedure proc_3;
bekomme ich auch auf die Abfrage auf die Unterstützung von IIntf_2 ein true. Nun möchte ich aber nicht bei jedem Object alle Interfaces wieder mit angeben müssen, da ja das Angegebene bereits davon abgeleitet ist.
Meine Frage nun: gibt es eine Supports Variante, oder kann man sowas halbwegs simple selber schreiben, die "Parent-Interfaces" berücksichtigt? Also bei MyObject_A auch beim Prüfen auf IIntf_1 und IIntf_2 true zurückgibt?
//
Gibt es vll auch eine Möglichkeit nachdem ich bei der Deklaration angegeben hab welche interfaces unterstüzt werden sollen diese Über die
IDE automatisch vervollständigen zu lassen? So muss ich mir immer aus allen Interfaces die Methoden und Properties raussuchen und selber in die deklaration kopieren. Das ist etwas nervig.