dcl中如何实现点击button打开另一对话框
<P>请问:</P><P> 怎么实现在当前对话框中点击指定的按钮打开另一对话框呢</P> <P>(action_tile "button_key" "(subprogram)" )</P>
<P>然后就可以在子程序中定义打开另一对话框......</P> <P>我用此法试了好像不行,能不能详细点</P> <P>参考一下下面的程序吧</P>
<P>要不把你的程序贴上来大家一起琢磨</P>
<P>(defun c:test()<BR> (setq dcl_id(load_dialog"dcl-test.dcl"))<BR> (new_dialog"test1"dcl_id)<BR> (action_tile "dcl" "(next)" )<BR> (action_tile "accept" "(done_dialog 1)" )<BR> <BR> (setq dia(start_dialog))<BR> (if(= dia 1)(alert"END")) <BR> (unload_dialog dcl_id)<BR> )<BR>(defun next()<BR> (setq dcl_i(load_dialog"dcl-test.dcl"))<BR> (new_dialog"test2"dcl_i ""'(600 300))<BR> (action_tile "accept" "(done_dialog 1)" )<BR> <BR> (setq dial(start_dialog))<BR> (if(= dial 1)(alert"另一对话框调用成功...")) <BR> (unload_dialog dcl_i)<BR> )<BR> </P>
<P> </P>
<P> </P>
<P>test1:dialog{label="另一对话框...";<BR> :button{label="另一对话框...";key="dcl";}<BR> spacer_1;ok_cancel;<BR> }<BR>test2:dialog{label="对话框贰";<BR> :edit_box{label="文本:";key="text";}<BR> spacer_1;ok_cancel;<BR> }</P>
<P> </P> <P>谢谢:</P>
<P> 我已经懂了,但调用第二个对话框时第一个为什么不消失呢,能不能只存在一个呢,通过按钮互相调用,就比如在装应用程序时的“上一步”“下一步”在两对话框中切换</P> <P>呵呵 我也很想知道!</P>
<P>还有下面这样的对话框该怎么做?</P>
<P>请高手指点</P>
<P> </P>e:\q.BMP <P>;大致改了一下,没有仔细研究,你们看一下可行?</P>
<P>(defun c:test ()<BR> (setq dcl_id (load_dialog "dcl-test.dcl"))<BR> (setq do_what 2)<BR> (while (>= do_what 2)<BR> (if (= null (new_dialog "test1" dcl_id))<BR> (progn<BR> (princ "\n未能显示对话框。")<BR> (setq dialogshow nil)<BR> (exit)<BR> ) ;progn结束<BR> )<BR> (action_tile "dcl" "(done_dialog 2)")<BR> (action_tile "accept" "(done_dialog 1)")</P>
<P> (setq do_what (start_dialog))<BR> (cond<BR> ((= do_what 1)<BR> (alert "END")<BR> )<BR> ((= do_what 2)<BR> (next)<BR> )<BR> )<BR> )<BR> (unload_dialog dcl_id)<BR>)<BR>(defun next ()<BR> (new_dialog "test2" dcl_id)<BR> (action_tile "accept" "(done_dialog 1)")</P>
<P> (setq dial (start_dialog))<BR> (if (= dial 1)<BR> (alert "另一对话框调用成功...")<BR> )<BR> (unload_dialog dcl_i)<BR>)</P> <P>谢谢似水无痕的回复!</P>
<P>我还是不明白:</P>
<P>假设我点击了"dcl"按纽 </P>
<P>将执行((= do_what 2)(next))弹出第二个对话框 但是 是怎样隐含了第一个对话框的 </P>
<P>另 do_what 不就恒等于2吗 又是怎样退出while判断的?</P>
<P>退出第二个对话框后 是怎样控制第一个对话框弹出的?</P> <P>隐藏是用next函数中的(new_dialog "test2" dcl_id)句,你的程序中在test函数中(setq dcl_id(load_dialog"dcl-test.dcl"))一句已经加载了,没有必要在next函数中再去加载!</P>
<P>至于退出,我有个程序中是这样写得,你可以参照一下</P>
<P>(action_tile "cancel" "(done_dialog 0)") (setq do_what (start_dialog))</P>
<P> (cond<BR> ((= do_what 3)<BR> (hd_luji)<BR> )<BR> ((= do_what 4)<BR> (hd_zhongjianjie)<BR> )<BR> ((= do_what 5)<BR> (hd_churukou)<BR> )<BR> ((= do_what 0)<BR> (princ "\n对话框被取消。")<BR> (exit)<BR> ) )<BR>今天去甲方签资料凌晨2:15才回来,现在是凌晨4:25,头都搞大了!你先看一下,还有什么问题可以继续研究!</P>
<P>明经里高手很多,我只是个初学者,等待老大们指点吧!</P> <P>万分感谢!</P>
页:
[1]
2