Autor Beitrag
PistolenPeter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 16.11.10 09:52 
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:

ausblenden 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