zenghong 发表于 2006-11-24 23:48:00

写简单的DCL

<P><FONT size=2>;;;小弟刚学,问题多多,烦请高教教,</FONT></P>
<P><FONT size=2>;;;以下LISP中的数,我想以对话框的形式输入:数A ,B, C,</FONT></P>
<P><FONT size=2>;;;高手能做一个给小弟试试,(觉得简单的话就帮小弟一下)</FONT></P>
<P><FONT size=2>(defun c:err ()<BR>(setq AA (getreal"\n数A"))<BR>(setq BB (getreal"\n数B"))<BR>(setq CC (getreal"\n数C"))<BR>(setq DD (+(* AA BB) CC ))<BR>(print (strcat "="(rtos DD 2 5)))<BR>)</FONT></P>

ZZXXQQ 发表于 2006-11-25 17:46:00


dcl_settings : default_dcl_settings { audit_level = 3; }
err : dialog {
label = "参数输入";
: edit_box { label="数A:"; key="mda";}
: edit_box { label="数B:"; key="mdb";}
: edit_box { label="数C:"; key="mdc";}
ok_cancel;
}

(defun c:err ()
(IF (> (SETQ DCL_ID (LOAD_DIALOG "err")) 0) (PROGN
(IF (NEW_DIALOG "err" DCL_ID) (PROGN
   (action_tile "accept" "(RDATA) (DONE_DIALOG 1)")
   (action_tile "cancel" "(DONE_DIALOG 0)")
   (SETQ RE (START_DIALOG))
)
   (ALERT "Unable to display dialog box!")
)
(UNLOAD_DIALOG DCL_ID)
)
(ALERT "Unable to load dialog box!")
)
(IF (= RE 1) (PROGN
(SETQ D (+ (* AA BB) CC))
(PRINC (STRCAT "=" (RTOS DD 2 5)))
))
(PRINC)
)
(DEFUN RDATA ()
(SETQ AA (GET_TILE "mda")
       BB (GET_TILE "mdb")
       CC (GET_TILE "mdc"))
)

jyzas 发表于 2013-7-27 21:30:46

不错,简单易学
页: [1]
查看完整版本: 写简单的DCL