明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2228|回复: 12

求教对话框问题

  [复制链接]
发表于 2004-3-20 22:52:00 | 显示全部楼层 |阅读模式
编辑框控件,它的值,我是说编辑框的内容.是要到cad绘图屏幕上去拾取的,如何在拾取后,就把所拾取的值显示在编辑框内啊 比如: (action_tile "zjd_x" "(do_zjdx)") (set_tile "zjd_x" zjd_x) (defun do_zjdx ()
(setq zjd_x (get_tile "zjd_x"))
) 这样的话,第二句话总是会出错,好像 zjd_x 没定义过一样 为什么啊?
发表于 2004-3-21 08:40:00 | 显示全部楼层
不是好象,从你以上的语句中,zjd_x就是没有赋值,是空的,所以出错
 楼主| 发表于 2004-3-21 13:03:00 | 显示全部楼层
在(setq zjd_x (get_tile "zjd_x"))中不是就已经赋值了吗,


那到底应该怎么做啊,教教我啊?
发表于 2004-3-21 13:36:00 | 显示全部楼层
这是在动作函数中才赋值,而你(set_tile "zjd_x" zjd_x)的时候,根本就没有触发动作函数


而且你是将控件"zjd_x"中的值取出来,又赋给它,这样做有什么意义?
 楼主| 发表于 2004-3-21 14:41:00 | 显示全部楼层
我明白你的意思了,但到底要怎样才能把我在屏幕上拾取的数据显示在编辑框里啊???
发表于 2004-3-21 15:28:00 | 显示全部楼层
程序部分: (defun c:test( / dcl_id what_next txt ent)
(setq dcl_id (load_dialog "tmp.dcl"))
(setq what_next 2)
(while (>= what_next 2)
(new_dialog "Enter" dcl_id)
(if txt (set_tile "zjd_x" txt))
(action_tile "pick" "(done_dialog 2)")
(setq what_next (start_dialog))
(if (= what_next 2)
(progn
(setq ent (entsel))
(if ent (setq txt (cdr (assoc 1 (entget (car ent))))))
)
)
)
(unload_dialog dcl_id)
(princ)
)
对话框部分 Enter:dialog{
:column{
:edit_box { label = "输入:"; key = "zjd_x";}
:button { label = "拾取文字"; key = "pick";}
}
ok_cancel;
}
 楼主| 发表于 2004-3-21 15:59:00 | 显示全部楼层
唉,高手就是高手.原来我只要加个(if ..)就可以了,我怎么就想不到呢?


get_tile得到的是控件的值,那假如编辑框的内容在术语上应该是叫什么?


还有在顺便问一下关于done_dialog的问题,你上面的程序done_dialog后跟的是2,我用的是4,这有区别吗,done-dialog后面的参数是固定的吗?都有些什么参数啊?
发表于 2004-3-21 16:38:00 | 显示全部楼层
叫控件的值或编辑框的内容都可以。。。


done_dialog用多少都可以,现在使用比较少,如果复杂点的程序,如,有很多动作都要退出对话框,退出后又要做不同的事情(如上面例子中就是拾取文本),这样就用这个值来区别是哪个动作,以便确定做什么事情。。。
 楼主| 发表于 2004-3-21 19:31:00 | 显示全部楼层
如果我退出对话框后,要用很多cad命令,例如画图,修改等等,有没有办法,在我做完这些后再自动回到对话框呢?我试过在(done_dialog 4)但不行.
发表于 2004-3-21 20:03:00 | 显示全部楼层
跟上面的程序一样,把(setq txt...改成你要做的事情就可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 22:24 , Processed in 0.202495 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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