Диалог ввода строки

(defun ru-dlg-get-string (caption default disable_empty
/ command_line continue
ini_file reason result
user_dic_file tmp_str
)
(setq
user_dic_file
(ru-file-current-user "userstr.txt")
;; фиктивный параметр
command_line
(strcat (ru-file-bin "ruGetStr.exe") " ru")
result default
continue t
) ;_ end of setq
(if (not (findfile user_dic_file))
(vl-file-copy
(ru-file-template "userstr.txt")
user_dic_file
) ;_ end ofvl-file-copy
) ;_ end ofif
(ru-reg-delete-tmp-sub-key "GetString")
(ru-reg-write-tmp-string "GetString" "Caption" caption)
(ru-reg-write-tmp-string "GetString" "DicFileName" user_dic_file)
(ru-reg-write-tmp-string "GetString" "StartFromAcad" "1")
(ru-reg-write-tmp-string
"GetString"
"DisableEmpty"
(ru-conv-bool-to-str disable_empty)
) ;_ end of ru-reg-write-tmp-string
(while continue
(ru-reg-write-tmp-string "GetString" "String" result)
(ru-app-run command_line t)
;;; (ru-reg-read-tmp-string "xml_menu" "attrib" "")
(setq result (ru-reg-read-tmp-string "GetString" "String" "")
reason (atoi
(ru-reg-read-tmp-string "GetString" "ResultDial" "1")
) ;_ end of ru-conv-str-to-bool
) ;_ end of setq
(cond
((= reason 3)
;;Выбор из Acad
(if (setq tmp_str
(ru-get-txt-from-dwg
"Выбери надпись из рисунка"
) ;_ end ofru-get-txt-from-dwg
) ;_ end of setq
(setq result tmp_str)
) ;_ end of if
)
((= reason 1)
;;OK
(setq continue nil)
;; вернуть строку
)
(t
;; Отмена
(setq continue nil
result nil
) ;_ end of setq
)
) ;_ end of cond
) ;_ end of while
(ru-reg-delete-tmp-sub-key "GetString")
result
) ;_ end of defun