当前位置: 首页 > news >正文

CorelDRAWX4的VBA插件开发(四十五)建立类(2)汇总相似功能简化重复代码:一键建立设计外框加出血线和等分折页线

  • 在上一节中已经建立好了类,那么这一节我们来调用它,先建立一个面板
    在这里插入图片描述
  • 然后修改框体名称
    在这里插入图片描述
  • 然后从左侧新建一些按钮并且以拼音为结尾进行命名
    在这里插入图片描述
Private Sub CheckBox2_zheYe_Click() '鼠标按下几折页单选时触发If Me.CheckBox2_zheYe ThenMe.TextBox3_zheYeShu.Enabled = True   '让右侧方框有效Me.TextBox3_zheYeShu.BackColor = &HFFFFFF	'让右侧方框变白ElseMe.TextBox3_zheYeShu.Enabled = False	'让右侧方框无效Me.TextBox3_zheYeShu.BackColor = &HCCCCCC	'让右侧方框变灰End If
End SubPrivate Sub UserForm_Initialize()	'面板初始化函数Me.OptionButton5_none.Value = TrueMe.TextBox3_zheYeShu.Enabled = False	'让右侧方框无效Me.TextBox3_zheYeShu.BackColor = &HCCCCCC	'让右侧方框变灰
End SubPrivate Sub CommandButton1_shengCheng_Click()  '按下生成按钮触发Dim a As uniformSize	'设变量a为类的类型Set a = New uniformSize	'创建uniformSize的对象If Me.TextBox1_kuan.Value <> "" Thena.kuan = Me.TextBox1_kuan.Value '给a中的kuan赋值ElseMsgBox "未输入宽度"GoTo cuowuEnd IfIf Me.TextBox2_gao.Value <> "" Thena.gao = Me.TextBox2_gao.Value	'给a中的gao赋值ElseMsgBox "未输入高度"GoTo cuowuEnd If'给出血赋值If Me.OptionButton5_none.Value Thena.chuXue = 0ElseIf Me.OptionButton1.Value Thena.chuXue = 1ElseIf Me.OptionButton3.Value Thena.chuXue = 2ElseIf Me.OptionButton4.Value Thena.chuXue = 3End Ifa.zheOrNot = Me.CheckBox2_zheYe  '检测是否要折页If a.zheOrNot Thena.zheYe = Me.TextBox3_zheYeShu.Value '给折页数赋值End Ifa.ShuZhe = Me.CheckBox3_shuZhe.Value	'检测是否要竖折Unload Me	'卸载并关闭这个面板,因为这个面板的作用已经达到,这里的Me用面板名称替代也可以On Error GoTo cuowuCorelDRAW.Optimization = TrueCorelDRAW.ActiveDocument.BeginCommandGroupCorelDRAW.ActiveDocument.Unit = cdrMillimetera.drawRect	'执行画框函数a.drawGuideLine	'执行辅助线函数If a.zheOrNot Then	'如果勾选了折页a.drawZheYe	'执行折页线函数End Ifset a = nothing  '手动回收对象acuowu:CorelDRAW.ActiveDocument.EndCommandGroupCorelDRAW.Optimization = FalseCorelDRAW.Refresh
End Sub
  • 好了,调用的函数也已经弄好了,这里回收的时候用了set a = nothing,直接回收这个对象,可以看到我们在这里的调用当中全部面向的是a对象,这就叫面向对象编程,换句话说就是面向类(公司)编程,可以把各种功能全都做成各种类(公司),当然了,VB中的类不支持向构造函数中传参,所以也不存在重构函数,它的类只能是有一个固定功能,所以看到这里关于类的另一个好处也是显而易见的,那就是a只是我们创造的对象之一,那么我们还可以同时构造出相同的Set b = New uniformSize,c,d…等等,所以有了类,我们就可以使用很短的时间创造出相似功能的对象,极大的提高了代码的重复利用率,同时也就是精简了代码行数
http://www.lryc.cn/news/32686.html

相关文章:

  • 我的十年编程路 2017年篇
  • hadoop有多个输入路径怎么处理
  • day6 ServletContext
  • Dockerfile部署SpringBoot项目
  • Java面向对象特征之三:多态
  • 基于ATX自动化测试解决方案
  • Qt学习5-Qt Creator文件操作(哔站视频学习记录)
  • LeetCode15三数之和 容易理解版本
  • Spring Boot 3.0系列【11】核心特性篇之国际化
  • 每日学术速递3.7
  • 灯具照明行业MES系统,助力企业实现数字化转型
  • 超实用!JavaScript修改CSS变量,达到动态修改样式的目的
  • 解决Vue3 默认槽的非函数值 - Non-function value encountered for default slot 的警告
  • 【Git】P2 分支(创建分支,合并分支,分支冲突,分支分类)
  • 2023年全国最新交安安全员精选真题及答案14
  • Air101|Air103|Air105|Air780E|ESP32C3|ESP32S3|Air32F103开发板:概述及PinOut
  • 【代码随想录训练营】【Day35】第八章|贪心算法|860.柠檬水找零|406.根据身高重建队列|452. 用最少数量的箭引爆气球
  • 嵌入式C基础知识(23)
  • 一文掌握组织项目等级划分维度,标准和实例
  • 【C++】list的使用和基本迭代器框架的实现 vs和g++下string结构的说明
  • 基于深度学习的轴承寿命预测实践,开发CNN、融合LSTM/GRU/ATTENTION
  • redis进阶:mysql,redis双写一致性,数据库更新后再删除缓存就够了吗?
  • RTOS中互斥量的原理以及应用
  • 数据分析:基于随机森林(RFC)对酒店预订分析预测
  • 【python】序列(列表、元组)、字典、集合的初步认识
  • 周赛335(模拟、质因子分解、分组背包)
  • 【极致简洁】Python tkinter 实现下载工具,你想要的一键获取
  • npm i 安装报错
  • 原腾讯QQ空间负责人,T13专家,黄希彤被爆近期被裁员,裁员原因令人唏嘘。。...
  • 【C++】BloomFilter——布隆过滤器