乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 104|回复: 9

求教对话框问题

[复制链接]

16

主题

45

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 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 没定义过一样
为什么啊?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-21 08:40:00 | 显示全部楼层
不是好象,从你以上的语句中,zjd_x就是没有赋值,是空的,所以出错
回复

使用道具 举报

16

主题

45

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2004-3-21 13:03:00 | 显示全部楼层
在(setq zjd_x (get_tile "zjd_x"))中不是就已经赋值了吗,
那到底应该怎么做啊,教教我啊?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-21 13:36:00 | 显示全部楼层
这是在动作函数中才赋值,而你(set_tile "zjd_x" zjd_x)的时候,根本就没有触发动作函数
而且你是将控件"zjd_x"中的值取出来,又赋给它,这样做有什么意义?
回复

使用道具 举报

16

主题

45

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2004-3-21 14:41:00 | 显示全部楼层
我明白你的意思了,但到底要怎样才能把我在屏幕上拾取的数据显示在编辑框里啊???
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 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;
}
回复

使用道具 举报

16

主题

45

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2004-3-21 15:59:00 | 显示全部楼层
唉,高手就是高手.原来我只要加个(if ..)就可以了,我怎么就想不到呢?
get_tile得到的是控件的值,那假如编辑框的内容在术语上应该是叫什么?
还有在顺便问一下关于done_dialog的问题,你上面的程序done_dialog后跟的是2,我用的是4,这有区别吗,done-dialog后面的参数是固定的吗?都有些什么参数啊?
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-21 16:38:00 | 显示全部楼层
叫控件的值或编辑框的内容都可以。。。
done_dialog用多少都可以,现在使用比较少,如果复杂点的程序,如,有很多动作都要退出对话框,退出后又要做不同的事情(如上面例子中就是拾取文本),这样就用这个值来区别是哪个动作,以便确定做什么事情。。。
回复

使用道具 举报

16

主题

45

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
109
发表于 2004-3-21 19:31:00 | 显示全部楼层
如果我退出对话框后,要用很多cad命令,例如画图,修改等等,有没有办法,在我做完这些后再自动回到对话框呢?我试过在(done_dialog 4)但不行.
回复

使用道具 举报

26

主题

3072

帖子

10

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3177
发表于 2004-3-21 20:03:00 | 显示全部楼层
跟上面的程序一样,把(setq txt...改成你要做的事情就可以
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-8-15 12:51 , Processed in 0.962778 second(s), 73 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表