VB编程经验点滴

【Codesys】-扫描添加失败,手动添加第三方模块,真·DC模式的高速计数模块 欧姆龙耦合器(NX-ECC201)和高速计数模块(NX-EC0132)单独使用。扫描设备添加到Codesys中,会报错,无法自动添加。记录一下,以防忘记。高速的计数保证了位置的准确性,位置准确就能保证裁切的精度,一切的基础就在这儿了,奈何目前只有欧姆龙和倍福能做到这样的波形。 阅读详情
---- 欣 喜 看 到VB 编 程 人 和 爱 好 者 的 阵 营 越 来 越 大 了, 而 现 在VB6 也 已 经 横 空 出 世 了, 在 这 里 献 上 自 己 的 一 点VB5 编 程 的 小 经 验, 权 当 和 广 大 朋 友 交 流 交 流, 不 妥 之 处 多 多 指 教。

---- 1. 在 打 开 对 话 框 中 同 时 显 示 多 种 类 型 的 文 件

---- 在 打 开 文 件 时, 我 们 往 往 会 用 到 打 开 对 话 框CommonDialog, 要 把 文 件 类 型 限 制 在 一 定 的 范 围 内 得 用CommonDialog 的Filter 属 性, 比 如 将Filter 属 性 设 置 为"*.TXT|*.TXT" 那 么 打 开 对 话 框 只 显 示 文 本 文 件。 如 果 要 同 时 显 示 几 种 类 型 的 文 件, 比 如 要 显 示 所 有 的 图 形 文 件, 其 设 置 方 法 为 将Filter 属 性 设 置 为" 图 片 文 件|*.bmp;*.jpg;*.gif", 这 样 打 开 对 话 框 便 能 同 时 显 示bmp 文 件,jpg 文 件,gif 文 件。 这 个 问 题 似 乎 很 简 单, 可 笔 者 曾 经 为 这 个 问 题 查 阅 了 大 量 关 于VB 的 书 籍, 但 是 都 未 找 到。

---- 2. 注 意 最 后 编 译 的 问 题

---- 如 果 编 程 中 用 到 数 据 库 控 件, 在 最 后 编 译 时, 一 定 要 注 意 数 据 库 控 件 的Datebase 属 性, 否 则 会 在 制 作 安 装 盘, 装 到 其 它 机 子 上 时 遇 到 问 题。 原 因 是Datebase 属 性 中 存 在 的 路 径 问 题。 编 译 前 得 将 其 路 径 设 置 为 当 前 路 径。 如 果 用 的 是ACCESS 数 据 库, 将Datebase 属 性 中 的 路 径 信 息 去 掉 便 可 以 了, 比 如, 原 先 为"C:/money/money.mdb", 则 改 为"money.mdb"。 如 果 是FOXPRO 数 据, 将Datebase 属 性 改 为"." 便 可 以 了,"." 就 代 表 当 前 目 录。 比 如, 原 先 为"C:/money", 改 为"." 便 可 以 了。 用 其 它 数 据 库 的 数 据 的 方 法 差 不 多。 当 然 制 作 安 装 盘 时 得 把 用 到 的 数 据 文 件 添 加 进 去, 这 里 不 在 详 叙。

---- 3. 在 程 序 中 调 用 其 它 程 序

---- 在DOS 下 大 家 知 道 可 以 用system() 函 数 来 调 用 其 它 的 可 执 行 文 件, 那 么 在WINDOWS 下 怎 么 去 调 用 其 它 的 软 件 呢? 其 实 在WINDOWS 的API 中 就 有 这 样 的 函 数。 函 数 说 明 如 下:

UINT WinExec(
LPCSTR lpszCmdLine, // 命令行地址
UINT fuCmdShow //刚打开时的窗口类型
);

---- 在 使 用 时 要 加 如 下 声 明:

Private Declare Function WinExec Lib "kernel32"
(ByVal lpCmdLine As String,
ByVal nCmdShow As Long) As Long

---- 如 果 想 在 程 序 中 调 用Windows 中 自 带 的 计 算 器, 用 下 面 的 代 码 即 可 实 现:

WinExec "c:/windows/calc.exe", 10

---- 参 数10 使 启 动 的 窗 口 处 于 缺 省 状 态, 若 使 用3 使 启 动 的 窗 口 最 大 化, 若 使 用6 使 启 动 的 窗 口 最 小 化。 实 际 上 许 多 商 用 软 件 的 计 算 器 都 是 这 样 直 接 调 用Windows 自 带 的 计 算 器 的。

