如果通過一個變量傳入的是傳遞函數,它似乎會訪問衝突。如何使用此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