我对以下代码的错误做了什么
function CompareFloat(List: TStringList; Index1, Index2: Integer): Integer;
我将其称为:
var
SL :TstringList;
SL.CustomSort(CompareFloat);
//SL.CustomSort(@CompareFloat); // Tried this one also
第一个函数调用'SL.CustomSort(CompareFloat)'从编译器检索到该错误“错误:为调用指定的参数数量错误”CompareFloat“
第二个函数调用'SL.CustomSort(@CompareFloat)'从编译器中检索到该错误错误:只能使用类引用引用类方法
答案 0 :(得分:2)
SL.CustomSort(CompareFloat);
如果您将{$mode delphi}
指令添加到某个单位开头的某个位置,则会有效。
但是SL.CustomSort(@CompareFloat);
应该可以正常工作。确保错误消息不是由其他原因引起的。
示例:
program Project1;
//{$mode delphi}
uses
Classes,
SysUtils;
function CompareFloat(List: TStringList; Index1, Index2: Integer): Integer;
begin
Result := StrToInt(List[Index1]) - StrToInt(List[Index2]);
end;
var
SL: TStringList;
begin
SL := TStringList.Create;
try
SL.Add('3');
SL.Add('2');
SL.Add('1');
SL.CustomSort(@CompareFloat);
//SL.CustomSort(CompareFloat);
Writeln(SL[0], SL[1], SL[2]);
Readln;
finally
SL.Free;
end;
end.