Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
28. Jul 2020
Vielen Dank.
Also so passt alles. Hier nochmal für die Nachwelt komplett:
program GenInterfacesTest;
{$APPTYPE CONSOLE}
{$R *.res}
uses
Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
28. Jul 2020
Was mir jetzt noch aufgefallen ist: Ich würde natürlich mit den deklarierten Interfaces arbeiten...
var
tmpHundList: IHundList;
tmpKatzeList: IKatzeList;
if Supports(Zoo.HundList, IHundList, tmpHundList) then
begin
tmpHundList.Add(Hund); // sollte passen
Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
28. Jul 2020
Danke. Ich fange mal hinten an:
3) Die Getter und Setter benenne ich so, damit sofort auffällt, dass diese nicht per Code aufgerufen werden sollten. (Im Gegensatz zu "GetKontostand").
2) Die Ableitung der ListenInterfaces stammt aus einem anderen Projekt. In einer Liste werden Interfaces verwaltet, die von einem bestimmten Typ sind. Manche können wiederum andere Interfaces verwalten.
Hätte...
Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
27. Jul 2020
Jetzt sind es glatt 8 Jahre später und ich hatte jetzt mal das gleiche Problem (und bin bei der Lösungssuche auf den Thread hier gestoßen). ;-)
Mit meinem Projekt bin ich noch nicht ganz zurecht gekommen und habe mal ein kleines Testprojekt aufgebaut, um hier nochmal konkret nachzufragen.
Damit funktioniert es jedoch korrekt... :-)
Also stelle ich es mal hier ein, falls es jemand...
Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
10. Feb 2012
Ja epent! :stupid:
Ich hätte mir vorstellen können, dass man der Liste ein Interface (IBlub) zuweisen muss, statt einem Objekt (TBlub).
// also statt:
BL := TGenericInterfaceList<IBlub>.Create();
BL.Add(TBlub.Create());
// besser:
BL := TGenericInterfaceList<IBlub>.Create();
Forum: Object-Pascal / Delphi-Language
Delphi
by stahli,
10. Feb 2012
Ohne, dass ich hier wirklich mitreden könnte, finde ich verdächtig, dass Du der List ein Objekt und nicht ein Interface zuweist: BL.Add(TBlub.Create());
Reagiert der Compiler vielleicht darauf nicht ausreichend?