Как отсортировать общий список с помощью пользовательского компаратора?

я вроде Delphi-новичок, и я неПолучите, как вызывается метод Sort TList of Records для сортировки записей по возрастанию целочисленного значения. У меня есть такая запись:

 type
   TMyRecord = record
     str1: string;
     str2: string;
     intVal: integer;
   end;

И общий список таких записей:

TListMyRecord = TList;

Попытался найти пример кода в файлах справки и нашел этот:

MyList.Sort(@CompareNames);

Что я могут, так как он использует классы. Поэтому я попытался написать свою собственную функцию сравнения с немного другими параметрами:

function CompareIntVal(i1, i2: TMyRecord): Integer;
begin
  Result := i1.intVal - i2.intVal;
end;

Но компилятор всегда выдаетнедостаточно параметров - ошибка, когда я звоню сopen.Sort(CompareIntVal);что кажется очевидным; поэтому я попытался остаться ближе к файлу справки:

function SortKB(Item1, Item2: Pointer): Integer;
begin
  Result:=PMyRecord(Item1)^.intVal - PMyRecord(Item2)^.intVal;
end;

с PMyRecord в качествеPMyRecord = ^TMyRecord;

Я пробовал разные способы вызова функции, всегда получая некоторые ошибки ...

Ответы на вопрос(4)

Ваш ответ на вопрос