自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (6)
  • 收藏
  • 关注

原创 java类中的构造函数是回调用的

constructor是new 表达式的"回调函数" java constructor 有没有返回值 是不是方法

2022-12-18 18:10:46 138 1

原创 bmp图像的90度旋转

从网上搜到的,一开始是用canvas.pixel处理,实在是太慢又搜到了scanline方式的, 实测逆时针90旋转好用,就又改了一个顺时针90度旋转的(对delphi一知半解,最后是试出来的,前后花了近两天时间;中间还被迫使用三次逆时针90度来代替顺时针90度,实在是汗...)procedure rotate2(bmpfilename: PChar); stdcall;var sourcebmp: Graphics.TBitmap; nIdx, nOfs, x, y, i...

2021-10-13 16:48:49 1075

原创 excel的lookup函数

lookup函数, 在指定区域内,用二分法查找目标,定位到第一个符合条件的单元格后,在等值的下方邻格中继续查找, 得到最后一个符合条件的行号并且返回结果区的, 相应行号的单元格里的值查找目标的过程,可能是1遍或2遍如果目标区域中,存在某个单元格的值,与指定值相等,就只查询这一遍如果没有,就会查询第二遍,这次是查询小于指定值的Excel中lookup函数的用法详解_会计实务_中华会计网校 (chinaacc.com)...

2021-10-08 13:19:39 1331

原创 pb的内部类

forwardglobal type uo_test内部类 from nonvisualobjectend typeend forwardglobal type uo_test内部类 from nonvisualobjectend typeglobal uo_test内部类 uo_test内部类forward prototypespublic subroutine of_test内部类 (integer a_cnt)end prototypespublic subroutine .

2021-09-24 20:52:16 249

原创 pb12.5通过sendmessage读取mle中的一行文字

在pb11.5中,是不需要使用blob转换的,是升级到12.5后,才被迫换成这种方式的外部函数声明:function long SendMessage(ulong hWnd, uint msg, long wParam, ref blob lParam) library "user32.dll" alias for "SendMessageA;ansi"long numsblob lp_bufferstring ls_textfor i=0 to mle_1.linecount( )...

2021-05-24 10:33:00 573

原创 用powerbuilder实现汉诺塔的栈算法(用excel展示栈的变化过程)

用于保存汉诺塔的结构定义:global type str_任务 from structure integer 盘子个数 character a起点柱 character 中转柱 character 目标柱end type每个汉诺塔, 都是用这个结构来保存的用于求解的栈的类:forwardglobal type uo_汉诺塔任务栈 from nonvisualobjectend typeend forwardglobal type uo_汉诺塔任务栈 from

2020-10-15 21:42:47 241

原创 有序向量中, 用二分法插入一个新值

学习了一节C++视频课程, 把老师的例子, 改了一下, 加深理解#include <iostream>#include <vector>using namespace std;void insert2vec(vector<int> &v, int n){ vector<int>::iterator lo=v.begin(), hi=v.end()-1; vector<int>::iterator mi=v.begi.

2020-10-03 09:46:38 201

原创 C语言指针的左值与右值

为什么要用指针? 因为计算机是"存储式执行", 不论代码还是数据, 都在内存中存放看1.指针, 首先是内存中的一个地址;同时根据使用的目的, 有些不同的属性 1.1用于读/写一个变量(对象), 这时指针是一个变量(对象)的起始地址, 有数据类型这个属性 2.2用于读/写某个数组成员, 特性同上(数据类型有可能是"子数组") 2.3...

2020-09-21 15:46:51 1323

原创 cad 中的块与块参照

cad中最常用的块有两种, 一种是常规块(内部块), 一种是外部块常规块在当前文件内保存, 也只能在当前文件内使用外部块, 是一个单独的dwg文件, 可以在多个cad文件中引用如果对外部块进行"绑定"操作, 则转换为内部块从效果上来说, 块相当于"类"块参照, 相当于类的"实例"(对象)每个块参照, 有各自的属性(比例, 角度...)对于"绑定"(bind)方法来说, 这个是块的方法, 不是块参照的方法从这一点可以看出, 块与块参照的关系, 并不是类与对象的...

2020-06-25 15:40:55 3916

原创 函数指针练习与理解

#include <stdio.h>#include <stdlib.h>int add(int a, int b){ return a+b;}int main(){ int (*fn)(int, int)=add; if ( *fn == &add) puts("*fn == &add\n"); if ( *fn == add) puts("*fn == add\n"); if ( &fn != a.

