绝情一剑 发表于 2004-2-21 11:24:00

请大家把这个程序完成

设(setq a '(1 2 3 4 5))


DCL第一行为单选框+和-


第二行为编辑框,目的是让当切换+和-的时候分别把表A中的数据进行加减,并把结果显示在编辑框内,且切换加减的时候显示结果要跟随变化

meflying 发表于 2004-2-21 12:40:00

这样只能变化一次,加或减一次后,编辑框内的内容是上次的结果,这个结果就无法再加或减了。


设(setq a '(1 2 3 4 5)) 干什么用?


编辑框内的数字写成什么格式?

绝情一剑 发表于 2004-2-21 15:13:00

我的意思是如果选+ 相当于(apply '+ a)求出结果显示在编辑框内,现在我又选-


结果就编程(apply '- a)编辑框内的值也随之变化为表中内容的减法运算,也就是说可以在对话框内随着选择的不同结果也跟着变化,不知道能不能实现

meflying 发表于 2004-2-21 16:17:00

(defun LoadDlg( / path fname f dcl_id)<BR>       (setq path (getenv "temp"))<BR>       (setq fname (strcat path "\\" "wl-definde-dcl-file.dcl"))<BR>       (setq f (open fname "w"))<BR>       (write-line "add:dialog{label = \"对话框\";        :row{        :button {label = \"+\"; key = \"add\";}" f)<BR>       (write-line "                        :button {label = \"-\"; key = \"sub\";}}" f)<BR>       (write-line "                :edit_box{label = \"结果为:\"; key = \"edit1\";} ok_cancel;}" f)<BR>       (close f)<BR>       (setq dcl_id (load_dialog fname))<BR>       (vl-file-delete fname)<BR>       dcl_id<BR>)


(defun c:test( / a dcl_id)<BR>       (setq a '(1 2 3 4 5))<BR>       (setq dcl_id (loaddlg))<BR>       (new_dialog "add" dcl_id)<BR>       (action_tile "add" "(set_tile \"edit1\" (rtos (apply '+ a)))")<BR>       (action_tile "sub" "(set_tile \"edit1\" (rtos (apply '- a)))")<BR>       (start_dialog)<BR>       (unload_dialog dcl_id)<BR>       (princ)<BR>)

绝情一剑 发表于 2004-2-21 16:51:00

送个鲜花以示感谢:)
页: [1]
查看完整版本: 请大家把这个程序完成