• 这次主要来浅讲一下"类"这个功能,先上一下要实现的功能,建立设计外框加出血线和等分折页线,先上图

  • 那什么是类呢?类其实就是CLASS,用来封装成员参数和函数的,拆开来里面就是这些东西,那写起来其实也没有什么区别,那既然都是参数和函数,那类的出现有什么意义呢.那我想我还用一个比喻来说明

  • 如果把实现一个功能比喻成盖房子,那么参数DIM XX AS XX就相当于是材料,如沙,石,水,砼,钢,砖,工具等等, 那么函数subFunction就相当于是工人,如泥工木工钢工等等,那么想要盖好一座房子,就需要工人操作这些材料最后盖成一座房子

  • 如果说我们之前的工作是自己买材料和招募工人,那么今天所讲的类就相当于是建公司, 让类(公司)组织施工材料和工人. 有了公司之后,在需要房子的时候我们直接下指令呼唤类(公司), 然后下达第二条指令命令它盖房子,然后房子就盖好了.

  • 那么这中间有什么区吗,从结果上来看并没有区,结果上都实现了同一个功能,但是在实现的过程中有区别, 使用类的时候只需要面对类,否则就要一一面对每个个体, 就如同与公司合作的时候只要和公司领导结算, 否则就要和每个工人和材料都分别结算安排一次甚至很多次

  • 还有什么区别吗,也有的,自己招募的工人,在干完活以后不能直接辞退,还得养着他,自己买的工具也得占着一块地方一直留着备用. 但是使用公司的话若不需要时可以不养一人不留一地,只在用的时候把它们老总唤出来即可,因为类的创建是在堆区重新划了一块地给他,一般来说没有自动回收功能时是一直占着这块地的,但是VB是一种解释形语言会自动回收类

  • 不管怎么说类都是一种更高级更省心更整洁的用法,在不需要类的时候类并没有出生,没有占用空间,在需要的时候一次生出有所有的要素的对象,在使用完了之后一次性全部遣散,所以内部的要素保持了同样的寿命,有机地统一成整体

  • 下面我们开始创建类,先在空白处右键插入类模块

  • 然后修改类的名称

  • 接下来上类中的代码