2020-05-18 11:45:15 194

原创 变量 内存 指针(七) 指针与数组练习

指针与数组练习 运行结果#include <stdio.h>#include <stdlib.h>int main(){ int cnt, (*p)[5]; int i; printf("请输入数组的个数(>0):\n"); scanf("%d", &cnt); if (cnt>0) p=m...

2020-05-07 08:24:15 182

原创 dwControl.object.data 是二维数组,每个成员都是一维数组

cnt=ds_半成品.retrieve(a_id)

2020-04-17 10:19:54 220

原创 个人理解的C语言的声明

有些教材上说, 声明不是语句, 这里为了叙述方便, 还是使用声明语句这种说法了C语言的声明语句, 我知道的有4种(变量,数组,结构类型, 函数):1.变量声明, 例如 int a, *p; //a是 整型变量, p是 整型指针变量 int (*p_i4)[4]; //p_i4, 是 int[4]型指针变量 2. (个人观点, C中只有数组数据, 没有作为左值的 ...

2019-02-18 14:57:27 330

原创 啊哈C快速排序, 为什么必需从右边开始扫描

(关于这个问题的前提: 算法是要实现"从小到大"的升序排列, 因此, 是把左边的较大数与右边的较小数进行交换 ) 从左边开始的扫描, 其目标是找到第一个比基准值大的数, 然后与比基准值小的数进行交换同时有个条件, 需要这个较大的家伙是在比基准值小的数之前, 也就是较小数的左边否则就失去"左大"和"右小"交换的机会了因此, 这种情况下, 必须先从右向左找到第一个小于基准数的"右小"...

2018-10-29 11:28:25 1148

原创 isnumber()函数注意事项

