Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: Objekt an Interface zuweisen

  Alt 22. Aug 2005, 12:51
Zitat von profmaster:
Bin grad dabei, das Beispiel zu studieren. Meine Frage. Wie kann ich prüfen, ob das Objekt korrekt an das Interface zugewiesen wurde.
Warum sollte es nicht korrekt an das Interface zugewiesen worden sein? Der Compiler erlaubt dir schon mal nur Objekte zuzuweisen, die das entsprechende Interface unterstüzten. Als Alternative kann man da nur noch nil zuweisen.
Also wenn das Interface <> nil ist, dann ist das Objekte korrekt zugewiesen worden.

Ein Zugreifen auf das im Interface verpackte Objekt ist nicht möglich. Da muss man dann schon eine Methode schreiben, die Self zurückliefert:
Delphi-Quellcode:
Ibla = interface
  function GetObject: TObject;
end;

Tbla = class(TInterfacedObject, Ibla)
  function GetObject: TObject;
end;

function Tbla.GetObject: TObject;
begin
  Result := Self;
end;
Womit aber jedem die Tür zum fehlerhaften Zugriff auf das interne Objekt gestattet ist.
  Mit Zitat antworten Zitat