Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.734 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
AppCentral
  Mit Zitat antworten Zitat