起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 247|回复: 7

【搞定】构造数据树问题(急问)**

[复制链接]
发表于 2007-5-21 16:21:56 | 显示全部楼层 |阅读模式
现通过自定义类以实现类似datatreeview的功能
TDicRecord = class(TObject)
  private
    {private declarations}
  public
    {public declarations}
    ID:string;
    Dnode:string;
    Dnode_name:string;
  end;

使用checktreeview.Items.AddChildObject(Node,TDicRecord.Dnode_name,TDicRecord )来增加节点
然而在调用树节点取出这个自定义类的相关数据时需要转型
我这里用了TDicRecord(checktreeview.Selected.Data).Dnode 转型以获取dnode属性
但是有时成功,有时为空,不知道是不是转型有问题?
回复

使用道具 举报

发表于 2007-5-21 16:47:05 | 显示全部楼层
楼主,这个问题要跟踪代码来看看了,强制类型转换TDicRecord(checktreeview.Selected.Data).Dnode这一句本身应该是没有问题的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-21 16:49:21 | 显示全部楼层
我跟踪了很久
感觉很奇怪
大多数情况都能获取
但是个别就报空对象错误了
不过如果这样转型没问题
我就集中精力跟踪了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-21 16:55:23 | 显示全部楼层
对了
还有个地方我不能确定
如何选取被选定的treenode
我发现selected在有子项的时候取出的是一个node集合
还有别的方法取出被check的节点吗
回复 支持 反对

使用道具 举报

发表于 2007-5-21 17:23:51 | 显示全部楼层
property SelectedNode: Business.Model.TBizNode;表示当前被选择的业务节点

property Selected: TTreeNode;
selected返回的只是当前树的节点,不应该是集合的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-22 09:16:18 | 显示全部楼层
发现问题了
我这边的出现循环多次不是因为selected的问题
而是clickcheck事件会感知它的叶子
就是说我在clickcheck事件上的代码,如果写在父节点上,而这个父节点有三个子节点,那么那些代码就会执行四次
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-22 09:18:09 | 显示全部楼层
明白了
是oblycheckself决定的
回复 支持 反对

使用道具 举报

发表于 2007-5-23 13:00:10 | 显示全部楼层
ok,结贴。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-10 21:35 , Processed in 0.038115 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表