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…等等,所以有了类,我们就可以使用很短的时间创造出相似功能的对象,极大的提高了代码的重复利用率,同时也就是精简了代码行数
发布者:admin,转转请注明出处:http://www.yc00.com/news/1702739280a1247395.html
评论列表(0条)