Dear all,

I am trying to sort a simple TIntegerList defined as:

TIntegerList = specialize TFPGList<Integer>;

In order to sort I introduced a compare function as:

function CompareInt(const Item1,
  Item2: Integer): Integer;
begin
  if Item1 < Item2 then
    Result:= -1
  else if Item2 > Item1 then
    Result:= 1
  else
   Result:= 0;
end;

but I did not obtain the expected results.
Here a simple example:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  il: TIntegerList;
begin
  il:= TIntegerList.Create;
  il.add(5);
  il.Add(3);
  il.add(8);
  il.Add(2);
  il.add(2);
  il.Add(1);
  ListBox1.Clear;
  for i:= 0 to il.Count - 1 do
    ListBox1.Items.Add(IntToStr(il[i]));
  il.Sort(@CompareInt);
  ListBox2.Clear;
  for i:= 0 to il.Count - 1 do
    ListBox2.Items.Add(IntToStr(il[i]));
  il.Free;
end;
Starting from a sequence of:
5,3,8,2,2,1
I got as sorted list:
2,2,1,3,5,8

What am I doing wrong?

Andrea

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to