当前位置: 首页 > 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…等等,所以有了类,我们就可以使用很短的时间创造出相似功能的对象,极大的提高了代码的重复利用率,同时也就是精简了代码行数

相关文章:

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

在上一节中已经建立好了类,那么这一节我们来调用它,先建立一个面板 然后修改框体名称 然后从左侧新建一些按钮并且以拼音为结尾进行命名 Private Sub CheckBox2_zheYe_Click() 鼠标按下几折页单选时触发If Me.CheckBox2_zheYe ThenMe.TextBox3_zheYeShu.Enabled True 让右…...

我的十年编程路 2017年篇

2016和2017&#xff0c;这两年是我飞速发展的两年。一方面是技术、工作能力&#xff0c;另一方面是对人生的思考。 随着技术能力的不断提升&#xff0c;博客也随之更新。在2017年伊始&#xff0c;我收到了CSDN学院的讲师邀请函。没错&#xff0c;那个时候我就有机会做视频课了…...

hadoop有多个输入路径怎么处理

在Hadoop中&#xff0c;可以使用FileInputFormat的addInputPath方法来添加多个输入路径。以下是实现步骤&#xff1a;创建一个Job对象&#xff0c;并设置相关的参数和配置信息。调用FileInputFormat的addInputPath方法添加输入路径。例如&#xff1a;FileInputFormat.addInputP…...

day6 ServletContext

ServletContext 一个Servlet对象对应一个ServletConfig。100个Servlet对象则对应100个ServletConfig对象。 只要在同一个webapp当中&#xff0c;只要在同一个应用当中&#xff0c;所有的Servlet对象都是共享同一个ServletContext对象的。 ServletContext对象在服务器启动阶段…...

Dockerfile部署SpringBoot项目

Dockerfile部署SpringBoot项目 文章目录 利用Dockerfile部署SpringBoot项目 1、创建一个SpringBooot项目并且打成jar包2、在Linux中创建一个文件夹&#xff0c;来做docker测试3、将jar包上传到Linux中4、编写Dockerfile文件5、制作镜像6、启动容器7、查看容器启动日志8、访问接…...

Java面向对象特征之三:多态

一&#xff1a;面向对象三大特征之三&#xff1a;多态 1.多态是什么&#xff1f; 同类型的对象&#xff0c;执行同一个行为&#xff0c;会表现出不同的行为特征。 比如&#xff1a;猫和狗都是动物类型&#xff0c;执行同一个行为&#xff0c;但是会表现出不同的行为特征&…...

基于ATX自动化测试解决方案

在整车开发中&#xff0c;诊断功能实现后需要进行测试验证。测试验证主要分为两个方面&#xff1a;诊断协议层测试和诊断功能测试。诊断协议层测试&#xff1a;需要对服务层服务定义、传输层相关时间参数进行测试验证&#xff1b;诊断功能测试&#xff1a;需要对各诊断功能项&a…...

Qt学习5-Qt Creator文件操作(哔站视频学习记录)

实现文件编辑器代码 目录 一、代码要点 二、重点函数 1、conncet 2、getOpenFileName 3、getSaveFileName 4、读取文件到textEdit 5、textEdit保存到文件 三、全部代码 mainwindow.h mainwindow.cpp 一、代码要点 MainWindow的菜单栏实现&#xff1b;connect函数连接…...

LeetCode15三数之和 容易理解版本

题目&#xff1a; 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三…...

Spring Boot 3.0系列【11】核心特性篇之国际化

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言基础知识国际化简介浏览器语言LocaleMessageSourceMessageSourcePropertiesLocaleResolver案例演示案例一:后台消息国…...

每日学术速递3.7

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Dropout Reduces Underfitting 标题&#xff1a;Dropout 减少欠拟合 作者&#xff1a;Zhuang Liu, Zhiqiu Xu, Joseph Jin, Zhiqiang Shen, Trevor Darrel 文章链接&#xff1a;h…...

灯具照明行业MES系统,助力企业实现数字化转型

