【PB案例学习笔记】-08 控件拖动实现

大家好,我是晓凡

写在前面

这是PB案例学习笔记系列文章的第8篇,该系列文章适合具有一定PB基础的读者。

通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。

文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.git

gitee代码仓库

需要源代码的小伙伴们可以自行下载查看,后续文章涉及到的案例代码也都会提交到这个仓库【pb-project-example

如果对小伙伴有所帮助,希望能给一个小星星⭐支持一下小凡。

一、小目标

本篇文章,我们通过Send函数,实现各种控件的拖动,即按住鼠标不放,将控件在窗口内任意移动。

最终实现效果如下

控件拖动

二、Send函数简介

Send 函数用于向窗口发送消息,并立即被执行。这种方式无论是窗口中的控件还是窗口本事都适用

① 语法

Send(handle,messageno,word,long)

② 参数说明

参数类型说明
handleLong指定窗口的系统句柄,将向该窗口发送消息
messagenoUnsignedInteger指定要发送消息号
wordLong指定与消息一起发送的Word类参数值。如果messageno参数指定的消息不适用该参数,那么将这个参数的值设置为0
longLongString指定与消息一起发送的Long型参数值活字符串

三、创建程序基本框架

① 创建examplework 工作区

② 创建exampleapp应用

③ 新建w_main 窗口,Title 设置为“拖动控件”

如果以上步骤忘记的小伙伴,克参照第一篇文章

④ 添加控件,进行窗口布局

在窗口中新建一个SingleLineEdit控件、一个ComandButton 控件、一个CheckBox控件和一个RadioButton控件,

各个控件名称依次为sle_1cb_1cbx_1rb_1,调整控件,并设置控件属性如下图所示

控件布局

⑤ 保存窗口

四、编写代码

① 在窗口中选择sle_1控件,为控件添加【pbm_lbuttondown】 事件,事件起名为ue_mousemove 并添加如下代码

添加事件

添加代码

send(handle(this),274,61458,0)

② 按照上面的方法,为控件cb_1cbx_1rb_1添加事件,添加如下代码

send(handle(this),274,61458,0)

③ 在窗口w_mainMouseDown事件中添加如下代码

send(handle(this),274,61458,0)

④ 在开发界面左边的System Tree 中双击exampleapp应用对象,在其Open事件中添加如下代码

open(w_main)

五、运行程序

运行程序后,我们鼠标选择窗口上的任意一个控件,按住不放即可拖动控件

控件拖动

本期内容到这儿就结束了,希望对您有所帮助。

我峨嵋你下期再见 ヾ(•ω•`)o (●’◡’●)

### 回答1: 在使用 PB 执行 SQL 语句插入或删除数据时,可以通过检查执行后返回的结果集中的记录数来判断插入或删除的数据条数。 举个例子,假设你使用 PB 的 SQLCA 对象执行了一条 INSERT 语句,那么你可以在执行后检查 SQLCA.ROWCOUNT 属性的值,这个属性会返回受影响的行数。如果返回的值是 1,则表示成功插入了一条新的数据记录。 同样的,如果你使用 PB 的 SQLCA 对象执行了一条 DELETE 语句,那么你可以在执行后检查 SQLCA.ROWCOUNT 属性的值,这个属性会返回被删除的行数。如果返回的值是 1,则表示成功删除了一条数据记录。 例如: ``` SQLExec("INSERT INTO mytable (col1, col2) VALUES (1, 2)") IF SQLCA.SQLCODE = 0 THEN MessageBox("插入了 " + String(SQLCA.ROWCOUNT) + " 条记录") END IF SQLExec("DELETE FROM mytable WHERE col1 = 1") IF SQLCA.SQLCODE = 0 THEN MessageBox("删除了 " + String(SQLCA.ROWCOUNT) + " 条记录") END IF ``` 需要注意的是,在执行 DELETE 语句时,如果条件所匹配的记录数为 0,则 SQLCA.ROWCOUNT 的值也会返回 0。这时你需要通过检查 SQLCA.SQLCODE 属性的 ### 回答2: 在使用PB执行SQL语句时,可以通过以下方法判断插入或删除数据的条数: 1. 插入数据的条数判断: 通常在PB中执行插入数据的SQL语句时,我们可以使用`SQLCA`中的`SQLCount`属性来获取插入的数据条数。`SQLCount`属性返回受影响的记录数量,即插入成功的数据条数。 示例代码如下: ``` long ll_rowCount DECLARE int ErrorCode INSERT INTO YourTable (column1, column2) VALUES ('value1', 'value2'); IF SQLCA.SQLCode = 0 THEN ll_rowCount = SQLCA.SQLCount MessageBox("提示", "成功插入" + String(ll_rowCount) + "条数据") ELSE ErrorCode = SQLCA.SQLCode MessageBox("错误", "插入数据失败,错误代码:" + String(ErrorCode)) END IF ``` 2. 删除数据的条数判断: 在PB中执行删除数据的SQL语句时,我们可以使用`SQLCA`中的`SQLCount`属性来获取删除的数据条数。`SQLCount`属性返回受影响的记录数量,即删除成功的数据条数。 示例代码如下: ``` long ll_rowCount DECLARE int ErrorCode DELETE FROM YourTable WHERE condition; IF SQLCA.SQLCode = 0 THEN ll_rowCount = SQLCA.SQLCount MessageBox("提示", "成功删除" + String(ll_rowCount) + "条数据") ELSE ErrorCode = SQLCA.SQLCode MessageBox("错误", "删除数据失败,错误代码:" + String(ErrorCode)) END IF ``` 需要注意的是,以上示例代码中的`YourTable`是指要插入或删除数据的表,`column1, column2`是要插入的列名,`value1, value2`是要插入的值,以及`condition`是删除数据的条件。根据实际情况进行修改。 ### 回答3: 在PB中执行SQL语句可以使用Select语句来判断插入和删除操作所影响的数据条数。 1. 插入数据的判断: 执行插入操作后,可以使用以下步骤判断插入的数据条数: a. 在DataWindow控件中执行SQL插入语句时,可以使用插入结果函数 dw_1.RowCount() 来获取插入的数据条数。 例子:int li_rowcount li_rowcount = dw_1.RowCount() b. 如果是通过数据库连接对象(sqlca)执行SQL插入语句,可以使用以下步骤判断插入的数据条数: - 定义一个变量来存储插入的数据条数,例如:li_rowcount - 执行插入操作后,通过sqlca.SQLNumRows()函数来获取插入的数据条数。 例子:int li_rowcount li_rowcount = sqlca.SQLNumRows() 2. 删除数据的判断: 执行删除操作时,可以使用以下步骤判断删除的数据条数: a. 在DataWindow控件中执行SQL删除语句时,可以使用删除结果函数 dw_1.RowCount() 来获取删除的数据条数。 例子:int li_rowcount li_rowcount = dw_1.RowCount() b. 如果是通过数据库连接对象(sqlca)执行SQL删除语句,可以使用以下步骤判断删除的数据条数: - 定义一个变量来存储删除的数据条数,例如:li_rowcount - 执行删除操作后,通过sqlca.SQLNumRows()函数来获取删除的数据条数。 例子:int li_rowcount li_rowcount = sqlca.SQLNumRows() 以上就是在PB中执行SQL语句如何判断插入和删除数据条数的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员晓凡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值