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