Einzelnen Beitrag anzeigen

Meniskusschaden

Registriert seit: 1. Apr 2006
27 Beiträge
 
#1

dynamischer Aufruf von Interface-Methoden

  Alt 2. Apr 2006, 18:38
Hallo,

ich beschäftige mich gerade mit Delphi-Interfaces. Dabei habe ich
Schwierigkeiten, die Methoden der implementierten Interfaces eines
Objektes aufzurufen, wenn dieses Objekt einer Variablen zugewiesen
ist, die das Interface nicht implementiert.

Ich habe folgendes Interface erstellt:

Delphi-Quellcode:
unit Unit2;

interface

type
  IInterface1 = interface
    ['{5FD5F41E-E71F-41B2-946B-5A06404E74FF}']
    function getName: string;
  end;

  TKlasseA = class(TInterfacedObject, IInterface1)
    function getName: string;
  end;

implementation

function TKlasseA.getName: string;
begin
   result := 'Klasse A';
end;

end.
Wenn ich versuche, folgendes zu kompilieren, erhalte ich die
Fehlermeldung "E2015 Operator ist auf diesen Operandentyp nicht
anwendbar":

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  var
    myObject: TObject;
begin
  myObject := TKlasseA.Create;
  Button1.Caption := (myObject as IInterface1).getName;
end;
Hat jemand eine Idee, wie man die Methode getName für das
Objekt myObject korrekt aufruft?

Gruss,
Martin
  Mit Zitat antworten Zitat