PB 11第11章 自定义函数和结构
- 格式:ppt
- 大小:1.16 MB
- 文档页数:26
PB的小技巧1.如何使DataWindow中的数据只能追加新记录而不能修改。
利用Column 的Protect 属性可以很方便的做到这一点,方法如下:将每一列的Protect 属性设置为:If( IsRowNew(), 0, 1) )在PowerScript 中可以动态修改Protect 属性:dw_1.Modify("column_name_here.Protect='1~tIf(IsRowNew(),0,1)'")2. 允许从空的非字符字段跳离string ss = this.dwDescribe(this.GetColumnName()+".coltype")//s = this.dwDescribe("#"+String(this.GetColumn())+".coltype")CHOOSE CASE sCASE "number"IF Trim(this.GetText()) = "" THENint null_numSetNull(null_num)this.SetItem(this.GetRow(),this.GetColumn(),null_num)this.SetActionCode(3)END IFCASE "date"IF Trim(this.GetText()) = "" THENdate null_dateSetNull(null_date)this.SetItem(this.GetRow(),this.GetColumn(),null_date)this.SetActionCode(3)END IFCASE "time"IF Trim(this.GetText()) = "" THENtime null_timeSetNull(null_time)this.SetItem(this.GetRow(),this.GetColumn(),null_time)this.SetActionCode(3)END IFCASE "datetime"IF Trim(this.GetText()) = "" THENdate null_datetimeSetNull(null_datetime)this.SetItem(this.GetRow(),this.GetColumn(),null_datetime)this.SetActionCode(3)END IFEND CHOOSE3. 当我们为Datawindow的每一行显示行号时可以简单的放一个表达式为GetRow() -- 计算列。
1、Open 两种格式:一个是带参数的还有一个是不带参数的不带参数的是不确定具体的数据类型的2、Opensheet() opensheet(指定窗口名,{指定要打开的窗口的类型},指定要放置的工作表的框架窗口名,所打开的窗口是在第几个菜单下生产默认值为倒数第二个,打开方式arrangeopen。
)打开方式分为三种:cascade、layered、original。
Cascade:向右下方偏移。
默认值如果缺少的话Layered:最大化Original:与cascade相同。
只是打开的时候与原来的一样大3、Close4、Setfocus() 将焦点设置到指定控件上Objectname.setfocus() 如果objectname是列表框的话则控件将指向列表框的第一列表项上。
5、SelectText()返回该控件所选的文本。
返回值为long Singlelineeditname.selecttext(start,length)6、GetColumn()和GetColumnname()两个都没有返回值:第一个是返回当前列的列好,第二个则是返回当前列名7、Update()8、DeleteRow()Dwcontrol.deleteRow(row) row表示要删除的行数,当该值为0时则表示删除该行1、insert row 在数据窗口控件指定行前面插入一行dwcontrol.insertrow(row) scrolltorow():使新插入的行成为当前行。
2、ScrollToRow() 使用方法:rtename .scrolltorow(row)Rtename超文本编辑框的名称。
如果row的值为0的话则就回滚到第一行,如果row的值大于超文本的行数则回滚到最后一行3、selectedColumn()返回插入点后第一个字符的位置rtename.selectedcolumn()4、setcloumn5、print() 以当前字体在打开的打印作业中打印一行或多行文本print(printjobnumber,{tabl},string{,tab2})tab1为文本开始打印的位置,以千分之一英寸为单位。
delphi11动态链接库第11章动态链接库本章讨论了Win32动态链接库,也就是DLL。
动态链接库(Dynamic Link Library,简称DLL)是⼀些编译过的可执⾏代码模块,后缀名为. DLL,可以在应⽤程序中或其它DLL中被调⽤。
在Windows环境中,DLL可以实现多个应⽤程序共享代码和资源。
DLL的⽤途⾮常⼴泛,是Windows程序设计中的⼀个⾮常重要的组成部分。
本章将从DLL的⼀些基础知识讲起,说明如何在Delphi开发环境中创建和使⽤DLL。
11.1 概述11.1.1 DLL的概念在开始介绍DLL的概念之前,先介绍⼀些有关DLL的⼀些术语如下:应⽤程序,⼀个扩展名为.exe的Windows程序。
可执⾏⽂件,⼀个包含可执⾏代码的⽂件,它包括.dll⽂件和.exe⽂件。
实例,当提到应⽤程序和DLL时,在内存中出现的可执⾏⽂件就是实例。
Win32系统通过实例句柄的⽅式来引⽤实例。
例如,如果⼀个应⽤程序运⾏两次,就会有应⽤程序的两个实例,同时就有两个实例句柄。
当⼀个DLL被调⼊时,实例及其相应的实例句柄同时产⽣。
应该注意的是,这⾥所提的实例与类的实例不能混淆。
模块,在32位Windows系统中,模块和实例可以说是同义的。
⽽在16位的Windows 系统中,是建⽴⼀个模块数据库来管理模块的,⼀个模块对应⼀个模块句柄。
在Win32中,应⽤程序的每⼀个实例都拥有⾃⼰的地址空间;所以,没有必要为模块单独指定标识符。
不过,微软仍然保留了它⾃⼰的术语。
注意⼀点,模块和实例是同⼀个概念。
任务,Windows是⼀个多任务(或任务切换)环境,所以它必须能够为运⾏的多个实例合理分配系统资源和时间。
于是,Windows建⽴⼀个任务数据库,这个数据库包括任务的实例句柄和其它必要信息,以此实现任务切换功能。
任务是Windows⽤来管理和分配资源与时间段的重要元素。
动态链接库是程序模块,它包括代码、数据或资源,能够被其它的Windows应⽤程序共享。
一、数组函数1、LowerBound()功能:得到指定数组第n维的下界。
语法:LowerBound ( array {, n } )参数:array:数组名。
n:数值类型,可选项,指定要得到数组哪一维的下界。
缺省值为1。
返回值:Long。
函数执行成功时返回array数组第n维的下界。
如果n的值超过了指定数组的最大维数,那么该函数返回-1。
如果任何参数的值为NULL,LowerBound()函数返回NULL。
示例:integer a[5], b[2,5]LowerBound(a) // Returns 1LowerBound(a, 1) // Returns 1LowerBound(a, 2) // Returns -1, a has only 1 dimLowerBound(b, 2) // Returns 1integer c[ ]LowerBound(c) // Returns 1c[50] = 900LowerBound(c) // Returns 1integer d[-10 to 50]LowerBound(d) // Returns - 102、UpperBound()功能:得到指定数组第n维的上界。
语法:UpperBound( array {, n } )参数:array:数组名。
n:数值类型,可选项,指定要得到数组哪一维的上界。
缺省值为1。
返回值:Long。
函数执行成功时返回array数组第n维的上界。
如果n的值超过了指定数组的最大维数,那么该函数返回-1。
如果任何参数的值为NULL,UpperBound()函数返回NULL。
示例:integer a[5], b[2,5]LowerBound(a) // Returns 1LowerBound(a, 1) // Returns 1LowerBound(a, 2) // Returns -1, a has only 1 dimLowerBound(b, 2) // Returns 1integer c[ ]LowerBound(c) // Returns 1c[50] = 900LowerBound(c) // Returns 1integer d[-10 to 50]LowerBound(d) // Returns - 10二、Blob(大二进制对象)函数Blob函数得到Blob数据类型的信息、完成数据类型转换以及操作Blob类型数据。