Я вроде как новичок Delphi, и я не понимаю, как вызывается метод Sort TList Records для сортировки записей по возрастанию целочисленного значения. У меня есть запись, подобная следующей:
type
TMyRecord = record
str1: string;
str2: string;
intVal: integer;
end;
И общий список таких записей:
TListMyRecord = TList<TMyRecord>;
Попробовали найти код-пример в файлах справки и нашли это:
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;
Я пробовал разные способы вызова функции, всегда получая некоторую ошибку...