求助!帮我修改这个小程序
实现两数相乘,结果显示在对话框上,按计算显示结果,按确定和取消结束对话框代码如下,求教!
dcl:
aa:dialog {
label = "乘法计算程序" ;
:text {
is_bold = true ;
key = "field" ;
value = "结果:" ;
}
:row {
:edit_box {
edit_width = 6 ;
key = "a_box" ;
label = "A" ;
}
:edit_box {
edit_width = 6 ;
key = "b_box" ;
label = "B" ;
}
}
:row {
alignment = centered ;
:button {
fixed_width = true ;
is_cancel = true ;
key = "js" ;
label = "计算" ;
}
:button {
fixed_width = true ;
is_cancel = true ;
key = "accept" ;
label = "确定" ;
}
:button {
fixed_width = true ;
is_cancel = true ;
key = "cancel" ;
label = "取消" ;
}
}
}
(defun c:CF(/ a b v1 id std ss js)
(setq v1 (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq a 12 b 20)
(setq id (load_dialog "d:/a.dcl"))
(if (< id 0) (exit))
(if (not (new_dialog "aa" id)) (exit))
(set_tile "a_box" (rtos a 2 2))
(set_tile "b_box" (rtos b 2 2))
(setq a (atof (get_tile "a_box")))
(setq b (atof (get_tile "b_box")))
(action_tile "js" "(fjs)")
(action_tile "accept" "(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq std (start_dialog))
(unload_dialog id)
(if (> std 0)
(setq js (* a b)))
(setvar "cmdecho" v1)
(princ)
)
(defun fjs()
(setq ss(itoa js))
(setq ss (strcat "结果:" ss))
(set_tile "field" ss)
)
(defun fjs ()
(setq ss (itoa js)) ;把此处的函数itoa改为rtos更好呢?说的不对的地方请多包涵
(setq ss (strcat "结果:" ss))
(set_tile "field" ss)
) 本帖最后由 ZZXXQQ 于 2011-6-13 09:22 编辑
aa:dialog{
label="乘法计算程序";
:text{is_bold=true;key="field";value="结果=";}
:row{
:edit_box{label="A";key="a_box";edit_width=6;}
:edit_box{label="B";key="b_box";edit_width=6;}
}
:row{
:button{label="计算";key="js";}
ok_cancel;
}
}
(defun c:CF (/ id std)
(if (> (setq id (load_dialog "d:/a.dcl")) 0) (progn
(if (new_dialog "aa" id) (progn
(set_tile "a_box" "12.00")
(set_tile "b_box" "20.00")
(action_tile "js" "(fjs)")
(action_tile "accept" "(fjs) (done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(setq std (start_dialog))
)
(princ "\n无法显示对话框!")
)
(unload_dialog id)
)
(princ "\n无法加载对话框!")
)
(if (> std 0) (setq js (* a b)))
(princ)
)
(defun fjs ()
(setq a (read(get_tile "a_box"))
b (read(get_tile "b_box")))
(set_tile "field" (strcat "结果 = " (rtos (* a b) 2)))
)
这个运行之后点计算对话框还是关闭,怎样才能不关闭点确定才关闭呢 三楼改了,再试试。 非常感谢!!
页:
[1]