---- 4. 输 入 数 据 的 合 法 性 检 测

---- 一 个 软 件 经 常 需 要 用 户 输 入 一 些 数 据, 而 这 些 数 据 往 往 需 要 一 定 格 式, 比 如 输 入 的 是 一 个 整 形, 或 是 一 个 日 期 等, 这 样 作 为 软 件 的 设 计 者 必 须 想 到 用 户 出 错 的 可 能 性, 在 用 户 出 错 时 给 予 提 示 和 纠 正。 只 有 这 样 你 的 程 序 才 是 一 个 好 程 序。 在VB 编 程 中 数 据 的 合 法 性 检 测 有 很 多 的 方 法, 比 如 你 可 以 利 用 一 些 函 数 来 检 测 数 据 的 合 法 性,IsDate 就 可 以 用 于 检 测 日 期 型 的 数 据。 笔 者 发 现 只 要 巧 妙 地 应 用VB 中 的 错 误 陷 阱 技 术 和VB 的 不 同 类 型 数 据 间 的 自 动 转 换 功 能 就 能 很 好 地 实 现 数 据 的 合 法 性 检 测, 编 程 简 单 而 且 效 果 很 好, 能 检 测 各 种 类 型 的 数 据。

---- 通 常 输 入 的 如 果 是 字 符 串 就 不 需 要 检 测, 但 如 果 要 求 输 入 的 是 整 形 或 货 币 形 等 就 必 须 进 行 一 定 的 检 测。 下 面 就 先 讲 一 下 整 形 的 检 测。 比 如 现 有 一 文 本 框(Text1), 要 求 输 入 的 是 一 个 整 数, 我 们 可 以 在 它 的LostFocus 事 件 中 进 行 检 测, 代 码 如 下:

Private Sub Text1_LostFocus()
Dim i As Integer '定义一个整形i
On Error GoTo ERROR1
'设置错误陷阱,如果Text1.Text不是整数跳到ERROR1
i = Text1.Text
'这里可以做其它处理
Exit Sub
ERROR1:
MsgBox ("请输入一个整数")
Text1.SetFocus
End Sub

---- 这 样 就 可 以 实 现 合 法 性 检 测 了, 如 果 要 的 是 浮 点 就 将i 定 义 成 浮 点 就 可 以 了, 即:

Private Sub Text1_LostFocus()
Dim i As Single
On Error GoTo ERROR1
i = Text1.Text
Exit Sub
ERROR1:
MsgBox ("请输入一个单精度浮点数")
Text1.SetFocus
End Sub

---- 同 理, 如 果 要 的 是 日 期 就 将i 定 义 成 日 期 就 可 以 了, 就 是 说, 要 什 么 样 的 数 据 就 将i 定 义 成 什 么 样 的 数 据 类 型 就 可 以 了。

---- 当 然 你 不 一 定 要 在LostFocus 事 件 中 对 数 据 的 合 法 性 进 行 检 测, 如 果 是 制 作 数 据 库 应 用 程 序 完 全 可 以 在 数 据 被 添 加 到 数 据 库 之 前 再 对 数 据 进 行 检 测, 这 样 对 用 户 将 更 加 方 便。

---- 5. 窗 体 以 外 光 标 位 置 的 探 测 和 设 置

---- 用VB 编 程 时 想 获 得 窗 体 上 的 光 标 位 置 很 容 易, 用MouseMove 事 件 的 参 数 就 可 得 到 光 标 在 窗 体 上 的 位 置。 然 而, 如 果 想 得 到 窗 体 以 外 的 光 标 位 置 或 想 在 程 序 中 设 置 光 标 位 置, 那 么 则 只 好 求 助 于API 了, 还 好, 这 几 个API 函 数 非 常 简 单, 即 使 刚 接 触 编 程 的 朋 友 也 能 学 会 使 用。 这 里 笔 者 做 一 个 简 单 的 介 绍, 希 望 和 大 家 共 享 使 用API 的 乐 趣。

---- 先 介 绍 一 下 有 关 的API 的 结 构 和 函 数, 首 先 看 一 下 获 得 光 标 位 置 的 这 个 函 数, 其 声 明 如 下:

BOOL GetCursorPos(
LPPOINT lpPoint
//指向POINT结构的指针,其中包含所获的光标的位置信息
);
再来看一下POINT的结构:
typedef struct tagPOINT { // pt
LONG x;
LONG y;
} POINT;
真是非常简单,最后看一下设置光标位置的函数:
BOOL SetCursorPos(
int X, //要设置位置在屏幕上的横坐标
int Y //要设置位置在屏幕上的纵坐标
);

