一个TEnhTreeView的问题

DDeveloper 2003-03-20 10:31:38
我在这个控件中使用如下句子来改变他的的结点的CHECKED属性,但老是报告错误
说产生EINVALIDCAST异常,消息是INVALID CLASS TAPECAST。意思是类型转换无效!

句子是(EnhTreeView1.Items[M] as TEnhTreeNode).Checked :=True;
我用M来遍历EnhTreeView1的所有结点,并将每个结点前的CHECKBOX标记。但出错!

哪个朋友使用过这个控件,帮忙看看!谢谢了!

http://www.neweasier.com/vcl.html?class=4
上面这个页面的第8个控件就是我说的这个控件!下载地址!
...全文
37 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
DDeveloper 2003-03-20
  • 打赏
  • 举报
回复
老达摩,你说的对,TENHTREEVIEW的NODE属性还是TTREENODE类型,他只是在创建这个结点的时候给他发了一个通知消息让他附带的画一个CHECKBOX,并没有说把TENHTREEVIEW的NODE属性也做成TENHTREENODE类型。
而且,那里那个VIRTUAL只是方便你以后OVERRIDE的时候可以附带其他操作,所以作者强调一定要进行类型的转换。但如果要转换就存在一个问题,等于是父类的对象向子类方向进行转换,这会导致异常或者一个编译错误!呵呵,真是不清楚作者本人的意图,算了,实在不可以,我换控件了。
不过这终究是个问题!
DDeveloper 2003-03-20
  • 打赏
  • 举报
回复
谢谢!我看他的那个例子,发现如果使用这个控件引用TENHTREENODE的CHECKED属性就不会发生任何错误,比如
if TEnhTreeNode(EnhTreeView1.Items[M]).Checked then
Beep;
这样的句子在编译和运行的时候都不回出错,但我试图写这个属性马上就包错。真是搞不懂,我已经检查了类型转换,没有任何问题,但还是包EINVALIDCAST错误。

我看到下载的ZIP包里面有个TXT文件其中有这样的话:
“One thing with this component that is worth mentioning is that to access
the Checked property for the nodes, the y must be typecasted to TEnhTreeNode.”

真是搞不懂了!我在看看你的意思,XZGYB!
xzgyb 2003-03-20
  • 打赏
  • 举报
回复
它的EnhTreeView的
function CreateNode: TTreeNode; override;
我觉得应该是Override,如是Virtual的
Items[M] 就取不到TEnhTreeNode类
不过这样做了以后
不会有错误,但有些毛病,那个选择框变成空白
不知怎回事

DDeveloper 2003-03-20
  • 打赏
  • 举报
回复
呵呵,我换成XTreeView了
xzgyb 2003-03-20
  • 打赏
  • 举报
回复
就是那个1stclass 4000
xzgyb 2003-03-20
  • 打赏
  • 举报
回复
www.51delphi.com
qq:21310059
msn:xzgyb2@hotmail.com
DDeveloper 2003-03-20
  • 打赏
  • 举报
回复
那里有下载的,对了,你的QQ可以加我吗175322659
xzgyb 2003-03-20
  • 打赏
  • 举报
回复
不谢
刚看了
fcTreeView的代码,它是自己画的
这个控件还是比较不错的

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