edit_box高度用height=**来表示,另外程序中有几处错误,均以更改过来!
1、set_tile 后所跟的key都不对,你对照以下dcl文件和lsp文件就可以看出来;
2、 - (setq dt_c (list (cons 1 (get_tile "edit_c"))))
- (setq dt_h (list (cons 40 (atof (get_tile "edit_h")))))
应改为:
 - (setq dt_c (cons 1 (get_tile "wz_c")))
- (setq dt_h (cons 40 (atof (get_tile "wz_h"))))
3、书写格式,一般在加载对话框文件时都要先加上一个判断语句!当然,这个可能不算大问题,没有它也可以正常运行,但这是一个良好的书写习惯!
我把更改后的文件传上来:
lisp文件:
 - (defun dcl_bjwz ()
- (setq entlist (entget (car (entsel "\nPlease select a Text:"))))
- (if (> 0 (setq dcl_id (load_dialog "bjwz")))
- (progn
- (princ "\n 未能加载对话框")
- )
- )
- (if (= null (new_dialog "bjwz" dcl_id))
- (progn
- (princ "\n未能显示输入对话框")
- (exit)
- )
- (progn
- (set_tile "wz_c" (cdr (assoc 1 entlist)))
- (set_tile "wz_h" (rtos (cdr (assoc 40 entlist))))
- (action_tile "accept" "(ok_bjwz)(done_dialog 1)")
- (start_dialog)
- (unload_dialog dcl_id)
- )
- )
- )
- (defun ok_bjwz ()
- (setq dt_c (cons 1 (get_tile "wz_c")))
- (setq dt_h (cons 40 (atof (get_tile "wz_h"))))
- (setq entlist (subst dt_c (assoc 1 entlist) entlist))
- (setq entlist (subst dt_h (assoc 40 entlist) entlist))
- (entmod entlist)
- )
dcl文件:
 - bjwz:dialog {label="编辑文字";
- :row{
- :edit_box{
- label="内容:";
- key="wz_c";
- edit_width=40;
- height=1.5;
- }
- :edit_box{
- label="字高:";
- key="wz_h";
- edit_width=8;
- height=1.5;
- }
- }
- spacer_1;
- ok_cancel;
- }
|