---- 在VB 中 使 用API 就 需 要 一 定 的 说 明 了, 还 好VB 提 供 了 一 个"API 文 本 查 看 器", 你 只 要 将 所 要 用 的API 的 声 明 复 制 一 下 就 可 以 用 了。 我 们 来 做 一 个 简 单 的 例 子 来 试 一 试。 先 建 立 一 个 项 目, 往 窗 体(Form1) 上 放 置 两 个TextBox 控 件(Text1 和Text2), 一 个CommandButton 控 件(Command1) 和 一 个Timer 控 件(Timer1)。 将Timer1 的Interval 属 性 改 为1000。 这 个 例 子 的 功 能 是 每 隔 一 秒 钟 在Text1 和Text2 中 显 示 光 标 的 位 置 坐 标, 按Command1 按 钮 光 标 将 按 一 定 的 规 律 在 屏 幕 上 漂 移。 所 有 的 代 码 如 下:

Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetCursorPos
Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function SetCursorPos
Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
'以上为API及数据结构的声明

Private Sub Command1_Click()
Dim i As Integer
Dim j As Integer
For i = 0 To Screen.Width
SetCursorPos i, 100 '设置光标位置
For j = 0 To 1000 '循环延时
Next j
Next i
End Sub

Private Sub Timer1_Timer()
Dim point1 As POINTAPI
GetCursorPos point1 '获得光标位置
Text1.Text = point1.x '显示光标位置X
Text2.Text = point1.y '显示光标位置Y
End Sub

---- 输 入 完 毕 后 存 盘 运 行 就 行 了, 可 以 发 现 在VB 中 是 很 容 易 实 现 的。

---- 6.Windows 各 种 路 径 的 获 得

---- 在WINDOWS 下 编 程 经 常 需 要 在 程 序 中 获 得 各 种 路 径, 比 如 当 前 的 工 作 路 径, 系 统 的 路 径, 等 各 种 路 径。 在WINDOWS 的API 中 提 供 了 齐 全 的API 函 数 供 我 们 调 用。

---- 先 来 看 一 下 这 几 个API 函 数 的 说 明:

---- (1). DWORD GetCurrentDirectory(

DWORD nBufferLength, //接收目录的字符串的长度
LPTSTR lpBuffer //接收目录的字符串的地址
);

---- 通 过 调 用 这 个 函 数 将 获 得 当 前 的 目 录, 如 果 调 用 失 败 此 函 数 将 返 回 零。 调 用 这 个 函 数 时 应 将nBufferLength 参 数 设 足 够 大, 接 收 目 录 的 字 符 串 当 然 也 要 有 这 么 长。 详 细 用 法 请 看 例 子。 另 外 用SetCurrentDirectory() 函 数 可 以 设 置 当 前 目 录。

---- (2). UINT GetSystemDirectory(

LPTSTR lpBuffer, //接收目录的字符串的地址
UINT uSize // 接收目录的字符串的长度
);

---- 通 过 调 用 这 个 函 数 可 获 得 系 统 的 目 录, 如 果 调 用 失 败 此 函 数 将 返 回 零。

---- 3. UINT GetWindowsDirectory(

LPTSTR lpBuffer, //接收目录的字符串的地址
UINT uSize // 接收目录的字符串的长度
);

---- 通 过 调 用 这 个 函 数 可 获 得WINDOWS 目 录, 如 果 调 用 失 败 将 返 回 零。 关 于 这 个 函 数 和 第 二 个 函 数 的 区 别, 通 过 下 面 的 例 子 你 一 定 会 非 常 清 楚。

---- 下 面 用VB 来 实 现。 首 先 当 然 要 先 把API 的 声 明 加 到 代 码 中, 开 始 一 个 新 项 目, 在 窗 体(Form1) 上 放 上 三 个 按 钮(Command1,Command2,Command3)。 这 个 例 子 的 功 能 是 单 击 按 钮 用MSGBOX 显 示 得 到 的 路 径。

---- 笔 者 发 现 不 能 简 单 地 复 制VB5 的API 文 本 查 看 器 中 关 于 上 面 几 个API 的 声 明, 要 做 一 定 的 修 改, 要 在 每 个 函 数 名 后 加 一 个"A", 所 有 代 码 如 下。

