poople 发表于 2013-1-9 21:24:48

想要设置文本框禁用状态

本帖最后由 poople 于 2013-1-9 21:27 编辑

晚上好,第一次用OpenDCL有些不明白的地方向大家请教一下。
我想用一个Checkbox或者Optionbox控件来控制一个文本框的激活/禁用(Enabled)状态,但是Checkbox或者Optionbox控件对应的单击事件根本没有动作,不知道为什么。
(defun C:test (/ c:Test_TT_OptionButton1_OnClicked
               c:Test_TT_CheckBox1_OnClicked
              )
(defun c:Test_TT_OptionButton1_OnClicked (Value /)
    ;0 = Unchecked; 1 = Checked,激活/禁用文本框
    (cond
      ((= (dcl_Control_GetValue Test_TT_OptionButton1) 1); 1 = Checked,激活文本框
       (dcl_Control_SetEnabled Test_TT_TextBox1 t)
      )
      ((= (dcl_Control_GetValue Test_TT_OptionButton1) 0);0 = Unchecked,禁用文本框
       (dcl_Control_SetEnabled Test_TT_TextBox1 nil)
      )
    )
)
(defun c:Test_TT_CheckBox1_OnClicked (Value /)
    ;0 = Unchecked; 1 = Checked,激活/禁用文本框
    (cond
      ((= (dcl_Control_GetValue Test_TT_CheckBox1) 1); 1 = Checked,激活文本框
       (dcl_Control_SetEnabled Test_TT_TextBox1 t)
      )
      ((= (dcl_Control_GetValue Test_TT_CheckBox1) 0);0 = Unchecked,禁用文本框
       (dcl_Control_SetEnabled Test_TT_TextBox1 nil)
      )
    )
)
(dcl_Project_Load "Test" t)
(dcl_Form_Show Test_TT)
)



另外,对于OpenDCL的主函数中,除了 modeless forms和Dockable forms外,类似于(dufun C:Main())这样包含有另一个(dufun C:bb())的主函数,对于从前都是按照一个主“C:”函数后面跟的函数都是没有“C:”的我总适应不了,大家怎看,有没有一些文章可供参考的。


谢谢大家!


poople 发表于 2013-1-9 21:36:50

另外看到版主mccad在“ObjectDCL学习笔记”中提到一个关于验证加载arx函数的一个过程,如下:

(defun C:MyHello ()
(if (not (member "objectdcl.arx" (arx)))
    (arxload "objectdcl.arx" "加载objectdcl.arx 失败.")
)
(princ)
)


后来用(arx)查看了一下我的AutoCAD中加载的arx函数,如下:
("acapp.arx" "acdblclkeditpe.arx" "acdim.arx" "aceplotx.arx" "acetutil.arx" "acgsconfig.arx" "achapi17.dbx" "achlnkui.arx" "acmgd.dll" "acmgdinternal.dll" "acpltstamp.arx" "acprevinput.arx" "acrobatacadic.arx" "acrobatacadic.dbx" "acsign.arx" "actp.arx" "oleaprot.arx" "opendcl.17.arx" "pdfmacad.arx" "vl.arx" "whohas.arx")
这里有一个名为opendcl.17arx文件,说明我的CAD确实是在安装OpenDCL时已经将这个文件纳入,那么版主mccad上面的一段代码应该是不需要的了,后来我看了一下帖子是2004年的,应该是当时版本的需要。

poople 发表于 2013-1-10 09:59:32

也没有一个人吭一声,真可怜!

wangph 发表于 2013-1-10 21:20:47

里面两个函数移到外面试试

poople 发表于 2013-1-11 07:31:29

wangph 发表于 2013-1-10 21:20 static/image/common/back.gif
里面两个函数移到外面试试

你指的是两个onclick事件吗?
谢谢你的回复!

xiabin68 发表于 2013-1-11 07:35:01

还看不懂怎么会事的!
页: [1]
查看完整版本: 想要设置文本框禁用状态