关于TreeView的一个问题(100分)

  • 主题发起人 主题发起人 冉冰
  • 开始时间 开始时间

冉冰

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位编程高手,delphi中TreeView控件在使用时,如何使其中的各Item响应鼠标,例如:有Item1、Item2、Item3...当鼠标敲击Item2项时,则ShowMessage('I love you!');
 
在TreeView1Change事件里通过 TreeView1.Selected.Text,
TreeView1.Selected.index,等属性的判断.
 
1.定义一个基类TBase,添加一个虚函数(可以是纯虚的),比如叫做DoClick.
2.所有节点的类从基类派生,并重载DoClick.
3.响应TreeView的OnChange事件
4.((TBase*)(Node->Data))->DoClick();//Node是事件传过来的参数
 
lhz老爱把事情复杂化:)
 
响应OnChanging事件,不是OnChang事件。
 
响应OnChang事件,不是OnChanging事件,但有一个问题:用onchang事件会不区分是通过键盘,还是鼠标,或者程序中的代码改动.
可以响应Onclick事件,并判定tree.selected是否是item2.
 
to tqz:
可能是吧:-)
我面对的都是具有研究性质的程序,不能一眼看到实现方法,
必须全面考虑所有细节:(习惯已经养成,改不掉了:)
 
当TREEVIEW响应ONCHANGE事件时包括三种事件,如添加一个项等等,
当选择项从一个项换到另一个项时事实上会发生两次ONCHANGE事件,
一次是原来的选中项丢失焦点,二次是新的选中项获得焦点,其实你
可能只关心第二次事件,你需要编一点代码来判断:一个识别ONCHANGE
的来源,你只关心STATE,另一个是SELECTED是否为空.
 
按理说这样说应该没问题了。
大家分赃。

----- by 3h 99.9.5 01:15
 

Similar threads

D
回复
0
查看
767
DelphiTeacher的专栏
D
D
回复
0
查看
809
DelphiTeacher的专栏
D
D
回复
0
查看
639
DelphiTeacher的专栏
D
D
回复
0
查看
802
DelphiTeacher的专栏
D
后退
顶部