你的程序问题比较多,连拼写都有错的,我帮你调了,你自已对照看吧 (DEFUN C:2 () (SETQ DCL_ID (LOAD_DIALOG "C:/LBOX.DCL") CHK 1) (NEW_DIALOG "LBOX" DCL_ID) (ADDL) (ACTION_TILE "LBOX_T" "(ADDL)") //新增的下拉式選框元件動作 (ACTION_TILE "LBOX_L" "(SETQ TMP_R (ATOI (GET_TILE \"LBOX_L\")))(SETC)") (ACTION_TILE "accept" "(SETQ TMP_S (GET_TILE \"LBOX_E\"))(DONE_DIALOG 1)") (ACTION_TILE "cancel" "(DONE_DIALOG 0)") (setq chk (START_DIALOG)) (UNLOAD_DIALOG DCL_ID) (IF (= CHK 1) (progn (setq pt (GETPOINT "\nSelect text insert point :")) (COMMAND "TEXT" pt 5 0 TMP_S)) ) (PRINC)) (DEFUN ADDL() (IF (= (GET_TILE "LBOX_T") "0") ;檢查選擇了的主題 (SETQ F_ID (OPEN "C:/TEXT1.TXT" "r")) ;開啟檔案 ) ;開啟檔案 (SETQ TMP_T (READ-LINE F_ID) TMP_L nil) (WHILE (/= TMP_T NIL) (SETQ TMP_L (cons TMP_T TMP_L)) (SETQ TMP_T (READ-LINE F_ID)) ) (CLOSE F_ID) ;(SETQ TMP_L (LIST (CDR TMP_L))) (SETQ TMP_L (reverse TMP_L)) (START_LIST "LBOX_L" 3 0) (MAPCAR 'ADD_LIST TMP_L) (END_LIST) (SETQ TMP_R (ATOI (GET_TILE "LBOX_L"))) (SETQ TMP_S (nth tmp_r tmp_l)) (SET_TILE "LBOX_E" TMP_S) )
(DEFUN SETC() ;;; (IF (= (GET_TILE "LBOX_T") "0") ;檢查選擇了的主題 ;;; (SETQ F_ID (OPEN "C:/TEXT1.TXT" "r")) ;開啟檔案 ;;; (SETQ F_ID (OPEN "C:/TEXT2.TXT" "r"))) ;開啟檔案 ;;; (IF (> TMP_R 0) ;;; (REPEAT TMP_R (READ-LINE F_ID))) ;;; (SETQ TMP_S (GET_TILE "LBOX_E")) ;;; (SETQ TMP_S (STRCAT TMP_S (READ-LINE F_ID))) ;;; (CLOSE F_ID) (SETQ TMP_S (nth tmp_r tmp_l)) (SET_TILE "LBOX_E" TMP_S))
DCL中 :edit_box //編輯框元件
{ label="中文字" ; key="LOBX_E" ; 应为LBOX_E,不调它,在LISP中要调成LOBX_E width=25; fixed_width=true;
}
|