### ObjectDCL学习笔记(5):环境配置对话框ConfigTab的设计与调用 #### 一、概述 本文档作为ObjectDCL学习笔记系列的一部分,主要介绍了如何利用ObjectDCL来设计并调用AutoCAD中的自定义配置对话框(ConfigTab)。通过本章节的学习,读者将了解如何创建一个配置对话框,并对其进行编程以及调用。这不仅能够帮助用户更好地定制AutoCAD的工作环境,同时也是一种提高工作效率的有效方式。 #### 二、创建自己的配置对话框 ##### 1. 设计对话框 - **步骤**:首先启动ObjectDCL编辑器,在Projects菜单中选择“添加配置卡对话框(AddConfigTab)”来创建一个新的配置卡对话框。接下来按照以下要求布置控件: - 添加6个`Label`控件。 - 添加6个`TextBox`控件。 - 添加2个`PictureButton`控件。 - 添加1个`PictureBox`控件。 为了确保控件之间的布局协调性,不建议调整对话框的默认大小。 ##### 2. 设置对话框和控件的属性 - **对话框属性**:在对话框的属性页中,将`CfgTab`的值设置为“我的配置”,这里特意加入了空格以符合规范。 - **Label控件**:将6个`Label`控件的`Caption`属性分别设置为所需的文本。 - **TextBox控件**:将6个`TextBox`控件的字体属性设置为“宋体”,字号设置为10。 - **PictureButton控件**:将2个`PictureButton`控件的背景色属性设置为111,字体设置为“宋体”,字号设置为10,样式设置为“1-FlatButton”,并分别设置其`Caption`属性为“调入设置”和“保存设置”。 - **PictureBox控件**:在`PictureBox`控件中加载一张图片以美化界面。 完成以上步骤后,对话框应呈现出如图5.1所示的布局。 #### 三、给对话框的事件编程 ##### 1. 一个普通函数 为了实现从`acad.cfg`文件的`AppData`段中检索数据的功能,我们编写了一个通用函数`LoadAndSetMyConfigValue()`: ```lisp (defun LoadAndSetMyConfigValue () ; 从acad.cfg文件的AppData段中检索数据 (setq #ProName (getcfg "AppData/MyConfig/ProName") #MapNum (getcfg "AppData/MyConfig/MapNum") #CreDate (getcfg "AppData/MyConfig/CreDate") #Deviser (getcfg "AppData/MyConfig/Deviser") #Assessor (getcfg "AppData/MyConfig/Assessor") #Ratifier (getcfg "AppData/MyConfig/Ratifier") ) ; 将检索出的数据置于文本框中 (if (not #ProName) (setq #ProName "")) (Odcl_Control_SetProperty "MyConfig" "DclForm1" "TextBox1" "Text" #ProName) (if (not #MapNum) (setq #MapNum "")) (Odcl_Control_SetProperty "MyConfig" "DclForm1" "TextBox2" "Text" #MapNum) (if (not #CreDate) (setq #CreDate "")) (Odcl_Control_SetProperty "MyConfig" "DclForm1" "TextBox3" "Text" #CreDate) (if (not #Deviser) (setq #Deviser "")) (Odcl_Control_SetProperty "MyConfig" "DclForm1" "TextBox4" "Text" #Deviser) (if (not #Assessor) (setq #Assessor "")) (Odcl_Control_SetProperty "MyConfig" "DclForm1" "TextBox5" "Text" #Assessor) (if (not #Ratifier) (setq #Ratifier "")) (Odcl_Control_SetProperty "MyConfig" "DclForm1" "TextBox6" "Text" #Ratifier) ) ``` ##### 2. 对话框初始化函数 接下来,我们需要定义对话框初始化函数`DclForm1_OnInitialize()`,该函数将在对话框首次显示时被调用,其作用是从`acad.cfg`文件中加载数据并显示在相应的文本框中: ```lisp (defun :DclForm1_OnInitialize () (LoadAndSetMyConfigValue) ) ``` ##### 3. 处理PictureButton按钮控件 对于`PictureButton`控件,我们需要为其编写点击事件处理器。例如,我们可以编写一个名为`OnPBImportSettingClick`的函数来处理“调入设置”按钮的点击事件,以及另一个名为`OnPBSaveSettingClick`的函数来处理“保存设置”按钮的点击事件。这些函数的具体实现取决于具体的业务需求,但通常包括读取或写入配置文件的操作。 ### 四、总结 通过以上步骤,我们成功地创建了一个配置对话框,并实现了从`acad.cfg`文件中加载数据的功能。这种自定义配置对话框的能力使得用户可以根据个人或团队的需求更加灵活地配置AutoCAD的环境,从而提高工作效率。此外,通过编写适当的事件处理器,还可以进一步扩展对话框的功能,满足更多个性化的需求。
- 粉丝: 1
- 资源: 21
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助