D
dirk
Unregistered / Unconfirmed
GUEST, unregistred user!
我有个程序,要将TreeView的OnChange事件赋值为不同的处理过程,于是我在一个unit中
定义了
procedure TreeViewChange1(Sender: TObject
Node: TTreeNode);
procedure TreeViewChange2(Sender: TObject
Node: TTreeNode);
……
若干个处理过程,然后把这些TreeViewChange过程按不同情况赋值给TreeView的OnChange
事件,
TreeView1.OnChange := TreeViewChange1;
……
TreeView1.OnChange := TreeViewChange2;
但是却出错:
Incompatible type:method pointer and regular procedure
发现,只有对象中定义的过程才能赋值给对象过程,而普通的过程不能赋值给用of object
定义的过程,如 TTVChangedEvent = procedure(Sender: TObject
Node: TTreeNode) of object;
过程,怎么办?难道我要给事件过程赋值,就非得先定义一个类,在里面定义n个过程,再
实例化一个对象,然后再把这些过程赋值给其他对象吗?
我用 @TreeView1.OnChange := @TreeViewChange1
的方式赋值倒是不出错,但是在
TreeViewChange1过程中出错:
Access violation at address 0042786B in module 'Project1.exe'.Read of address 00110536
看样子也是不行的啦!
再次请教各位高手,有没有办法解决?我实在不想定义一个类,再实例化一个对象这样来为
对象事件过程赋值,谢谢啦!
定义了
procedure TreeViewChange1(Sender: TObject
Node: TTreeNode);
procedure TreeViewChange2(Sender: TObject
Node: TTreeNode);
……
若干个处理过程,然后把这些TreeViewChange过程按不同情况赋值给TreeView的OnChange
事件,
TreeView1.OnChange := TreeViewChange1;
……
TreeView1.OnChange := TreeViewChange2;
但是却出错:
Incompatible type:method pointer and regular procedure
发现,只有对象中定义的过程才能赋值给对象过程,而普通的过程不能赋值给用of object
定义的过程,如 TTVChangedEvent = procedure(Sender: TObject
Node: TTreeNode) of object;
过程,怎么办?难道我要给事件过程赋值,就非得先定义一个类,在里面定义n个过程,再
实例化一个对象,然后再把这些过程赋值给其他对象吗?
我用 @TreeView1.OnChange := @TreeViewChange1
的方式赋值倒是不出错,但是在
TreeViewChange1过程中出错:
Access violation at address 0042786B in module 'Project1.exe'.Read of address 00110536
看样子也是不行的啦!
再次请教各位高手,有没有办法解决?我实在不想定义一个类,再实例化一个对象这样来为
对象事件过程赋值,谢谢啦!