Private Declare Function GetCurrentDirectoryA
Lib "kernel32" (ByVal nBufferLength As Long,
ByVal lpBuffer As String) As Long
Private Declare Function GetWindowsDirectoryA
Lib "kernel32" (ByVal lpBuffer As String,
ByVal nSize As Long) As Long
Private Declare Function GetSystemDirectoryA
Lib "kernel32" (ByVal lpBuffer As String,
ByVal nSize As Long) As Long

Private Sub Command1_Click()
Dim Path As String * 255
GetCurrentDirectoryA(Len(Path), Path) '获取当前路径
MsgBox (Path)
End Sub

Private Sub Command2_Click()
Dim Path As String * 255
GetWindowsDirectoryA(Path, Len(Path)) '获取WINDOWS路径
MsgBox (Path)
End Sub

Private Sub Command3_Click()
Dim Path As String * 255
GetSystemDirectoryA(Path, Len(Path)) '获取SYSTEM路径
MsgBox (Path)
End Sub

---- 7. 错 误 陷 阱 中 要 注 意 的 问 题

---- 笔 者 发 现 在 循 环 中 应 用 错 误 陷 阱 技 术 有 一 定 的 问 题。 比 如 下 面 这 一 段 程 序:

Private Sub Command1_Click()
Dim I As Integer
Dim J As Integer
On Error GoTo JERROR
For I = 0 To 3
MsgBox (I)
J = 10000 * 10000 '让J发生溢出错误
JERROR:
Next I
End Sub

2024年广东省职业院校技能大赛“区块链技术应用”任务书—区块链应用系统开发参考答案 摘要 本文档提供了2024年广东省职业院校技能大赛"区块链技术应用"项目中区块链电子签章前端功能开发的参考答案。主要内容包括:1)注册页面开发,实现身份证号码双向绑定和注册请求发送;2)登录页面开发,实现用户认证、状态保存和页面跳转;3)个人印章页面开发,实现注销功能和印章信息展示。每个任务均包含具体实现代码片段和功能测试要点,涵盖Vue.js框架下的数据绑定、axios请求处理和本地存储等关键技术点。 阅读详情

相关推荐

UPF流程.docx

实现低功耗的实例讲解

VB6写在线更新程序(中篇)

VB6写在线更新程序(中篇)「修改主程序入口」在本篇中,主要对主程序的启动入口进行适当的修改,让其在启动时检测XML配置文件中的版本信息,提示版本更新,并启动更新程序下载更新(如果有可用更新)。 首先,在主窗体(这里不是主窗体,而是在启动屏)装载时,进行必要的初始化并装载XML配置: 下载地址。Private Const UPDATE_CONFIG_FILE = "http:

Cable Fan编程笔记 2194

vb 的一些编程经验与心得

vb 的一些编程经验与心得 网上收集的哦

WinExec函数,启动其他应用程序

WinExec The WinExec function runs the specified application. Note  This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.UINT WinEx...

weixin_33853794的博客 368

WinExec(用来打开指定exe文件)

转 http://hi.baidu.com/ouanan/item/56dc30904878e3b982d295f5 WinExec       c#声明         [DllImport("kernel32.dll")]         public static extern int WinExec(string exeName, int operType);     VB

huanglei0809的专栏 4650

Zend Studio 9.0.0 Final 发布下载

转载自: http://www.open-open.com/news/view/14fbda2 更新: 增加破解方法(2011.12.15) Zend Studio 是专业开发人员在使用PHP整个开发周期中唯一的集成开发环境 (IDE),它包括了PHP所有必须的开发部件。通过一整套编辑、调试、分析、优化和数据库工具,Zend Studio 加速开发周期,并简化复杂的应用方案。 Ze...

aqc802886的博客 197

最好用的9个php开发工具推荐

