yxp 发表于 2013-4-19 06:52:35

奇怪的GetFirstChildItem函数

本帖最后由 yxp 于 2013-4-19 14:29 编辑

鼓了好大的劲学习opendcl,各种奇怪的报错,让人抓狂。
GetFirstChildItem函数在第一个父目录下不能使用?这是神马缘故。
红色部分,用蓝色的替换才能通过,不是这个函数本身不行,
而是影响它的下一代的值无法传送,他自己的ID和name都返回无误。
麻烦热心人帮忙测试一下,看看是不是我的电脑有玛达。
还有一些控件的放置顺序如果不小心改变,也会报错,
用flag值跳过不加载都通不过,和setText函数有关的一个虫


;;主程序,添加一个模式窗口,存盘为 xxx.odcl
(defun c:xxx()
   (dcl_Project_Load "xxx.odcl")
   (dcl_Form_Show xxx_Form1)
   (dcl_Project_Unload "xxx")
   (princ)
)

;;添加一个textbutton按钮,增加单击事件,存盘
(defun c:xxx_Form1_TextButton1_OnClicked (/)
   (setq rootid(dcl_Tree_GetRootItem xxx_Form1_TreeControl1))
   (princ "\nRootID :")(princ rootid)          ;;第一步:返回根ID
   
   (setq Parid1(dcl_Tree_GetFirstChildItem xxx_Form1_TreeControl1 rootid))
; (setq Parid1(dcl_Tree_GetFirstVisibleItem xxx_Form1_TreeControl1))
   (princ "\nParent ID1:")(princ Parid1)       ;;第二步:返回父ID
   
   (setq Parname1 (dcl_Tree_GetItemLabel xxx_Form1_TreeControl1 Parid1))
   (princ "\nParent name1:")(princ Parname1)   ;;第三步:返回父name
   
   (setq Childid1(dcl_Tree_GetFirstChildItem xxx_Form1_TreeControl1 Parid1))
   (princ "\nChild ID1:")(princ Childid1)      ;;返回子ID
   
   (setq Childname1 (dcl_Tree_GetItemLabel xxx_Form1_TreeControl1 Childid1))
   (princ "\nChild name1:")(princ Childname1)
   
   (setq Grsonid1(dcl_Tree_GetFirstChildItem xxx_Form1_TreeControl1 Childid1))
   (princ "\nGrson ID1:")(princ Grsonid1)   ;; 如果使用红色部分,这一步返回空值!!!
   (princ)   
)

;;添加一个TreeControl控件,增加OnInitialize事件,存盘
(defun c:xxx_Form1_OnInitialize (/)
(setq p (dcl_Tree_AddParent xxx_Form1_TreeControl1 "FirstParent"))   ;;添加一个目录 1
(setq q (dcl_Tree_AddChild xxx_Form1_TreeControl1 p "FirstChild"))   ;;添加目录 1.1
(setq r (dcl_Tree_AddChild xxx_Form1_TreeControl1 q "FirstGrson"))   ;;添加1.1.1
(setq p (dcl_Tree_AddParent xxx_Form1_TreeControl1 "SecondtParent")) ;;添加   2
(dcl_Tree_AddChild xxx_Form1_TreeControl1 p "FirstChild")                  ;;添加   2.1
)


页: [1]
查看完整版本: 奇怪的GetFirstChildItem函数