本帖最后由 Free-Lancer 于 2014-10-5 23:58 编辑
有些函数还在调整中
 - (defun c:tt (/ strl fn do_what what_next kl dcl_id)
- (setq strl '("temp:dialog {"
- "label = \"示例\" ;"
- ": column {"
- " : row {"
- " : image_button { height = 6; key = \"bott1\";}"
- " : image_button { height = 6; key = \"bott2\";}"
- " : image_button { height = 6; key = \"bott3\";}"
- " }"
- " : boxed_row {"
- " label = \"操作\";"
- " ok_cancel;"
- " }"
- " errtile;"
- "}"
- "}"
- )
- fn (dcl:make strl) ;_写出临时 DCL
- do_what "bott1"
- what_next 2 ;_循环
- kl '(("bott1" "lib(001)")
- ("bott2" "lib(002)")
- ("bott3" "lib(003)")
- )
- )
- (while (= what_next 2) ;_done_dialog 后对话框就关闭了,
- (setq dcl_id (dcl:load fn "temp")) ;_加载对话框
- (dcl:imagebutton 'kl '(do_what)) ;_加载 sld
- (dcl:accept) ;_done_dialog ok = 1 , cancel = 0
- (setq what_next (dcl:init)) ;_显示对话框,控制权交给 DCL,do_what 为点击的 image_button $key, 对话框只记录三个状态 1 ok,0 cancel,临时关闭都是 2,谁关闭的 用 $key 记录
- (if (= what_next 2)
- (cond ;_测试对话框返回值
- ((= do_what "bott1")
- (vl-cmdf ".line")
- (while (/= (getvar "cmdactive") 0)
- (command pause)
- )
- )
- ((= "bott2" do_what)
- (command ".circle")
- (while (/= (getvar "cmdactive") 0)
- (command pause)
- )
- )
- ((= "bott3" do_what);用 $key 判断作什么,不需要 done_dialog 状态,关就关了,知道是谁关的即可
- (command ".rectang")
- (while (/= (getvar "cmdactive") 0)
- (command pause)
- )
- )
- (t)
- )
- )
- )
- (dcl:unload dcl_id fn) ;_卸载对话框
- (command)
- (princ)
- )
DCL 文件写出、加载、load_dialog 及 start_dialog unload_dialog
(dcl:make strl) 写出临时DCL, 返回文件名
(dcl:load fname dname) 加载DCL, fname - dcl 文件名, dname - dialog name, 返回 load_dialog ID
(dcl:start dcl_id fn) 显示、卸载、删除临时文件, dcl_id - load_dialog 返回的 ID,fn - dcl 文件名
(dcl:init) 用于需要隐藏对话框时,(start_dialog)
(dcl:unload dcl_id fn) 卸载DCL、删除DCL
通用
(dcl:settile klst varlst) 批量设置或单个控件(key) 设置
(dcl:gettile klst) 批量获取或单个(key) 获取
(dcl:CtrlEnable klst) 批量启用控件或单个启用
(dcl:CtrlDisable klst) 批量禁用控件或单个禁用
ok cancel 定义
(Dcl:Accept) ok 和 cancel 定义, ok done_dialog = 1 , cancel done_dialog = 0
errtile 控件
(dcl:ResError) 清空 errtile 控件显示
(dcl:SetError msg) 设置 errtile 控件提示文字
Image_button 控件
初始设置
(dcl:slidimage klst sldlst colst) 批量slideimage(需一一对应表参数)或单个控件 slideimage
(dcl:imagefillcolor klst colst) 批量imagefillcolor(需一一对应表参数)或单个控件 imagefillcolor
(DCL:ImageCrlDisable klst) 批量禁用 image 控件或禁用单个 image 控件
Action
(Dcl:ImageButton klst def) 批量slidimage 并设置默认,同时定义 action,
当 def 为表时关闭对话框 start_dialog 值为 2, def 设置为 $key
Button 控件
(dcl:buttonaction klst what) 批量定义button 控件动作,关闭对话框,start_dialog 值为 2 ,
what 为 $key
Toggle 控件
(DCL:ToggleAction klst deflst) 设置toggle 控件默认值及定义 action
List (pop_list list_box) 控件
(dcl:addlist klst varlst itemlst) 批量填表(需一一对应表参数)或单个控件填充列表
(dcl:listaction
Edit_box 控件
格式检查
(dcl:checkin input format kk) 检查输入格式
(dcl:checknumin klst) 数字box 检查输入
Action
(DCL:EditboxNumAction
(DCL:EditboxAction
Radio 控件组
(DCL:RadioInit klst deflst)
(Dcl:RadioAction
(Dcl:mRadioAction
|