想要设置文本框禁用状态
本帖最后由 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:”的我总适应不了,大家怎看,有没有一些文章可供参考的。
谢谢大家!
另外看到版主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年的,应该是当时版本的需要。
也没有一个人吭一声,真可怜! 里面两个函数移到外面试试 wangph 发表于 2013-1-10 21:20 static/image/common/back.gif
里面两个函数移到外面试试
你指的是两个onclick事件吗?
谢谢你的回复! 还看不懂怎么会事的!
页:
[1]