灯具照明行业在制造领域&#xff0c;是典型的高科技离散生产制造模式&#xff0c;大部分企业都设置&#xff1a;电源组件、光源组件、或光电一体组件 &#xff0c;工艺以SMT、DIP等。 灯罩主要采用吸塑工艺及模具加工&#xff1b;其它金属的面盖、灯体、灯盒基本都是采用压铸、…...

超实用!JavaScript修改CSS变量,达到动态修改样式的目的

在网页开发中&#xff0c;我们通常使用CSS来设置网页的样式。但是&#xff0c;在开发过程中&#xff0c;有时候我们需要根据不同的条件来动态修改样式&#xff0c;这时候就需要使用JavaScript来实现。 在CSS中&#xff0c;有一种变量的概念&#xff0c;可以使用变量来定义颜色…...

解决Vue3 默认槽的非函数值 - Non-function value encountered for default slot 的警告

解决警告⚠️&#xff1a;[Vue warn]: Non-function value encountered for default slot. Prefer function slots for better performance. h函数的第三个参数加上箭头函数 原因分析&#xff1a; 一般 第三个参数如果不是默认插槽的话 就是当作children传下去&#xff0c;…...

【Git】P2 分支(创建分支,合并分支,分支冲突,分支分类)

分支分支的概念2077 与 分支git - 分支分支语句查看与创建分支切换与删除分支合并分支分支冲突分支分类分支的概念 什么是分支&#xff1f; 2077 与 分支 我最喜欢的游戏就是 赛博朋克2077&#xff0c;美国末日 和 GTA&#xff0c;下图是2077的存档。 存档非常多的原因是因为…...

2023年全国最新交安安全员精选真题及答案14

百分百题库提供交安安全员考试试题、交安安全员考试预测题、交安安全员考试真题、交安安全员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 41.事故隐患泛指生产系统中可导致事故发生的&#xff08;&#xff09; A.人的不…...

Air101|Air103|Air105|Air780E|ESP32C3|ESP32S3|Air32F103开发板:概述及PinOut

内容均引自合宙官方wiki&#xff0c;详细内容请参考&#xff1a; &#xff1a;LuatOS 文档 。 1、合宙Air101&#xff08;芯片及开发板&#xff09; 合宙Air101是一款QFN32 封装&#xff0c;4mm x 4mm 大小的mcu。通用串口波特率&#xff0c;设置波特率为921600。 固件编译可…...

【代码随想录训练营】【Day35】第八章|贪心算法|860.柠檬水找零|406.根据身高重建队列|452. 用最少数量的箭引爆气球

柠檬水找零 题目详细&#xff1a;LeetCode.860 一道非常简单的模拟题&#xff0c;根据题目要求编写程序即可&#xff1a; Java解法&#xff08;模拟&#xff09;&#xff1a; class Solution {public boolean lemonadeChange(int[] bills) {int money_5 0, money_10 0;fo…...

嵌入式C基础知识(23)

常用C/C代码规范头文件的保护所有的头文件都应该使用#define来避免多次引用&#xff0c;符号格式为&#xff1a;<PROJECT>_<PATH>_<FILE>_H_例如头文件&#xff1a;foo/src/bar/baz.h#ifndef FOO_BAR_BAZ_H_#define FOO_BAR_BAZ_H_...#endif // FOO_BAR_BAZ_…...

一文掌握组织项目等级划分维度,标准和实例

当你遇到多项目怎么管&#xff1f;遇到项目之间的冲突怎么解决&#xff1f;很多公司没有项目优先级的划分&#xff0c;会对企业造成很多严重的问题。首先&#xff0c;会造成不合理的资源分配&#xff1a;缺少项目优先级的情况下&#xff0c;很难确定哪些项目是最重要的&#xf…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...

Visual Studio Code 扩展

Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后&#xff0c;命令 changeCase.commands 可预览转换效果 EmmyLua…...

Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解

文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一&#xff1a;HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二&#xff1a;Floyd 快慢指针法&#xff08;…...

《Offer来了:Java面试核心知识点精讲》大纲

文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...

算法—栈系列

一&#xff1a;删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...