Ich muss noch ma was Fragen...
Die generische Liste bietet mir ja bei der ObjectList die möglichkeit auf TypeCasts zu verzichten.
Also sollte doch bei meiner TNonFoodList welche von TObecjtList<TNonFood> erbt folgender aufruf funktionieren:
Delphi-Quellcode:
var
s: string;
begin
s:= locNonFoodList.Items[X].Artikelname;
end;
TNonFood enthält natürlich ein Feld welches Artikelname heißt.
Nur wird mir Artikelname im Code Editor rot unterstrichen aber er compilliert trotzdem...
Warum?
Und dann wollte ich mein CustomSort übernehmen und hab da gleich das nächste Problem ...
Delphi-Quellcode:
procedure TNonFoodList.Sortieren(SortBy: TNonFoodArtikelEnum);
begin
NonFoodArtikelSortieren := SortBy;
Self.Sort(TComparer<TNonFood>.Construct(
function (Left, Right: TNonFood): Integer
begin
case NonFoodArtikelSortieren of
Artikelname: CompareText(Left.Artikelname, Right.Artikelname);
Menge: CompareValue(Left.Menge, Right.Menge);
Preis: CompareValue(Left.Preis, Right.Preis);
Kosten: CompareValue(Left.Kosten, Right.Kosten);
end;
end));
end;
Markiert wird end));
Compilermeldung:
Zitat:
[DCC Fehler] WarenContainerGenerisch.pas(92): E2010 Inkompatible Typen: 'TComparison<Waren.TNonFood>' und 'Procedure'