- 积分
- 6286
- 明经币
- 个
- 注册时间
- 2003-5-19
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
VLDCL的设计思路: ================= 每个DCL 控件都有定义特定的性质,所有这些特性的具体数据保存在一个全局变量中,VLDCL 的程序 会扫描整个变量数据表,根据不同控件的不同的特性来处理数据,用户对对话框的操作所造成的变量改变 也在全局变量数据表中保存。对话框关闭后用户可以从数据表中抽取所需数据进行下一步的运算。 通过这样的方法,用户不再需要为每个控件设定初始化的函数和关联的操作函数,整个程序的编制可 以在很大程度上得到简化。用户对程序的维护被转成对数据表的维护,在管理和理解上将会更有力。 控件特性的数据表采用类似AutoCAD DXF 代码表的形式,所有控件统一拥有的特性为代码0 和-1。 0:代表控件的类型,必须是系统内定的类型之一。如"edit_box" "list" "button"等。 -1:代表控件所属的对话框名称,如果没有对话的嵌套,此特性可以不设定。 总体上来说,一个控件最多可以再有三个特性,分别记录为1,2,3。同一代码,不同控件有不同的具 体意义。
全局变量: *DCLID* : 当前load_dialog ID *DCL-DATA* : 控件特性数据表 *DCL-DONEDIALOG* : done_dialog ID及相应函数对应表 *DIALOG* : 嵌套对话框层次表 *DCL-OKCANCEL* : 嵌套对话框用,点取不同对话框的OK/CANCEL执行函数对应表
总体数据表*DCL-DATA*格式为 '((key1 (-1 . Data-1)(0 . Data0)(1 . Data1)(2 . Data2)(3 . Data3)(4 . Data4)) (key2 (-1 . Data-1)(0 . Data0)(1 . Data1)(2 . Data2)(3 . Data3)(4 . Data4)) ...... )
其他预定义的设定: ================== 在数据的传递上,采用了保存在"ACAD??.CFG"中[AppData]段的方法,保存的数据有两个: 对话框文件(DCL):"AppData/VLAE/DCL-File" 当 前 对 话 框:"AppData/VLAE/DCl-Dialog"
============================================================================================= DCL 控件名:edit_box VLDCL DXF0:edit_box VLDCL DXF1:缺省/当前值 VLDCL DXF2:数据类型,实数":REALn";整数":INTn";字符串无。实数和整数中的"n" 的的定义如下: n=1:小于零 n=2:等于零 n=4:大于零 n支持逻辑加。 =============================================================================================
============================================================================================= DCL 控件名:toggle VLDCL DXF0:toggle VLDCL DXF1:缺省/ 当前值;只能为0 或1 。否则自动定义为0 。 VLDCL DXF3:DXF1为0 时需要变灰的控件的列表。 =============================================================================================
============================================================================================= DCL 控件名:radio_button / radio_row / radio_column / boxed_radio_row / boxed_radio_column VLDCL DXF0:radio VLDCL DXF1:缺省/ 当前值;必须是DXF2列表中的一个,否则自动取DXF2列表中第一个。 VLDCL DXF2:同组所有radio_button的Key值列表。 VLDCL DXF3:选定特定Key时需要变灰的控件的列表。格式为一个表的列表。 子表格式中第一个为选定的radio_button的Key值,后面为选定后需要变灰的控件的列表。 =============================================================================================
============================================================================================= DCL 控件名:button VLDCL DXF0:button VLDCL DXF1:Done_dialog ID值,如果对话框不关闭(嵌套对话框),为任意负整数 暂时关闭对话框(用户交互),为正整数。 整个程序中的Done_dialog ID正整数不可有重复! VLDCL DXF2:Done_Dialog后继函数,不支持变量的传递,建议定义成为一个没有参数的子函数,再在子函 数定义中执行所有的需要参数传递。 =============================================================================================
============================================================================================= DCL 控件名:image / image_button VLDCL DXF0:image VLDCL DXF1:Done_dialog ID值,如果对话框不关闭(嵌套对话框),为任意负整数 暂时关闭对话框(用户交互),为正整数。 整个程序中的Done_dialog ID正整数不可有重复! VLDCL DXF2:Done_Dialog后继函数,不支持变量的传递,建议定义成为一个没有参数的子函数,再在子函 数定义中执行所有的需要参数传递。 =============================================================================================
============================================================================================= DCL 控件名:list / popup_list VLDCL DXF0:list VLDCL DXF1:缺省/ 当前值;必须是小于DXF2列表长度的整数,否则自动取0。 VLDCL DXF2:需要在列表控件中显示的所有值的列表 VLDCL DXF3:选定特定列表内容时需要变灰的控件的列表。格式为一个表的列表。 子表格式中第一个为选定的列表内容值,后面为选定后需要变灰的控件的列表。 =============================================================================================
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-init ;;; 函数说明:装载对话框,准备初始化 ;;; 参 数 1 :[字符串] DCL文件名 ;;; 参 数 2 :[字符串] DCL文件中定义的需要打开的对话框名称 ;;; 返 回 值:[正整数] load_dialog ID值,全局变量*DCLID* ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-get-value ;;; 函数说明:从*DCL-DATA*中读取指定key的指定DXF代码值 ;;; 参 数 1 :[字符串] 控件key值 ;;; 参 数 2 :[整 数] DXF代码值 ;;; 返 回 值:[ ANY ] 保存在*DCL-DATA*中的的特定值 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-put-value ;;; 函数说明:向*DCL-DATA*中保存指定key的指定DXF代码值 ;;; 参 数 1 :[字符串] 控件key值 ;;; 参 数 2 :[整 数] DXF代码值 ;;; 参 数 3 :[ ANY ] 相应DXF代码值的保存值 ;;; 返 回 值:[ ANY ] 更新后的*DCL-DATA* ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-action ;;; 函数说明:执行指定控件的缺省操控函数 ;;; 参 数 1 :[字符串] 控件key值 ;;; 返 回 值:[ ANY ] 无 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-editbox-real ;;; 函数说明:在edit_box中执行实数输入的操控函数 ;;; 参 数 1 :[字符串] 控件key值 ;;; 参 数 2 :[字符串] 当前控件内保存的数据值 ;;; 参 数 3 :[字符串] 控件实数类型标志 ;;; 返 回 值:[ ANY ] 如果[参数2]合法有效,更新*DCL-DATA*,否则显示*DCL-DATA*中保存的数据 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-editbox-int ;;; 函数说明:在edit_box中执行整数输入的操控函数 ;;; 参 数 1 :[字符串] 控件key值 ;;; 参 数 2 :[字符串] 当前控件内保存的数据值 ;;; 参 数 3 :[字符串] 控件整数类型标志 ;;; 返 回 值:[ ANY ] 如果[参数2]合法有效,更新*DCL-DATA*,否则显示*DCL-DATA*中保存的数据 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-editbox-string ;;; 函数说明:在edit_box中执行字符串输入的操控函数 ;;; 参 数 1 :[字符串] 控件key值 ;;; 参 数 2 :[字符串] 当前控件内保存的数据值 ;;; 返 回 值:[ ANY ] 更新*DCL-DATA* ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-toggle ;;; 函数说明:toggle的标准操控函数 ;;; 参 数 1 :[字符串] 控件key值 ;;; 参 数 2 :[字符串] 控件当前值 ;;; 返 回 值:[ ANY ] 更新*DCL-DATA*,如果有变灰控件的定义,执行相应控件的变灰。 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-radio ;;; 函数说明:radio_button控件的标准操控函数 ;;; 参 数 1 :[字符串] 上级radio_column/row控件key值 ;;; 参 数 2 :[字符串] 控件key值 ;;; 返 回 值:[ ANY ] 更新*DCL-DATA*,如果有变灰控件的定义,执行相应控件的变灰。 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-radioaction ;;; 函数说明:检查并运行radio_button父级控件的标准操控函数 ;;; 参 数 1 :[字符串] 上级radio_column/row控件key值 ;;; 参 数 2 :[字符串] radio_button控件key值 ;;; 返 回 值:[ ANY ] 更新*DCL-DATA*,如果有变灰控件的定义,执行相应控件的变灰。 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-graytiles ;;; 函数说明:执行指定控件的变灰操作 ;;; 参 数 1 :[字符串] 控件key值 ;;; 参 数 2 :[字符串] 控件当前值 ;;; 返 回 值:[ ANY ] 如果有变灰控件的定义,执行相应控件的变灰。 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-list ;;; 函数说明:list_box,popup_list控件的标准操控函数 ;;; 参 数 1 :[字符串] 控件key值 ;;; 参 数 2 :[字符串] 控件当前值 ;;; 返 回 值:[ ANY ] 更新*DCL-DATA*,如果有变灰控件的定义,执行相应控件的变灰。 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-slider ;;; 函数说明:slider控件的标准操控函数 ;;; 参 数 1 :[字符串] 控件key值 ;;; 参 数 2 :[字符串] 控件当前值 ;;; 返 回 值:[ ANY ] 更新*DCL-DATA*,如果有变灰控件的定义,执行相应控件的变灰。 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-text ;;; 函数说明:text,error,text_part控件的标准操控函数 ;;; 参 数 1 :[字符串] 控件key值 ;;; 参 数 2 :[字符串] 控件当前值 ;;; 返 回 值:[ ANY ] 更新*DCL-DATA*,如果有变灰控件的定义,执行相应控件的变灰。 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-settile ;;; 函数说明:读取*DCL-DATA*并设定相应的控件 ;;; 返 回 值:[ ANY ] 无 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-donedialog ;;; 函数说明:对话框的done_dialog操控函数 ;;; 参 数 1 :[字符串] 对话框名称 ;;; 参 数 2 :[字符串] 当前done_dialog值 ;;; 返 回 值:[ ANY ] 无 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-subdialog ;;; 函数说明:点取指定控件,进入嵌套对话框的操控函数 ;;; 参 数 1 :[字符串] 控件key值 ;;; 参 数 2 :[字符串] 嵌套的下一级对话框名称 ;;; 返 回 值:[ ANY ] 嵌套的下一级对话框打开并自动初始化 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-module ;;; 函数说明:VLDCL主模块函数 ;;; 返 回 值:[ ANY ] 对话框自动出现并初始化 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-image-fill-color ;;; 函数说明:在image,image_button中填充指定ACI颜色 ;;; 参 数 1 :[字符串] 控件Key值 ;;; 参 数 2 :[字符串] ACI颜色整数值 ;;; 返 回 值:[ ANY ] 无 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 公用函数:vldcl-image-fill-slide ;;; 函数说明:在image,image_button中显示指定的幻灯片 ;;; 参 数 1 :[字符串] 控件Key值 ;;; 参 数 2 :[字符串] 幻灯片文件名或在幻灯片库中幻灯名 ;;; 返 回 值:[ ANY ] 无 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; 模板程序:c:vldcl-template ;;; 函数说明:VLDCL主模块函数 ;;; 返 回 值:[ ANY ] 对话框自动出现并初始化 ;;; [ NIL ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|