如果通过一个变量传入的是传递函数,它似乎会访问冲突。如何使用此CustomSort函数对listview进行排序?
public
...
col: integer;
...
Procedure listviewcol;
begin
col:=5
...
end;
procedure TForm1.sortcol(listview: tlistview);
function CustomSortProc(Item1,Item2: TListItem;
OptionalParam: integer): integer;stdcall;
begin
Result := AnsiCompareText(Item2.subitems.Strings[col], Item1.subitems.Strings[col]);
end;
begin
ListView.CustomSort(@CustomSortProc,0);
end;
这会提示错误。 //访问冲突
但是,如果我们将AnsicompareText中的col更改为5,那么效果很好。
procedure TForm1.sortcol(listview: tlistview);
function CustomSortProc(Item1,Item2: TListItem;
OptionalParam: integer): integer;stdcall;
begin
Result := AnsiCompareText(Item2.subitems.Strings[5], Item1.subitems.Strings[5]);// it works.
end;
begin
ListView.CustomSort(@CustomSortProc,0);
end;
如何解决此问题。 请帮忙。非常感谢。
可以请编辑您的问题,并使其更具可读性? – 2010-11-04 11:47:15