Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.589 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Delphi Code-Vervollständigung

  Alt 27. Apr 2018, 22:37
Du könntest ein Objekt benutzen, das ein Interface implementiert. Deine Methode steht aber nicht in Interface A, sondern in Interface B. Wenn du darauf zugreifen willst, holst du dir mit Supports einfach über den Zugriff mit Typ Interface A ein Interface B. Nur dann kannst du auch mit den zusätzlichen Features arbeiten.

Beispiel, etwas gekürzt:
Delphi-Quellcode:
type
  IA = interface
  ['{...}']
    procedure A;
  end;

  IB = interface
  ['{...}']
    procedure B;
  end;

  TA = class(TInterfacedObject, IA, IB)
    procedure A;
    procedure B;
  end;

var
  Test: IA;
  TestB: IB;
begin
  Test := TA.Create;
  Test. {...} // Hier bekommst du nun nur Prozedur A angeboten

  // Zum Aufruf von B:
  if Supports(Test, IB, TestB) then
    TestB.B;
end;
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat