uses Classes;
function Compare(Item1, Item2: Pointer): Integer; register;
begin
if Integer(Item1) > Integer(Item2) then
result := 1
else if Integer(Item1) < Integer(Item2) then
result := -1
else
result := 0;
end;
var
L: TList;
I: Integer;
begin
L := TList.Create;
L.Add(Pointer(3));
L.Add(Pointer(1));
L.Add(Pointer(2));
L.Add(Pointer(6));
L.Add(Pointer(4));
L.Add(Pointer(5));
L.Sort(@Compare);
for I:=0 to L.Count - 1 do
writeln(Integer(L[I]));
L.Free;
end.