TreeView中子项排序的问题(100分)

  • 主题发起人 主题发起人 johnlj
  • 开始时间 开始时间
J

johnlj

Unregistered / Unconfirmed
GUEST, unregistred user!
我要按照子项的Data指针所指的Integer型数来排序.
我要在树创建好了之后排序
按照例子用:
function TForm1.CustomSortProc(Node1, Node2: TTreeNode;
Data: Longint): Integer; stdcall;
Treeview1.Items[0].CustomSort(@CustomSortProc,0);
总是报错说Variable required
还有这个stdcall也不明白

哪位作过的,救救偶吧
 
stdcall是一种调用约定,调用Win32API或代码中的有回调函数时应使用stdcall调用约定.

>>Treeview1.Items[0].CustomSort(@CustomSortProc,0);
应该改为Treeview1.Items[0].CustomSort(@TForm1.CustomSortProc,0);

其实你可以在TreeView的OnCompare中排序.这样:
procedure TForm1.TreeView1Compare(Sender: TObject; Node1, Node2: TTreeNode;
Data: Integer; var Compare: Integer);
begin
if TX(Node1.Data^).i>TX(Node2.Data^).i then Compare:=1;
if TX(Node1.Data^).i=TX(Node2.Data^).i then Compare:=0;
if TX(Node1.Data^).i<TX(Node2.Data^).i then Compare:=-1;
end;
 
或是去掉 TForm1.

function CustomSortProc(Node1, Node2: TTreeNode;
Data: Longint): Integer; stdcall;

 
多人接受答案了。
 

Similar threads

I
回复
0
查看
411
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
473
import
I
后退
顶部