Hallo zusammen,
ich möchte gern äquivalent zur TStringList eine "Sorted" TObjectList<T> erstellen.
Mein Problem dabei ist, dass die TObjectList<T> die Find Methode nicht kennt.
Folgende Klassen habe ich implementiert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| TElement= class(TObject) public ID: string; constructor Create; destructor Destroy; override; end;
TElementList = class(TObjectList<TElement>);
TElementComparer = class(TComparer<TElement>) public function Compare(const Left, Right: TElement): Integer; override; end;
function TElementComparer.Compare(const Left, Right: TElement): Integer; begin if (Right.ID > Left.ID) then Result := -1 else if (Right.ID < Left.ID) then Result := 1 else Result := 0; end; |
Die Methoden Add, IndexOf und Sort funktionieren auch ganz prima.
Mir fehlt aber eine Eigenschaft "Sorted" wie es sie in der Klasse TStringList gibt.
TStringList nutzt die Methode Find zum Einsortieren eines neuen Elements in die Liste.
Die Methode Find gibt es leider auch nicht in TObjectList<T> und ich schaffe es nicht sie entsprechend anzupassen.
Ich hoffe Ihr könnt mir hier ein wenig helfen.
Vielen Dank
PistolenPeter