Hallo,
folgendes zu diesem Thema:
TObjectList ist von TList abgeleitet, und TList hat die Methode Sort, der eine Adresse auf eine selbst zu erstellende Funktion übergeben wird, die 2 Objekte vergleicht (mehr in der Delphi Hilfe und TList - Sort).
Beispiel:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
uses
sysutils,
Contnrs;
type
TIntTest =class
public
v: integer;
end;
function CompareObjects(Item1, Item2: pointer): integer;
begin {CompareObject}
result := 0;
if TIntTest(Item1).v < TIntTest(Item2).v then
result := -1
else
if TIntTest(Item1).v > TIntTest(Item2).v then
result := 1;
end; {CompareObjects}
var
i: integer;
MeineListe: TObjectList;
MeinObject: TIntTest;
begin
try
MeineListe := TObjectList.Create;
// Testobject anlegen
for i := 0 to 10 do
begin
MeinObject := TIntTest.Create;
MeinObject.v := Random(100);
MeineListe.Add(MeinObject);
end;
writeln('Vorher:');
for i := 0 to MeineListe.Count - 1 do
writeln(TIntTest(MeineListe[i]).v);
MeineListe.Sort(CompareObjects);
writeln('Nachher:');
for i := 0 to MeineListe.Count - 1 do
writeln(TIntTest(MeineListe[i]).v);
readln;
// Aufräumen...
for i := 0 to MeineListe.Count - 1 do
begin
MeinObject := TIntTest(MeineListe[i]);
MeinObject.Free;
end;
finally
MeineListe.Free;
end;
end.
Gruß,
Gunter