Public gao, kuan As Double '设置高和宽为双精度小数
Public chuXue As Integer '出血值为整数
Public zheOrNot As Boolean '是否要折页
Public zheYe As Integer '折页的页数
Public ShuZhe As Boolean '是否要竖折
Public theShape As Shape '设置一个临时的形状Public Sub drawRect()  '画框CorelDRAW.ActivePage.SizeWidth = kuan + chuXue + chuXue  '改变画面宽CorelDRAW.ActivePage.SizeHeight = gao + chuXue + chuXue  '改变画面高Set theShape = CorelDRAW.ActiveLayer.CreateRectangle2(CorelDRAW.ActivePage.LeftX, CorelDRAW.ActivePage.BottomY, kuan + chuXue + chuXue, gao + chuXue + chuXue) '画个方框
End SubPublic Sub drawGuideLine()  '设置出血辅助线If chuXue > 0 Then  '只在出血值大于0时才执行With theShape  '使用with语句省略.前的对象ActiveDocument.MasterPage.GuidesLayer.CreateGuideAngle 0, .TopY - chuXue, 0#ActiveDocument.MasterPage.GuidesLayer.CreateGuideAngle 0, .BottomY + chuXue, 0#ActiveDocument.MasterPage.GuidesLayer.CreateGuideAngle .LeftX + chuXue, 0, 90#ActiveDocument.MasterPage.GuidesLayer.CreateGuideAngle .RightX - chuXue, 0, 90#End WithEnd If
End SubPublic Sub drawZheYe()  '画折页线On Error GoTo cuowuIf ShuZhe Then    '如果是竖折时执行以下语句Dim shapeHeight As Double: shapeHeight = (theShape.SizeHeight - chuXue * 2) / zheYeDim myShapeY As Double: myShapeY = theShape.BottomY + chuXueFor I = 0 To zheYeCorelDRAW.ActiveDocument.MasterPage.GuidesLayer.CreateGuideAngle 0, (myShapeY + shapeHeight * I), 0#Next IElse        '如果是横折时执行以下语句Dim shapeWidth As Double: shapeWidth = (theShape.SizeWidth - chuXue * 2) / zheYeDim myShapeX As Double: myShapeX = theShape.LeftX + chuXueFor I = 0 To zheYeCorelDRAW.ActiveDocument.MasterPage.GuidesLayer.CreateGuideAngle (myShapeX + shapeWidth * I), 0, 90#Next IEnd Ifcuowu:Select Case Err.NumberCase 91:MsgBox "没有选中对象"End SelectEnd Sub
  • 我们可以看到所有类的成员前面都多了一个Public修饰符,那么这个Public 符号就是表示它可以从类外面进行访问,如果这个public改成private那么就变成私有, 从外面无法访问而只能从内部函数进行访问了,我们就不需要搞得这么复杂,全部用public就可以了, 前面的六行就是成员参数,我们可以看到后面的所有的函数中都使用了这些相同的参数, 而我们知道函数是无法控制函数外参数的生命周期的,况且同时有好几个函数都要访问,那么这种把多个外参和多个函数绑在一起使用的方法就取名为类

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

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

    在上一节中已经建立好了类,那么这一节我们来调用它,先建立一个面板 然后修改框体名称 然后从左侧新建一些按钮并且以拼音为结尾进行命名 Private Sub CheckBox2_zheYe_Click( ...

  2. CorelDRAWX4的VBA插件开发(三十四)调用C++实现一键智能群组(第3节)主调函数以及三个被调函数

    这一节就进入到了群组的实质性的内容,先把群组Qunzu()函数展示一下 先展示主调函数Qunzu(),函数里面还有四个被调函数等会儿再说 BOOL Qunzu() {//undo开 这个是一键多步撤销 ...

  3. CorelDRAWX4的VBA插件开发(二十四)复合选框组件与联合命名面板

    我们在处理文档的时候碰上的最多的问题就是与字符串相当的问题,这里再拿出来单把各种使用命名的小组件讲一下,我们先上效果图: 我们可以在上图看到最终结果,可以让一行文件名跟随各种组件进行更改,下下面我们先 ...

  4. CorelDRAWX4的VBA插件开发(二十五)多类目选择实现复合框内容置换

    有时候我们的复合框内的内容是有更多的需求,但是我们又不想另开一个窗口,怎么办呢,我们直接使用复合框内容替换就行啦 先上效果图: 先在面第板上拉出一个框架, 再在里面添加上三个选项按钮, 添加好之后这三 ...

  5. CorelDRAWX4的VBA插件开发(三十五)调用C++实现一键智能群组(第4节)递归调用框选工具

    上一节没有讲到的递归函数diguiSelect,这一单独列出来讲一下 INT diguiSelect(long count, DOUBLE LX, DOUBLE BY, DOUBLE RX, DOUB ...

  6. CorelDRAWX4的VBA插件开发(四) 用一个例子了解CORELDRAW-X4的四个基本对象

    CorelDRAWX4的VBA插件开发(四) 用一个例子了解CORELDRAW-X4的四个基本对象 1.打开第一章的界面如下图: 2.把之前的代码稍作修改 Sub 第一个插件()Dim zongShu ...

  7. [系统安全] 四十四.APT系列(9)Metasploit技术之基础用法万字详解及防御机理

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  8. 1977-2021 高考四十四年,哪一张照片是属于你的记忆(珍贵!)

    1977-2019 四十四年高考 一个国家命运的拐点 千百万个人生的转折 1977 四十四年     四十四图 1977年12月10日的高考, 是中国历史上唯一的一次冬季高考. 这一天,570多万从农 ...

  9. 轰动众多国际电影节的著名电影短片《车四十四》

    查看地址:http://www.ku6.com/show/RFcjaMtajp-9OfLe.html 近两年,在网上的很多论坛都出现了"女司机被强奸"和"漂亮女司机&qu ...

最新文章

  1. R语言可视化包ggplot2包调整线条粗细实战(Adjust Line Thickness)
  2. [Oracle] 数据排重
  3. 在应用环境中如何构造最优的数据库模式
  4. MySQL引擎之MyISAM,InnoDB,Btree与B+tree
  5. DNN:windows使用 YOLO V1,V2
  6. 孙叫兽进阶之路之Gitlab的使用(图文教程)
  7. List集合多线程并发条件下不安全,如何解决?
  8. android居中不父布局,在父级中,TextView不会垂直居中_android_开发99编程知识库
  9. 找回 linux root密码的几种方法
  10. #6281. 数列分块入门 5
  11. Windows命令行优美化:FluentTerminal安装与配置
  12. JAVAWEB NOTE 3
  13. 【Books系列】2022年:《拼职场》读书笔记
  14. 技术干货 | 如何用MindSpore优化器加速收敛高度逼近最优值?
  15. 多维尺度变换(multidimensional scaling, MDS)
  16. C语言基本的语法规定
  17. js折线图设置y轴刻度_d3.js实现自定义多y轴折线图
  18. 手游联运平台是怎样开发的?
  19. PS、Excel快捷键桌面壁纸
  20. css图片不断放大缩小的动画效果

热门文章

  1. 红外测温相关背景知识与原理
  2. 下载b站视频以及视频剪辑软件推荐
  3. 24岁生日礼物,感谢所有人
  4. springboot集成支付宝沙箱支付
  5. RTX3090 与GTX1080Ti Tensorflow1.15训练YOLOv3对比
  6. ps切图后 JAVA开发_photoshop操作之前端PS操作切图和合并sprite
  7. 一行代码教你帮室友戒网瘾
  8. 互联网晚报 | 9月13日 星期二 | 苹果iOS16系统上线;苹果官网首批98元挂绳卖光;六成多受访者称有被大数据“杀熟”经历...
  9. Ubuntu之操作系统安装
  10. Unity3D-实习总结