string ls_套件id="1,2,3"string 套件id数组[]if isnumber(ls_套件id) then    cnt=1    套件id数组[1]=ls_套件idelse    cnt=gf_拆分字串(ls_套件id, ",", 套件id数组)end if以上代码执行结果:cnt=1, 套件id数组[1]="1,2,3"另外, long("1,2...

2018-09-18 18:06:04 5535

原创 C语言中变量的声明与分号的使用

断断续续学习C语言多年了,可能自学这种语言, 对我来说难度有点大... 1.变量和函数使用前需要声明, 而声明从执行结果上分为两种     A.声明并创建变量  (定义性声明, 分配内存)      B.只声明变量 (引用性声明)     A例:int age;                                                    B例:extern...

2018-08-06 15:29:24 3722

原创 JAVA对象的实例化过程与多态的理解

原博文在:JVM--从JVM层面深入解析对象实例化、多态性实现机制  (https://blog.csdn.net/championhengyi/article/details/78998821)原文作者:珩翊一. 虽然看不懂字节码及栈分析,但至少理解到了两点1. this相当于指针变量,只读指针2. 对象实例化次序(可能是):    2.1 this对象分配内存: 父类和当前类...

2018-08-04 10:14:41 369

原创 Sharedobject与pb多线程

PB没有提供完整的多线程机制,只是提供了一种通过Sharedobject进行线程间通信的方式, 实际是以一个新线程启动另一个虚拟机, 并在其中实例化一个对象来运行一段程序(函数), 并在完成后执行回调。这个具体概念目前还不是特别清晰, 从SharedObjectRegister函数的帮助中看, 原文写的是"opens a separate runtime session", 直译是打开一...

2018-05-21 17:27:05 1698 1

原创 datawindow的Find函数

应该算做是一个Bug吧 例: dw_1.setItem(1, "fname", "Nike")j=dw_1.find("fname='Nike '", 1, dw_1.rowcount()) //注意, Nike后面带有一个空格 这时pb的find函数返回了1按Find函数说明, 应该返回值为0或者>1的其它行号总之不应该返回1, 因为函数实参中给的数据在尾部多了一个空

2015-11-05 22:38:45 4644

原创 内存 变量 指针(四)

变量是一块内存区域, 对变量的常用操作包括:1. 声明, 也就是分配内存, 同时以标识名称来命名2.赋值, 用给定的数据, 替换该内存中的数据3.在右值表达式中引用, 也就是提取该内存中的数据, 代入表达式中4.*p 这个表达式, 返回值就是p指定的那块内存区域中的数据(也许未命名, 也许其他人写的代码中已命名, 但作为被调用函数来说, 不知道变量名, 但收到了存取的地址和数据类型)...

2015-05-19 07:22:16 372

原创 pb中window的windowstate属性与setredraw函数

win.setredraw(false) win.windowstate=maximize!win.setredraw(true)

2014-11-12 00:26:24 4616 1

原创 dropdownlistbox 对text属性赋值为空字串后, 显示不更新

ddlb_1.text=""不论ddlb_1的Item中

2014-10-20 16:15:40 1289

原创 关于钣金计算

2014-07-27 10:50:18 589

原创 pb match的问题

match("【门扇·分类单价1】", "

2014-06-18 08:35:04 2072

原创 内存 变量 指针(三) 表达式与自增后缀运算

 0. 表达式由运算符及其操作数组成     i++             ++ 是后自增运算符, i是它的操作数     i+=1           += 是求和赋值运算符,  i和1都是它的操作数, i是左操作数, 1是右操作数 1. 左值和左值表达式    可以放在赋值运算符左侧的操作数是左值    如果一个表达式的计算结果是左值,那么这个表达式是左值表达式...

2014-05-30 10:22:14 839

原创 变量 内存 指针(二)

1.数组是一片连续的内存 2.数组名是

2014-05-20 23:17:48 594

原创 变量 内存 指针

变量、内存、指针1、一个变量需要使用一段连续的内存存放,内存中的二进制数,就是变量值。相同的二进制数,根据变量数据类型,表现为不同的变量值2、可以声明一个变量代表这段内存,对这个变量赋值就是对这段内存写入数据,在表达式中使用这个变量就是从内存中读取数据或者说“一个变量就是特定的一段内存”3、指针,内存数据指针的简称4、除了使用变量读写内存中的变量

2014-05-15 07:25:47 858

原创 modify datawindow.table.select, 注意字符串的表示方法

modify("datawindow.table.select=' "+ls_slq+" ' ") modify('datawindow.table.select=~' '+ls_slq+' ~' ') modify("datawindow.table.select=~""+ls_slq+" ~" ") modify('datawindow.table.select=" '+ls_

2013-08-25 10:00:02 1187

原创 rdp组的权限设置

1.input.dll 禁止用户设置输入法2.taskmgr.exe 禁止用户调出任务管理器3.新增用户时禁止修改密码

2013-07-10 14:47:30 1261

原创 datawindowobject属性值

一般情况下, dwo的属性值是布尔型时, 可以用true/false, 1/0, yes/no, 但也有个别特殊属性不是这样的  例: dw_1.modify("datawindow.detail.height.autosize=yes") 只可使用yes/no赋值, 不区分大小写, 可以带引号或不带引号不可用True/False, 1/0

2013-04-30 10:54:53 786

原创 crosstab数据窗口的StaticMode

如果第一次执行dw.modify("datawindow.crosstab.staticmode='yes'")时, dw中已经有至少一行, 则不论后续retrieve时是否有返回行, 始终执行正常 如果第一次执行dw.modify("datawindow.crosstab.staticmode='yes'")时, dw的行数为0, 则modify失败, 提示语法错误, 且再retriev

2012-07-11 15:53:44 1032

原创 数据库索引与并发

为表中的某个列或是列组合建立索引, 作用有两个方面: 1.提高检索效率: 这实际上是把"B树"类的算法间接引入到了自己的程序中来, 客观上提高了客户的操作体验 2.提高并发度: 如果存在索引, DBMS就不必进行全表扫描(可能引起加锁超时或死锁等).   MSSQL SERVER是自动处理"锁"的, 单用户程序开发者不太意识到锁的存在. 锁是比较复杂的一个对象, 有不同的粒度和

2012-05-24 14:42:31 1408

原创 修改protect属性, 可能会触发rowfocuschanged事件

如果dw的所有字段都不可编辑, 修改protect 或是修改tabsequence属性, 可能会触发rowfocuschanged事件, 这是因为原来没有任何字段具有focus(处于可编辑状态), 修改protect后, 第一个可编辑的字段将会获得focus,变成可编辑状态, 进而触发rowfocuschanged事件

2012-04-20 13:08:18 871

原创 并发业务实例

2012-2-18 13:16:43这个是实际业务开发中的例子工作流程:订单审核-->审核后的订单加入生产计划(生产计划中不能包括未审核订单)并发可能导致的错误结果①订单A, 通过审核②查看通过审核的订单列表,其中包括了订单A③选中订单A,准备加入生产计划④生产计划保存前, 订单A在另一地点被反审核⑤生产计划保存成功, 包括了一个未审核的订单A解决办法:使用dw

2012-02-18 13:25:25 639

原创 vc++虚函数 纯虚函数

virtual 绑定标识符用于决定的函数限定关键字这被称为类的"多态"首先,可以把一个派生类的(对象)指针赋值给它的祖先类(对象)指针;   只有在这种情况下, 会出现"多态".要注意,在赋值后,内存中的派生类对象一定是保持不变的   而在两个不同的地址中在分别存放着祖先类和派生

2011-07-16 16:29:11 1900

原创 classname函数与控件name字串

控件.classname() 返回在painter中对控件的命名classname( 对象 ) 返回对象的 name 字串一般的, 不管是否可见, 只要是在painter中添加的控件, 都可以直接使用 控件.classname() 而在代码中通过create 类名 来创建的对象i

2011-07-07 11:35:02 946

原创 retrieveend 事件中的rowcount参数与rowcount()函数的区别

<br />retrieveend事件中的rowcount参数中保存的是从数据库中取到的行数, rowcount()函数返回的是primary缓冲区中的行数.<br /> <br />区别显而易见, 参数rowcount是包括filter缓冲区中的行数在内的.<br /> <br />由于retrieve()函数执行后会把不符合filter条件的行立即移入filter区, 因此, rowcount与rowcount()的值是不一定相等的.<br /> <br />强调这一点是有实际意义的:<br />  

2011-05-23 18:09:00 1469

原创 datewindow的update where子句控制并发的实例

dw的更新条件子句控制“并发”的实例2011-5-20 10:08   如上图有一个【发货记录表】,有两个部门操作①    是成品发货,要记录装车时间和条码扫描人②    是财务,要记录出库时间(实际是收款时间)和审核人 虽然在成品发货时,不会修改【财务审核人/出库时间】,但是在 update的where子句中,仍要包

2011-05-20 10:35:00 715

原创 item的 original值

    经试验, getItemNumber( row, 1, Primary!, true) 取得item的原始值时, 如果getItemStatus(row, 0, primary!)是Newmodified!, 那么原始值与当前值是一样的    因此, 只判断DataModified!是不可靠的, 原始值与当前值有可能相同 也可能不同      只有当数据行是retrieve自数据库时, datamodified!才会代表原始值与当前值不一致      如果是insertrow()的新增行, 当Ite

2010-10-07 09:48:00 641

原创 post function 与timer

<br />在post function 调用函数时, 被调用函数内的timer()函数未激活timer事件, 改为triger function调用后正常

2010-10-05 10:07:00 447

通过"栈"算法,解汉诺塔(可通过excel显示栈内数据的变化过程)

1.演示解汉诺塔问题的栈算法 2.通过excel显示栈内数据的变化过程 3.这个是可执行程序, 不是源代码(解压后 双击hanoi.exe即可)

2020-10-24

windows网络编程.PDF

windows网络编程,转自avalonBBS .只是合并为一个PDF, 并对目录(书签)进行了整理

2011-01-12

十以内加减法练习(可执行程序)

这个是编译好的,用WINRAR自解压做的安装 双击就可以安装,在桌面上会有一个快捷方式 送给那些像我一样需要每天给孩子出题的家长

2009-11-06

十以内加减法练习 powerbuilder源码

学校要求每天都要给孩子出20道练习题,第二天检查,所以就做了这个小练习 是用pb11.5做的,是源码

2009-11-06

输入法调整设置工具 动态调整输入法顺序而无须重启

http://www.mympc.org 作者:Silence IME TOOL 支持中英文界面,适用于 Win98/ME/2000/XP/2003 操作系统,目前不支持 VISTA。 主要功能: 一、动态调整输入法顺序而无须重启。 二、切换输入法指示器和高级文字服务方式。 三、任意设置输入法热键

2009-02-23

pb11.5补丁 作者Study qq:937207115

pb11.5补丁作者Study qq:937207115 本文来自: 华软论坛 详细出处参考:http://www.huarw.com/bbs/dispbbs.asp?boardid=85&replyid=724122&id=70231&skin=0&page=1&star=3

2008-11-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除