Einzelnen Beitrag anzeigen

Astan212

Registriert seit: 28. Apr 2005
9 Beiträge
 
#1

Problem bei Zugriff auf Elemente eine TInterfaceList

  Alt 21. Sep 2006, 14:11
Moin,

für Schulungszwecke habe ich Java-Code auf Delphi umzuschreiben und bin ich auf folgendes Problem gestoßen:

Der Delphi-Code sieht so aus:
Delphi-Quellcode:

 IGemuese = interface(IInterface)
    function toString : string;
 end;

...

 TKnoblauch = class(TInterfacedObject,IGemuese)
  public
    function toString : string;
  end;

  TPaprika = class(TInterfacedObject, IGemuese)
  public
    function toString : string;
  end;

  TPilze = class(TInterfacedObject, IGemuese)
  public
    function toString : string;
  end;
...

 function TKnoblauch.toString : String;
 begin
   Result := 'Knoblauch';
 end;
 //usw. für die anderen Gemüse

...

function TMyBelag.erstelleGemuese: TInterfaceList;
var i: Integer;
    gemueseListe: TInterfaceList;
begin
  gemueseListe := TInterfaceList.Create;
  gemueseListe.Add(TKnoblauch.Create);
  gemueseListe.Add(TPilze.Create);
  gemueseListe.Add(TPaprika.Create);

  
  for i:=0 to gemueseListe.Count-1 do
  begin
    WriteLn(IGemuese(gemueseListe[i]).toString); //und das geht dann hier nicht (Zugriffsverletzung)!
  end;

  result := gemueseListe;
end;
Wie kann ich die Methode toString der Elemente der gemueseListe verwenden wenn ich nur den Typ IGemuese der Elemente kenne?

bis denne
Guido
  Mit Zitat antworten Zitat