明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2908|回复: 10

dcl中如何实现点击button打开另一对话框

[复制链接]
发表于 2005-10-7 09:57:00 | 显示全部楼层 |阅读模式

请问:

      怎么实现在当前对话框中点击指定的按钮打开另一对话框呢

发表于 2005-10-7 19:38:00 | 显示全部楼层

(action_tile "button_key" "(subprogram)" )

然后就可以在子程序中定义打开另一对话框......

 楼主| 发表于 2005-10-8 08:23:00 | 显示全部楼层

我用此法试了好像不行,能不能详细点

发表于 2005-10-8 11:09:00 | 显示全部楼层

参考一下下面的程序吧

要不把你的程序贴上来大家一起琢磨

(defun c:test()
  (setq dcl_id(load_dialog"dcl-test.dcl"))
  (new_dialog"test1"dcl_id)
  (action_tile "dcl" "(next)" )
  (action_tile "accept" "(done_dialog 1)" )
 
  (setq dia(start_dialog))
  (if(= dia 1)(alert"END"))   
  (unload_dialog dcl_id)
  )
(defun next()
  (setq dcl_i(load_dialog"dcl-test.dcl"))
  (new_dialog"test2"dcl_i ""'(600 300))
  (action_tile "accept" "(done_dialog 1)" )
 
  (setq dial(start_dialog))
  (if(= dial 1)(alert"另一对话框调用成功..."))   
  (unload_dialog dcl_i)
  )
 

 

 

test1:dialog{label="另一对话框...";
            :button{label="另一对话框...";key="dcl";}
            spacer_1;ok_cancel;
            }
test2:dialog{label="对话框贰";
            :edit_box{label="文本:";key="text";}
            spacer_1;ok_cancel;
            }

 

 楼主| 发表于 2005-10-10 11:08:00 | 显示全部楼层

谢谢:

      我已经懂了,但调用第二个对话框时第一个为什么不消失呢,能不能只存在一个呢,通过按钮互相调用,就比如在装应用程序时的“上一步”“下一步”在两对话框中切换

发表于 2005-10-12 09:57:00 | 显示全部楼层

呵呵 我也很想知道!

还有下面这样的对话框该怎么做?

请高手指点

 

e:\q.BMP
发表于 2005-10-12 11:43:00 | 显示全部楼层

;大致改了一下,没有仔细研究,你们看一下可行?

(defun c:test ()
  (setq dcl_id (load_dialog "dcl-test.dcl"))
  (setq do_what 2)
  (while (>= do_what 2)
    (if (= null (new_dialog "test1" dcl_id))
      (progn
 (princ "\n未能显示对话框。")
 (setq dialogshow nil)
 (exit)
      )     ;progn结束
    )
    (action_tile "dcl" "(done_dialog 2)")
    (action_tile "accept" "(done_dialog 1)")

    (setq do_what (start_dialog))
    (cond
      ((= do_what 1)
       (alert "END")
      )
      ((= do_what 2)
       (next)
      )
    )
  )
  (unload_dialog dcl_id)
)
(defun next ()
  (new_dialog "test2" dcl_id)
  (action_tile "accept" "(done_dialog 1)")

  (setq dial (start_dialog))
  (if (= dial 1)
    (alert "另一对话框调用成功...")
  )
  (unload_dialog dcl_i)
)

发表于 2005-10-12 13:32:00 | 显示全部楼层

谢谢似水无痕的回复!

我还是不明白:

假设我点击了"dcl"按纽

将执行((= do_what 2)(next))弹出第二个对话框 但是 是怎样隐含了第一个对话框的

另   do_what 不就恒等于2吗 又是怎样退出while判断的?

退出第二个对话框后 是怎样控制第一个对话框弹出的?

发表于 2005-10-13 04:24:00 | 显示全部楼层

隐藏是用next函数中的(new_dialog "test2" dcl_id)句,你的程序中在test函数中(setq dcl_id(load_dialog"dcl-test.dcl"))一句已经加载了,没有必要在next函数中再去加载!

至于退出,我有个程序中是这样写得,你可以参照一下

(action_tile "cancel" "(done_dialog 0)")    (setq do_what (start_dialog))

    (cond
      ((= do_what 3)
       (hd_luji)
      )
      ((= do_what 4)
       (hd_zhongjianjie)
      )
      ((= do_what 5)
       (hd_churukou)
      )
      ((= do_what 0)
       (princ "\n对话框被取消。")
       (exit)
      )
    )
今天去甲方签资料凌晨2:15才回来,现在是凌晨4:25,头都搞大了!你先看一下,还有什么问题可以继续研究!

明经里高手很多,我只是个初学者,等待老大们指点吧!

发表于 2005-10-13 08:26:00 | 显示全部楼层

万分感谢!

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

本版积分规则

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

GMT+8, 2025-5-16 21:05 , Processed in 0.204921 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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