对于PHP开发者,在互联网上有很多可用的开发工具,但对于初学者不知道哪个php开发工具比较好,找到一个合适的PHP开发工具是很难的,需要花费很多的时间精力。所以,今天php中文网就为初学者推荐几个2017年最好用的9个php开发工具。(php程序员工具箱 v0.1版本,点此下载:http://www.php.cn/xiazai/gongju/714)一、PHP开发工具排行1.SublimeText...

qq_31763129的博客 1万+

基于PHP的新闻发布系统的设计与开发(源码+万字报告+部署讲解等)

MySQL是一个相关的数据库管理系统,管理系统,所有的数据存储在一个大的存储将数据存储在不同的表中,速度和灵活性。MySQL使用的SQL语言是最常用的访问数据库的标准化语言。管理员站点名称、url、图片,然后点击Add按钮,提交数据的PHP, PHP接收表单数据,建立相应的数据库插入语句,和调用PHP操作MySQL函数,将链接信息插入数据库。这个表主要是分类信息存储在系统中,这表主要存储分类系统中的信息,包括领域的分类号、缩略图,父类分类编号,分类名称、分类信息,和显示模式分类下的文章。

qq_40828705的博客 853

首选PHP开发工具 Zend Studio v7.1.2(含序列号生成器) Windows/Linux/Mac

Zend Studio是一个屡获大奖的专业 PHP 集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。Zend Studio是Zend Technologies开发的PHP语言集成开发环境(Integrated...

weixin_33825683的博客 173

zend studio总是不好用?试试NB吧

NB是netbeans的缩写,一看这名字就很牛逼啊!而事实上,作为市场经济条件下的社会主义“四有”青年,我是不会盲目崇拜的,一直致力于找好用的php ide,我从netbeans 6.5开始也都一直试用,今天我觉得有必要跟大家推荐一下,网络上对netbeans的好评如潮,巨大的优点我就不多掺和了,做点实际些的吧,在6.7和以前的版本中,代码提示(系统函数)是需要按快捷键才出来的,而最新发布的net

瀧とJava技朮抟孄 773

2017年最好用的9个php开发工具推荐(超好用)

点击有惊喜 对于PHP开发者,在互联网上有很多可用的开发工具,但对于初学者不知道哪个php开发工具比较好,找到一个合适的PHP开发工具是很难的,需要花费很多的时间精力。所以,今天站长工具之家(zhanzgj.xiaomil.com)小编就为初学者推荐几个2017年最好用的9个php开发工具。 (php程序员工具箱 v0.1版本,点此下载:http://www

weixin_40674835的博客 8528

首选PHP开发工具 Zend Studio v7.1.2(含序列号生成器) Windows/Linux/Mac

Zend Studio是一个屡获大奖的专业 PHP 集成开发环境,具备功能强大的专业编辑工具和调试工具,支持PHP语法加亮显示,支持语法自动填充功能,支持书签功能,支持语法自动缩排和代码复制功能,内置一个强大的PHP代码调试工具,支持本地和远程两种调试模式,支持多种高级调试功能。Zend Studio是Zend Technologies开发的PHP语言集成开发环境(Integrated D...

青羽的专栏 200

.NET Core 已经实现了PHP JIT,现在PHP是.NET上的一门开发语言

12月23日,由开源中国联合中国电子技术标准化研究院主办的2017源创会年终盛典在北京万豪酒店顺利举行。在本次大会上,链家集团技术副总裁、PHP 开发组核心成员鸟哥发表了以 “ PHP Next: JIT ”为主题的演讲,分享了 PHP 的下一个性能提升的主要举措:JIT 的进展, 以及下一个大版本的 PHP 可能的特性。 这里PHP Next  目前正在开发当中,由 Zend 的 Dmitry

dotNET跨平台 1726

VB6写在线更新程序(上篇)(3/3)

与Delphi中不同的是,读取一个结点的属性值时,要判断属性的存在性,试图读取返回的空值将引发错误。解析得到的值保存在XmlConfiguration类的属性中,而文件列表通过一个数组来保存。这里又遇到一个问题:索引属性,这个概念不好解释,还是看代码吧:  Files(文件列表)属性Public Property Get Files(Index As Intege

Cable Fan编程笔记 1583

运行.exe文件并获取返回值(使用WinExec和system的区别)

运行.exe文件并获取返回值,使用WinExec和system有所区别:前者只能返回.exe是否成功被调用,后者可以返回.exe源码中main函数的return值。

qq295456059的博客 3万+

[转帖]VB编程的七个优良习惯

1、"&"替换"+"2、变量命名大小写,语句错落有秩,源代码维护方面3、请养成以下的“对象命名约定”良好习惯4、在简单的选择条件情况下,使用IIf()函数5、尽量使用Debug.Print进行调试6、在重复对某一对象的属性进行修改时,尽量使用With....End With7、MsgBox中尽量使用消息图标,这样程序比较有规范8、在可能的情况下使用枚举 1、"&"替换"+"在很多人的编程语言中,用

1218
上一篇: 修改屏保口令
下一篇: 处理Windows 95的长文件名中断详解
firetoucher
博客等级 码龄25年 60粉丝 85原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值