我有点像 Delphi 新手,我不明白如何调用 TList of Records 的 Sort 方法来通过升序整数值对记录进行排序。我有如下记录:
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;
我尝试了不同的调用函数的方法,总是得到一些错误......