MKV混流工具 MKVToolNix

本文最后更新于(2012-11-24 16:47:21),链接可能失效,内容可能难以复现。请注意甄别。
  2012-11-24 © Sunplace,2012
 
MKV可以解压为视频流、音频流和字幕三层。这个工具能对这三层进行打包和解压处理。 打开MKV文件后,将不需要的文件勾去,例如字幕。或者读者也可以追加合并,将字幕、音频和视频打包。 图1 MKVToolNix只能删除内挂字幕,不能删除嵌入式的字幕(已和视频合并的,不可以分离)。例如,读者下载了一个有英文字幕的MKV,在网上找到了外挂的中文字幕。此时,就可以使用本软件将原字幕删除或者分离出来,再用外挂字幕播放或者打包播放。 图2 MKVToolNix支持多OS。官网下载

PowerBuilder数据窗口函数

本文最后更新于(2012-11-20 23:07:25),链接可能失效,内容可能难以复现。请注意甄别。
  2012-11-20 © Sunplace,2012
 
一、连接数据库 连接数据库也就是指定事务对象。PowerBuilder提供了两个函数:SetTrans()和SetTransObject()。 语法格式: dw_control.SetTrans(TransactionObject) dw_control.SetTransObject(TransactionObject) 其中,dw_control是所使用的数据窗口控件,transactionObject是所要指定的事务对象。 这两个函数有一个重要的区别就是在使用SetTrans()函数时,用户不需做任何数据初始化或事务对象初始化工作。用户只需要在这里填充一个事务对象,PB就会自动完成对该事物对象的初始化以及和数据库连接的工作。而使用SetTransObject()函数时,用户必须首先把所用的事务对象连接到数据库上。 但是,这并不意味着SetTrans()函数比SetTransObject()函数更好,使用SetTrans()函数时,每调用一次函数必须连接一次数据库,因为这个函数在每个事务处理的末端都会执行Disconnect语句。与此相反,使用SetTransObject()函数可以为数据库维持一个开放性的连接。因此在一般情况下,为了提高效率,总是采用SetTransObject()函数。 这两个函数都是成功时返回1,发生错误时返回-1。 二、检索数据 用于检索数据的函数只有一个,就是Retrieve()函数。 语法格式: dw_control.Retrieve() 如果数据窗口控件上的数据窗口对象是有检索参数的,就要在这个函数调用时加上检索参数。而且检索参数必须和数据窗口对象中定义顺序一致。 此函数返回一个长整型的数据,代表检索出来的数据行数。如果发生错误,将返回-1。 三、更新数据 当用户对数据窗口对象内的数据修改后,想把这些修改反映到数据库中去时,必须使用Update()函数。 语法格式: dw_control.Update() 这个更新可能成功,也可能失败。一般在这个函数被调用之后,总是要做一个检查。请看下面的例子: Int li_return li_return = dw_1.Update() IF li_return = 1 THEN COMMIT USING SQLCA; ELSE ROLLBACK USING SQLCA; END IF 在这段代码中,首先对数据窗口控件进行更新操作。但是更新只是把数据写入到客户机的内存,并没有提交到数据库中。如果更新成功,就把它提交到数据库中,如果更新失败,就回滚到当前的事务。 行操作 行操作的函数主要是对数据库中的数据进行插入、删除或选择操作。 一、插入行 在DataWindow中插入一行,可以使用InsertRow()函数。 语法格式: dw_control.InsertRow(rownumber) dw_control是数据窗口控件名,rownumber是要插入行的的行号。如果这个参数为0,代表在当前DataWindow的最后一行插入一空行。 InsertRow()函数返回一个长整型值,以此来代表插入的行号。如果插入失败,则返回-1。 二、删除行 要删除DataWindow内的一行数据,则要使用DeleteRow()函数。 语法格式: dw_control.DeleteRow(rownumber) 其中rownumber是要删除的行号。如果该值为0,表示删除当前行。如果删除成功,返回1,失败则返回-1。 三、设置当前行 如果要设置DataWindow中的某行为当前行,可以使用SetRow()函数。 语法格式: dw_control.SetRow(rownumber) 其中rownumber是要设置为当前行的行号。如果函数返回1表示成功,返回-1代表失败。 四、获取当前行 如果想要获取DataWindow中的某行为当前行,可以使用GetRow()函数。 语法格式: dw_control.GetRow() 该函数没有参数,它返回一个长整型,代表当前行号。如果返回-1代表失败。如果返回0代表没有选中任何行。 五、选择行 如果想要在DataWindow中加亮显示某一行或取消加亮显示某一行,可以使用SelectRow()函数。 语法格式: dw_control.SelectRow(rownumber,select) 其中,rownumber表示要加亮或者取消加这显示的行号,0表示所有行。select是一个布尔类型的值,TRUE表示加亮,FALSE表示取消加亮显示。该函数返回1时表示成功,返回-1时表示失败。 如果想要直接设置某一行为加亮,需要首先取消其它行的加亮显示状态,采用如下的两行代码: dw_1.SelectRow(0,FALSE) dw_1.SelectRow(rownumber,TRUE) 六、获取选择行 如果想要获取当前DataWindow中加亮显示的行,可以使用GetSelectRow()函数。 语法格式: dw_control.GetSelectRow(rownumber) 其中,rownumber为开始查找的行的行号,0表示从头开始查找。该函数返回一个长整数,表示从rownumber开始查找第一个加亮显示的行的行号。如果失败返回0。 七、滚动行 如果在DataWindow的末尾插入一行数据,而当前行是在DataWindow的中央,那么这种插入可能不会被用户觉察。为了改变这种情况,可以滚动行到DataWindow的末尾,这样用户就能发现新的改变。要滚动行,可以使用ScrollToRow()函数。 语法格式: dw_control.ScrollToRow(rownumber) 该函数返回1时表示成功,返回-1时表示失败。 与ScrollToRow()函数据功能相关的还有如下几个函数: ScrollPriorRow():向上滚动一行 ScrollNextRow():向下滚动一行 列操作 列操作类的函数主要是选择指定的列和获取列的信息。 一、获取列 如果要获取当前的列号,可以使用GetColumn()函数,如果要获取当前的列名,可以使用GetColumnName()函数。 语法格式: dw_control.GetColumn() dw_control.GetColumnName() 这两个函数都没有参数,GetColumn()函数返回一个长整型值,代表当前的列号,GetColumnName()函数返回当前列的列名。如果返回0,表示当前没有任何列被选择返回-1表示失败。 二、设置列 要设置某一列为DataWindow中的当前列,可以使用SetColumn()函数。 语法格式: dw_control.SetColumn(column) 其中column既可以是列号,也可以是列名。当该函数返回1时表示成功,返回-1时表示失败。 数据操作 数据操作类的函数主要是对DataWindow中的数据进行获取、设置。 一、获取数据 如果要从DataWindow的指定行和列中获取数据,就要使用GetItem系列的函数。 这个系列的函数共有五个,分别是对字符串、数字、日期、日期时间和小数。 语法格式: dw_control.GetItemString(rownumber,column) dw_control.GetItemNumber(rownumber,column) dw_control.GetItemDate(rownumber,column) dw_control.GetItemDateTime(rownumber,column) dw_control.GetItemDecimal(rownumber,column) 其中,rownumber参数表示行号,column可以是列号或列名。 二、设置数据 与获取数据所用的函数不同,设置DataWindow内指定行列处的数据只要使用一个SetItem()函数就可以了。 语法格式: dw_control.SetItem(rownumber, column, value) 其中rownumber表示行号,column可以是列号,也可以是列名,value表示要设置的值。但是该必须与DataWindow中指定的行列处的数据类型一致,不然PowerBuilder会报错。 SetItem()函数返回1时表示成功,返回-1时表示失败。 三、数据排序 如果希望对DataWindow内的数据进行重新排序,而又不想重新从数据库中检索数据,可以使用SetSort()和Sort()函数。这两个函数一起完成对DataWindow进行排序的功能。其中SetSort()函数用于设置如何排序,Sort()函数用于对DataWindow实际进行排序。 语法格式: dw_control.SetSort(expression) dw_control.Sort() 其中expression是一个字符串,表示排序的表达式,它的具体值是一个列名后面加一个空格,然后是”A”,表示升序,或”D”,表示降序。如果有多个列要同时进行排序,它们之间用逗号隔开。 例:dw_1.SetSort(“name A,xh D”) 这两个函数都是返回1表示成功,返回-1表示失败。 四、数据过滤 如果希望对DataWindow内的数据进行过滤而不重新从数据库中检索数据,可以使用SetFilter()和Filter()函数。它们一起完成对数据的过滤功能。其中 SetFilter()函数用来设置过滤条件,Filter()函数用于对DataWindow进行过滤。 语法格式: dw_control.SetFiter(expression) dw_control.Fiter() 其中expression是一个字符串,表示过滤的条件,它实际是一个逻辑表达式。 例: dw_1.SetFilter(“id>’003′ AND name like’王%’”) dw_1.Filter() 这两个函数都是返回1表示成功,返回-1表示失败。 五、数据检查 PowerBuilder提供了两个函数用于数据的检查,它们是DeleteCount()和ModifiedCount(),其作用分别是检查DataWindow中的数据自上一次更新到现在,被删除的行数和被修改的行数。它们一般在窗口的CloseQuery事件中使用,用来检查该窗口的DataWindow中的数据是否有尚未保存的修改。 语法格式: dw_control.DeleteCount() dw.control.ModifiedCount() 它们分别返回从上一次更新到现在,DataWindow中被删除和被修改的行数。如果没有行被删除或被修改,那么它们返回0。如果出现错误则返回-1。 一般情况下,如果窗口中含有可供修改的数据窗口对象,那么在窗口的CloseQuery事件中通常使用如下代码检查数据窗口对象中是否有尚未保存的数据: Int li_return IF dw_1.ModifiedCount() > 0 OR dw_1.DeletedCount() >0 THEN li_return = MessageBox(“提示”,“数据尚未保存,是否保存?”,Question!,YesNoCancel!,3) CHOOSE CASE li_return CASE 1 TriggerEvent(‘ue_save’) RETURN 0 CASE 2 RETURN 0 CASE 3 RETURN 1 END CHOOSE END IF 1. 怎么判断数据窗口中指定字段的数据类型? Dw_1.describe(“colname.coltype”) 返回类型为:string pb常用函数(一)(转) Abs() 功能计算绝对值。 语法Abs ( n ) 参数n:要得到绝对值的数值型变量或表达式返回值返回值的数据类型与n的数据类型相同,函数执行成功时返回n的绝对值。如果参数n的值为NULL,Abs()函数返回NULL。 Ceiling() 功能返回大于n的最小整数。 语法Ceiling ( n ) 参数n:数值型变量或表达式返回值返回值的数据类型与n的数据类型相同。函数执行成功时返回大于n的最小整数。如果参数n的值为NULL,Ceiling()函数返回NULL。 Cos() 功能计算余弦,其中参数以弧度为单位。 语法Cos ( n ) 参数n:数值型变量或表达式返回值Double。函数执行成功时返回n的余弦。如果参数n的值为NULL,Cos()函数返回NULL。 Exp() 功能计算e的n次方。 语法Exp ( n ) 参数n:指定幂值返回值Double。函数执行成功时返回e(约等于2.71828)的n次方。如果参数n的值为NULL,Exp()函数返回NULL。 Fact() 功能计算n的阶乘。 语法Fact ( n ) 参数n:数值型变量或表达式返回值Double。函数执行成功时返回n的阶乘。如果参数n的值为NULL,Fact()函数返回NULL。 Int() 功能得到小于等于n的最大整数。 语法Int ( n ) 参数n:数值型变量或表达式返回值Integer。函数执行成功时返回小于等于n的最大整数。如果n的值太小或太大,超过了整数的表示范围,则函数返回0。如果参数n的值为NULL,Int()函数返回NULL。 Log() 功能计算n的自然对数。 语法Log ( n ) 参数n:数值型变量或表达式,其值必须大于0返回值Double。函数执行成功时返回n的自然对数。如果n小于等于0,将导致运行错误。如果参数n的值为NULL,Log()函数返回NULL。 LogTen() 功能计算n的常用对数(以10为底)。 语法LogTen ( n ) 参数n:数值型变量或表达式,其值必须大于0返回值Double。函数执行成功时返回n的常用对数。如果n小于等于0,将导致运行错误。如果参数n的值为NULL,LogTen()函数返回NULL。 Max() 功能求两个数中的最大值。 语法Max ( x, y ) 参数x:数值型变量或表达式,参加比较的第一个数y :数值型变量或表达式,参加比较的第二个数返回值以x、y中数据类型更精确的数据类型作为该函数的返回值数据类型。函数执行成功时返回参数比较的两个数中更大者。如果任何参数的值为NULL,Max()函数返回NULL。 Min() 功能求两个数中的最小值。 语法Min( x, y ) 参数x:数值型变量或表达式,参加比较的第一个数y :数值型变量或表达式,参加比较的第二个数返回值以x、y中数据类型更精确的数据类型作为该函数的返回值数据类型。函数执行成功时返回参数比较的两个数中较小者。如果任何参数的值为NULL,Min()函数返回NULL。 Mod() 功能求余数。 语法Mod ( x, y ) 参数x:数值型变量或表达式,被除数y :数值型变量或表达式,除数返回值以x、y中数据类型更精确的数据类型作为该函数的返回值数据类型。函数执行成功时返回x除以y所得的余数 。如果任何参数的值为NULL,Mod()函数返回NULL。 Pi() 功能计算n与Pi(3.14159265358979323…)的乘积。 语法Pi ( n ) 参数n:数值型变量或表达式返回值Double。函数执行成功时返回n与Pi(3.14159265358979323…)的乘积。发生错误时返回-1。如果参数n的值为NULL,Pi()函数返回NULL。 Rand() 功能得到1与n之间的一个伪随机数。 语法Rand ( n ) 参数n:数值型变量或表达式,指定要产生的伪随机数的上界。有效值在1到32,767之间返回值与n的数据类型相同。函数执行成功时返回1与n之间的一个伪随机数,包括1和n在内。如果参数n的值为NULL,Rand()函数返回NULL。 Randomize() 功能初始化伪随机数发生器,这样让应用程序每次使用不同的伪随机数序列。 语法Randomize ( n ) 参数n:数值型变量或表达式,指定伪随机数生成器使用的起始值,不同的起始值可以生成不同的伪随机数序列。当n的值为0时,该函数把系统时钟作为伪随机数生成器的起始值,这样可以生成不可重复的伪随机数序列。当n的值不为0时,可以产生不同的伪随机数序列,但是,如果两次使用相同的伪随机数生成器起始值,那么两次生成的伪随机数序列相同。n的值在0到32,767之间返回值Integer。极少使用该函数的返回值。 Round() 功能将x四舍五入到n位。 语法Round ( x, n )参数x:要四舍五入的数值型数据n:整数类型,指定从哪个小数位上四舍五入x。有效值在0到18之间返回值Decimal。函数执行成功时返回将x四舍五入到小数点后第n位的数值,如果函数执行失败或任何参数的值为NULL,Round()函数返回NULL。 Sign() 功能确定n是整数、负数还是零。 语法Sign ( n ) 参数n:数值型变量或表达式,指定要测试符号的值返回值Integer。当n大于0时返回1;当n小于0时返回-1;当n等于0时返回0。如果参数n的值为NULL,Sign()函数返回NULL。 Sin() 功能计算正弦,其中参数以弧度为单位。 语法Sin( n ) 参数n:数值型变量或表达式返回值Double。函数执行成功时返回n的正弦。如果参数n的值为NULL,Sin()函数返回NULL。 Sqrt() 功能计算平方根。 语法Sqrt ( n ) 参数n:数值型变量或表达式,指定要计算平方根的数据返回值Double。函数执行成功时返回n的平方根。如果n是负数,则执行该函数时引发运行错误。如果参数n的值为NULL,Sqrt()函数返回NULL。 Tan() 功能计算正切,其中参数以弧度为单位。 语法Tan( n ) 参数n:数值型变量或表达式返回值Double。函数执行成功时返回n的正切。如果参数n的值为NULL,Tan()函数返回NULL。 Truncate() 功能截断数值到指定的小数位。 语法Truncate ( x, n ) 参数x:要截断的数值型数据n:整数类型,指定从哪个小数位上截断x。有效值在0到18之间返回值Decimal。函数执行成功时返回将x截断到小数点后第n位的数值,如果函数执行失败或任何参数的值为NULL,Truncate()函数返回NULL。所谓截断就是舍弃指定位之后的数值。   Asc() 功能得到字符串第一个字符的ASCII码整数值。 语法Asc ( string ) 参数string:要得到第一个字符ASCII值的字符串返回值Integer。函数执行成功时返回string参数第一个字符的ASCII值,如果string参数的值为NULL,则Asc()函数返回NULL。 Char() 功能将字符串的第一个字符、Blob变量的第一个值、或一个整数转换成字符。 语法Char ( n ) 参数n:字符串、Blob变量或整数,也可以是包含上述类型数据的Any类型变量返回值Char。返回参数n的第一个字符。如果n参数的值为NULL,则Char()函数返回NULL。 Dec() 功能将字符串或Blob值转换成Decimal类型的值。 语法Dec ( stringorblob ) 参数stringorblob:string类型变量或Blob类型变量。Blob类型变量时,把该变量第一个值转换为Decimal类型的值,其余部分被忽略。stringorblob参数也可以是包含上述类型数据的Any类型变量返回值Decimal。函数执行成功时返回相应的Decimal类型值。如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Dec()函数返回0。如果stringorblob参数的值为NULL,则Dec()函数返回NULL。 Double() 功能将字符串或Blob值转换成Double类型的值。 语法Double(stringorblob) 参数stringorblob:string类型变量或Blob类型变量。Blob类型变量时,把该变量第一个值转换为Double类型的值,其余部分被忽略。stringorblob参数也可以是包含上述类型数据的Any类型变量返回值Double。函数执行成功时返回相应的Double类型值。如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Double()函数返回0。如果stringorblob参数的值为NULL,则Double()函数返回NULL。 Integer() 功能 将字符串或Blob值转换成Integer类型的值。 语法Integer ( stringorblob ) 参数stringorblob:string类型变量或Blob类型变量。Blob类型变量时,把该变量第一个值转换为Integer类型的值,其余部分被忽略。stringorblob参数也可以是包含上述类型数据的Any类型变量返回值Integer。函数执行成功时返回相应的Integer类型值。如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Integer()函数返回0。如果stringorblob参数的值为NULL,则Integer()函数返回NULL。 Long() 功能将其它类型的数据转换为Long类型的值。该函数有两种语法格式: 语法一、将两个无符号整数组合成一个长整数值; 语法二、将字符串或Blob值转换成Long类型的值。下面分别予以介绍: 语法一、将两个无符号整数组合成一个长整数值 语法Long ( lowword, highword ) 参数lowword:UnsignedInteger类型,指定长整数中的低位值highword:UnsignedInteger类型,指定长整数中的高位值返回值Long。函数执行成功时返回由低位值和高位值组合后的长整数值,发生错误时返回-1。如果任何参数的值为NULL,则Long()函数返回NULL。 语法二、将字符串或Blob值转换成Long类型的值 语法Long ( stringorblob ) 参数stringorblob:string类型变量或Blob类型变量。Blob类型变量时,把该变量第一个值转换为Long类型的值,其余部分被忽略。stringorblob参数也可以是包含上述类型数据的Any类型变量返回值Long。函数执行成功时返回相应的Long类型值。如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Long()函数返回0。如果stringorblob参数的值为NULL,则Long()函数返回NULL。 Real() 功能将字符串或Blob值转换成Real类型的值。 语法Real ( stringorblob ) 参数stringorblob:string类型变量或Blob类型变量。当该参数是Blob类型变量时,把该变量第一个值转换为Real类型的值,其余部分被忽略。stringorblob参数也可以是包含上述类型数据的Any类型变量返回值Real。函数执行成功时返回相应的Real类型值。如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Real()函数返回0。如果stringorblob参数的值为NULL,则Real()函数返回NULL。 Date() 功能 将其它类型的数据转换为Date类型的数据。该函数有三种语法格式: 语法一、将DateTime类型或第一个值是DateTime或Date的Blob值转换成Date类型的值; 语法二、将其值是个有效日期的字符串转换成Date类型的值; 语法三、将三个整数组合成一个日期。下面分别予以介绍: 语法一、将DateTime类型或第一个值是DateTime或Date的Blob值转换成Date类型的值 语法Date ( datetime ) 参数datetime:DateTime类型的值或第一个值是DateTime或Date的Blob类型的值。当该参数是Blob类型变量时,把该变量第一个值转换为Date类型的值,其余部分被忽略。datetime参数也可以是包含上述类型数据的Any类型变量返回值Date。函数执行成功时返回相应的Date类型值。如果datetime参数中的值不是有效的PowerScript日期或数据类型不兼容,那么Date()函数返回1900-01-01。如果datetime参数的值为NULL,则Date()函数返回NULL。 语法二、将其值是个有效日期的字符串转换成Date类型的值 语法Date ( string ) 参数string:string类型,其值包括一个有效的以字符串形式表示的日期(比如January 1, 1998或12-31-99),string参数也可以是包含字符串类型数据的Any类型变量返回值Date。函数执行成功时返回相应的Date类型值。如果string参数中的值不是有效的PowerScript日期或数据类型不兼容,那么Date()函数返回1900-01-01。如果string参数的值为NULL,则Date()函数返回NULL。 语法三、将三个表示年、月、日的整数组合成一个日期 语法Date ( year, month, day ) 参数year:integer类型,指定日期中的年份,用四位数字表示,从0到9999month:integer类型,指定日期中的月份,用一位或两位数字表示,从1到12day:integer类型,指定日期中的号数,用一位或两位数字表示,从1到31返回值Date。函数执行成功时返回由year、month、day三个参数确定的日期。如果这三个参数中任何一个参数使用了无效值(比如月份指定为14),则Date()函数返回1900-01-01。如果任何参数的值为NULL,则Date()函数返回NULL。 DateTime() 功能 将其它类型的数据转换为DateTime类型的数据。该函数有两种语法格式:语法一、把日期和时间值组合成DateTime类型的值;语法二、将Blob类型的值转换成DateTime类型的值。下面分别予以介绍: 语法一、把日期和时间值组合成DateTime类型的值 语法DateTime ( date {, time } ) 参数date:Date类型的日期值time:可选参数,Time类型的时间值,省略该参数时,PowerBuilder把时间设置为午夜(00:00:00.000000)。当指定该参数时,可以仅仅指定小时值返回值DateTime。函数执行成功时返回日期和时间组合而成的DateTime类型的值。如果任何参数的值为NULL,则DateTime()函数返回NULL。 语法二、将Blob类型的值转换成DateTime类型的值 语法DateTime ( blob ) 参数blob:Blob类型变量,把该变量第一个值转换为DateTime类型的值,其余部分被忽略。blob参数也可以是包含blob类型数据的Any类型变量返回值DateTime。函数执行成功时返回相应的DateTime类型值。如果blob参数的值为NULL,则DateTime()函数返回NULL。 IsDate() 功能检测指定的字符串是否包含有效的日期。 语法IsDate ( datevalue ) 参数datevalue:string类型,指定要检测的字符串返回值Boolean。如果datevalue包含了有效的日期,则IsDate()函数返回TRUE,否则返回FALSE。如果datevalue参数的值为NULL,则IsDate()函数返回NULL。 IsNull() 功能测试变量或表达式的值是否是NULL。 语法IsNull ( any ) 参数any:要测试的变量或表达式返回值Boolean:如果any的值为NULL,函数返回TRUE,否则函数返回FALSE。 IsNumber() 功能测试字符串是否是有效的数值。 语法IsNumber ( string ) 参数string:string类型,要测试的字符串返回值Boolean:如果string的值为有效的PowerScript数字,函数返回TRUE,否则函数返回FALSE。如果string参数的值为NULL,则IsNumber()函数返回NULL。 IsTime() 功能测试字符串的值是否是有效的时间。 语法IsTime ( timevalue ) 参数timevalue:string类型,要测试的字符串返回值Boolean:如果timevalue的值为有效的时间,函数返回TRUE,否则函数返回FALSE。如果timevalue 参数的值为NULL,则IsTime()函数返回NULL。 String() 功能按指定格式将数据转换成字符串。String()可以把Date、DateTime、数值类型、Time、String类型的数据转换成指定格式的字符串。 语法String(data,{format}) 参数data:指定要转换格式的数据,其数据类型可以是Date、DateTime、数值类型、Time、String,也可以是包含上述类型数据的Any类型变量format:可选项,string类型,其值指定数据格式。如果data参数的类型为string,则必须指定format参数返回值String。函数执行成功时返回以字符串方式表示的指定数据,如果data参数的数据类型与format参数指定的格式不匹配、format参数指定的格式无效、或data参数不是前面提到的适宜数据类型时,String()函数返回空字符串(”“)。 用法: format是个用掩码表示的字符串,对data参数为数值类型的情况来说,格式为:正数格式;负数格式;零的显示格式;空的显示格式除第一部分必须提供外,其它部分可以省略。数值型显示格式中使用两个掩码字符:#和0,其中,使用#代表0~9之间的任意数字,0代表每个零都要显示。另外,货币符号($或¥)、百分号(%)、小数点(.)、逗号(,)等字符也可以出现在格式字符串中,但是,除小数点(.)、逗号(,)能够出现在格式字符#和0之间外,其它字符只能放置在格式串的前面或后面,例如,###,###$###是个错误的格式串,¥###,###,###是个正确的格式串。省略format参数时,String()函数使用PowerBuilder缺省格式。注意,如果显示格式有多个部分,各部分之间的分号(;)不能省略。其它字符也可以出现在显示格式字符串中(只能放在格式串的开头和末尾),但它们没有特殊意义,系统只是照原样显示。例如,用显示格式字符串“收入##”格式化数值12时,显示结果为“收入12”。对data参数为字符串(String)类型的情况来说,format参数的语法格式为:正常字符串格式;空值时格式在“正常字符串格式”中,@代表字符串中的任意字符,除此之外的任何字符照原样显示,例如,如果定义了下面的格式:(@@)@@@@-@@@@则字符串0166767593显示为:(01)6676-7593对data参数为日期(Date)类型的情况来说,format参数的语法格式为:正常日期格式;日期为空值时的格式日期格式中格式字符意义如下:d棗开头不带0的日数(如8)dd棗开头带0的日数(如08)ddd棗星期的英文缩写(如Mon、Tue)dddd棗星期的英文全称(如Monday、Tuesday)m棗开头不带0的月份(如8)mm棗开头带0的月份(如08)mmm棗月份的英文缩写(如Jan、Feb)mmmm棗月份的英文全称(如January、February)yy棗两位数字表示的年份(如97)yyyy棗四位数字表示的年份(如1997)另外,还可以使用下面的关键字作为日期的显示格式:[General] Windows系统中定义的短日期格式[LongDate] Windows系统中定义的长日期格式[ShortDate] Windows系统中定义的短日期格式对data参数为时间(Time)类型的情况来说,语法格式为:正常时间格式;时间为空值时的格式时间格式中格式字符意义如下:h开头不带0的小时(比如6)hh棗开头带0的小时(比如06)m棗开头不带0的分钟(比如6)mm棗开头带0的分钟(比如06)s棗开头不带0的秒(比如6)ss棗开头带0的秒(比如06)f棗开头不带0的微秒,可以指定1~6个f,每个f代表一部分微秒AM/PM棗用AM/PM显示上、下午时间,12小时制am/pm棗用am/pm显示上、下午时间,12小时制A/P棗用A/P显示上、下午时间,12小时制a/p棗用a/p显示上、下午时间,12小时制另外,显示格式中还可以使用关键字[Time],它表示按当前Windows系统定义的格式显示时间。对data参数为日期时间(DateTime)类型的情况来说,语法格式为:正常日期时间格式;日期时间为空值时的格式日期时间类型使用的掩码就是把日期掩码和时间掩码结合起来即可。 Time() 功能 把其它类型的数据转换为Time类型的值。该函数有三种语法格式:语法一、将DateTime类型或第一个值是DateTime或Time的Blob值转换成Time类型的值;语法二、将其值是个有效时间的字符串转换成Time类型的值;语法三、将表示时、分、秒、以及微秒的整数组合成一个时间值。下面分别予以介绍: 语法一、将DateTime类型或第一个值是DateTime或Time的Blob值转换成Time类型的值 语法Time ( datetime ) 参数datetime:DateTime类型的值或第一个值是DateTime或Time的Blob类型的值。当该参数是Blob类型变量时,把该变量第一个值转换为Time类型的值,其余部分被忽略。datetime参数也可以是包含上述类型数据的Any类型变量返回值Time。函数执行成功时返回相应的Time类型值。如果datetime参数中的值不是有效的PowerScript时间或数据类型不兼容,那么Time()函数返回00:00:00.000000。如果datetime参数的值为NULL,则Time()函数返回NULL。 语法二、将其值是个有效时间的字符串转换成Time类型的值 语法Time ( string ) 参数string:string类型,其值包括一个有效的以字符串形式表示的时间(比如9am或10:25),string参数也可以是包含时间类型数据的Any类型变量返回值Time。函数执行成功时返回相应的Time类型值。如果string参数中的值不是有效的PowerScript时间或数据类型不兼容,那么Time()函数返回00:00:00.000000。如果string参数的值为NULL,则Time()函数返回NULL。 语法三、将表示时、分、秒、以及微秒的整数组合成一个时间值 语法Time ( hour, minute, second {, microsecond } ) 参数hour:integer类型,指定时间中的小时,从0到23minute:integer类型,指定时间中的分钟,从0到59second:integer类型,指定时间中的秒,从0到59microsecond:integer类型,可选项,指定时间中的微秒,从0到32767返回值Time。函数执行成功时返回由hour、minute、second、microsecond 四个参数确定的时间。如果这四个参数中任何一个参数使用了无效值(比如小时指定为44),则Time()函数返回NULL。 Beep() 功能响铃n次(n超过10时只响10次)。 语法Beep ( n ) 参数n:数值类型,指定需要的响铃次数。如果n的值大于10,那么计算机只响铃10次返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果参数n的值为NULL,Beep()函数返回NULL。 ClassName() 功能确定指定变量的类(数据类型)。 语法ClassName(variable) 参数variable:指定要确定其数据类型的变量返回值String。函数执行成功时返回指定变量的数据类型,发生错误时返回空字符串。如果参数variable的值为NULL,ClassName()函数返回NULL。用法需要注意的是,ClassName()函数不能确定枚举类型变量的类型,此时,ClassName()函数返回空字符串(”“)。 DebugBreak() 功能暂停程序执行,打开调试器,进入调试模式。 语法DebugBreak ( ) 返回值无用法 DebugBreak()函数可以帮助你调试应用程序。如果你希望应用程序执行某条语句后暂停执行,然后进入调试模式,那么可以在该语句后面放上DebugBreak()函数,应用程序执行到DebugBreak()函数后,打开Debug(调试)窗口,并在其中显示当前上下文信息。这种方式实现了应用程序在PowerBuilder开发环境中的即时调试功能。 IntHigh() 功能得到Long型值的高位字。 语法IntHigh ( long ) 参数long:long型值或变量返回值 Integer。函数执行成功时返回参数long的高位字,发生错误时返回-1。如果参数long的值为NULL,IntHigh()函数返回NULL。用法IntHigh()函数通常用于分解外部C或C++语言函数的返回值和Windows消息。 IntLow() 功能得到Long型值的低位字。 语法IntLow ( long ) 参数long:long型值或变量返回值Integer。函数执行成功时返回参数long的低位字,发生错误时返回-1。如果参数long的值为NULL,IntLow()函数返回NULL。用法IntLow()函数通常用于分解外部C或C++语言函数的返回值和Windows消息。示例请参看IntHigh()函数。 IsValid() 功能检查对象变量是否已经实例化,即实例变量的值是否是个有效的对象句柄。 语法IsValid ( objectname ) 参数objectname:要检测的对象名返回值Boolean。如果指定对象已经创建了对象实例,那么IsValid()函数返回TRUE,否则返回FALSE。如果参数objectname的值为NULL,IsValid()函数返回NULL。 KeyDown() 功能检查用户是否按了键盘上指定的键。 语法KeyDown ( keycode ) 参数 keycode:KeyCode枚举类型或integer类型,指明要检测的按键或某个键的ASCII值返回值Boolean。如果用户按了keycode参数指定的按键,函数返回TRUE,否则返回FALSE。如果参数keycode的值为NULL,KeyDown()函数返回NULL。用法KeyDown()函数通常在某个事件的事件处理程序中调用,它并不指明用户键入了哪个字符,而是说明当前事件(即事件处理程序中调用KeyDown()函数的事件)发生时用户正按着哪个按键。一般来说,应用程序在窗口的Key事件或控件的按键事件中调用KeyDown()函数,以检测用户是否按了某个特殊键。对控件来说,PowerBuilder没有定义预定义的Key事件,这也没有关系,如果在控件得到焦点后希望应用程序检测用户的按键,只要对该控件定义一个用户事件,并把pbm_keydown (其它控件)或pbm_dwnkey(数据窗口控件)映射到该用户事件上即可。 MessageBox() 功能显示一个消息对话框。 语法MessageBox(title,text{,icon{,button{,default}}}) 参数title:string类型,指定消息对话框的标题text:指定消息对话框中显示的消息,该参数可以是数值数据类型、字符串或boolean值icon:Icon枚举类型,可选项,指定要在该对话框左侧显示的图标button:Button枚举类型,可选项,指定显示在该对话框底部的按钮default:数值型,可选项,指定作为缺省按钮的按钮编号,按钮编号自左向右依次计数,缺省值为1,如果该参数指定的编号超过了显示的按钮个数,那么MessageBox()函数将使用缺省值返回值Integer。函数执行成功时返回用户选择的按钮编号(例如1、2、3等),发生错误时返回-1。如果任何参数的值为NULL,MessageBox()函数返回NULL。 用法当你的应用程序需要显示一段简短信息(比如显示出错、警告等信息)时,没有必要自己从头创建窗口、安排控件,使用MessageBox()函数既简单又方便。用户只有响应该窗口后,程序才能继续运行下去。MessageBox()函数的icon参数指定显示在窗口中的图标,它是枚举类型,可能取值为:取值 图标Information! StopSign! Exclamation! Question! None! 无图标其中Information!是Icon参数的缺省值。Button参数指定在窗口中显示哪些按钮,有效取值为:取值中文Windows 95下显示OK!“确定”按钮OKCancel!“确定”、“取消”按钮YesNo!“是”、“否”按钮 YesNoCancel!“是”、“否”、“取消”按钮RetryCancel!“重试”、“取消”按钮AbortRetryIgnore!“终止”、“重试”、“忽略”按钮 PixelsToUnits() 功能 将像素值转换为PowerBuilder单位PBU。 语法PixelsToUnits ( pixels, type ) 参数pixels:integer类型,指定要转换为PowerBuilder单位的像素数type:ConvertType枚举类型,指定按哪个方向进行转换。有效取值为:XPixelsToUnits! – 按水平方向转换像素;YPixelsToUnits! – 按垂直方向转换像素返回值Integer。函数执行成功时返回pixels参数指定像素数按指定方向转换成的PowerBuilder单位数,发生错误时返回-1。如果任何参数的值为NULL,PixelsToUnits()函数返回NULL。用法窗口中水平方向和垂直方向相同的像素数表示的距离并不相同。如果你使用水平方向和垂直方向相同的像素数绘制一个方框,那么你会看到,该方框不是正方形而是个矩形,而使用PBU计量的相同单位数将绘出正方形。因此,在进行单位转换时,需要指明按那么方向进行转换。 PopulateError() 功能以应用程序定制的错误号和错误信息填充Error对象,该函数不触发应用对象的SystemError事件。 语法PopulateError ( number, text ) 参数number:integer类型,指定要保存到Error对象number属性中的值text:string类型,指定要保存到Error对象text属性中的值返回值Integer。函数执行成功时返回1,发生错误时返回-1。 用法当应用程序需要根据变量的当前取值来定制Error对象时,可以使用PopulateError()函数来填充Error对象的number和text属性,同时该函数根据上下文自动填充Error对象的其它属性。定制了Error对象后,应用程序可以使用不带参数的SignalError()函数触发应用对象的SystemError事件。这样,在SystemError事件的事件处理程序中可以编写处理定制错误和系统错误的通用代码。如果应用程序没有对SystemError事件编写事件处理程序,那么SignalError()函数什么也不做。 RGB() 功能将代表红、绿、蓝三原色的三个整数组合成一个表示颜色的长整数。 语法RGB ( red, green, blue ) 参数red:integer类型,指定颜色中的红色分量强度,有效值在0到255之间green:integer类型,指定颜色中的绿色分量强度,有效值在0到255之间blue:integer类型,指定颜色中的蓝色分量强度,有效值在0到255之间返回值Long。函数执行成功时返回由指定分量确定的颜色,用长整数表示。发生错误时返回-1。如果任何参数的值为NULL,RGB()函数返回NULL。 用法RGB()函数使用下述公式计算表示颜色的长整数:65536 * Blue+ 256 * Green+ Red其中,Blue代表蓝色分量,Green代表绿色分量,Red代表红色分量。各分量中,数值越小,亮度越低,数值越大,亮度越高。例如,RGB ( 0, 0, 0 )为黑色(亮度最低),RGB ( 255, 255,255 )为白色(亮度最高)。 SetNull() 功能将指定变量的值设置为NULL。这里的变量可以是除数组、结构、自动实例化对象之外的任何数据类型。 语法SetNull ( anyvariable ) 参数anyvariable:要将其值设置为NULL的变量返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,SetNull()函数返回NULL。用法PowerBuilder应用程序在说明变量时,并不自动地将其初值设置为NULL,而是根据类型的不同而设置不同的初值,比如,数值类型的变量自动初始化为0,字符串型变量自动初始化为空字符串(”“)。因此,如果需要将某个变量的值设置为NULL,就需要使用SetNull()函数来完成任务了。一般来说,NULL值往往应用在数据库值未确定的列上。 SetPointer() 功能设置鼠标指针。 语法SetPointer ( type ) 参数type:Pointer枚举类型,指明要设置为哪种鼠标指针返回值Pointer。返回更换前的鼠标指针,以便于应用程序恢复原有指针。如果参数type的值为NULL,SetPointer()函数返回NULL。用法type参数的可能取值为:Arrow!、Cross!、Beam!、HourGlass!、SizeNS!、SizeNESW!、SizeWE!、SizeNWSE!、UpArrow!。 SignalError() 功能以编程方式触发应用对象的SystemError事件。 语法SignalError ( { number }, { text } ) 参数number:integer类型,可选项,指定出错编号,该编号将保存到Error对象的number属性中text:string类型,可选项,指定出错信息,该信息将保存到Error对象的text属性中返回值Integer。函数执行成功时返回1,发生错误时返回-1。用法SignalError()函数通常用于测试应用程序的出错处理代码,它以人工方式产生错误,以此模拟应用程序运行过程中可能出现的错误。我们知道,应用程序本身产生错误的条件往往不容易在测试时遇到。当应用程序使用PopulateError()函数定制了Error对象后,可以以不带参数的方式调用SignalError()函数,由该函数触发应用对象的SystemError事件。如果我们在调用SignalError()函数时指定了参数number和text,那么SignalError()函数将根据上下文填充Error对象的所有属性,然后触发应用对象的SystemError事件。如果应用程序没有对应用对象的SystemError事件编写事件处理程序,那么SignalError()函数什么也不做。 UnitsToPixels() 功能将PowerBuilder单位(PBU)转换为像素。 语法UnitsToPixels ( units, type ) 参数units:integer类型,指定要转换为像素的PowerBuilder单位(PBU)数type:ConvertType枚举类型,指定按哪个方向进行转换。有效取值为:XUnitsToPixels! – 按水平方向转换PBU;YUnitsToPixels! – 按垂直方向转换PBU返回值Integer。函数执行成功时返回units参数指定PBU数按指定方向转换成的像素数,发生错误时返回-1。如果任何参数的值为NULL,UnitsToPixels()函数返回NULL。用法窗口中水平方向和垂直方向相同的像素数表示的距离并不相同。如果你使用水平方向和垂直方向相同的像素数绘制一个方框,那么你会看到,该方框不是正方形而是个矩形,而使用PBU计量的相同单位数将绘出正方形。因此,在进行单位转换时,需要指明按那么方向进行转换。 Blob() Blob()功能将字符串转换成Blob类型数据。 语法Blob ( text ) 参数text: string类型,指定要转换的数据返回值Blob。函数执行成功时返回转换后的Blob类型数据;如果text参数的值为NULL,则Blob()函数返回NULL。 BlobEdit() 功能将任意类型的数据插入到Blob类型变量的指定位置。 语法BlobEdit ( blobvariable, n, data ) 参数blobvariable:Blob类型的已初始化变量,将向该变量中插入数据n:指定插入位置,有效值在1到4,294,967,295之间data:要插入到Blob类型变量中的数据,其数据类型可以是任何有效的PowerBuilder数据类型返回值Unsigned long。函数执行成功时返回下次可以插入数据的位置;如果blobvariable变量中空间不够或任何参数的值为NULL,则BlobEdit()函数返回NULL。 BlobMid() 功能从Blob变量中提取出一段数据。提取之后,原Blob变量内容不变。 语法BlobMid ( data, n {, length } ) 参数data:Blob类型的数据n:指定要提取数据的起始位置,有效值在1到4,294,967,295之间length:可选项,指定要提取数据的长度,以字节为单位,有效值在1到4,294,967,295之间。缺省时提取从指定位置n到末尾的所有数据返回值Blob。函数执行成功时返回指定字节数的数据。如果n的值大于data的字节数,函数返回空。如果n与length的和超过了data数据的字节数,那么BlobMid()函数返回剩下的数据,数据长度将小于参数length的值。如果任何参数的值为NULL,则BlobMid()函数返回NULL。 Len() 功能得到Blob类型变量的数据长度,以字节为单位。 语法Len ( blob ) 参数blob:Blob类型变量返回值Long。函数执行成功时返回blob变量的长度,发生错误时返回-1。如果任何参数的值为NULL,则Len()函数返回NULL。用法如果在说明Blob类型的变量时指定了变量长度,那么对该变量来说,Len()函数得到的就是这个指定的长度。如果在变量说明时未指定变量长度,那么PowerBuilder在赋值时调整长度,未赋值Blob类型变量的长度为0。 String() 功能将Blob类型变量的值转换成字符串类型。如果Blob类型变量的值不是文本型数据,String()函数将其值解释成字符。 语法String ( blob ) 参数blob:要对其值进行类型转换的Blob类型变量返回值String。函数执行成功时返回转换后的数据,失败时返回空字符串(”“)。如果blob变量中包含的数据不是字符串类型的数据,那么String()函数尽可能把数据解释为字符,并返回字符串类型数据。如果blob参数的值为NULL,则String()函数返回NULL。 Clipboard() 功能提取或替换Windows系统剪贴板的文本内容。 语法Clipboard ( { string } ) 参数string:string类型,可选项,指定要复制到系统剪贴板上的文本。如果剪贴板上已有内容的话,该文本将取代剪贴板的当前内容返回值String。函数执行成功时,如果剪贴板上包含文本数据,那么函数返回剪贴板的当前内容;如果剪贴板上包含非文本数据(比如位图)或不包含任何数据,那么函数返回空字符串(”“)。如果string参数的值为NULL,Clipboard()函数返回NULL。用法无论是否指定string参数,Clipboard()都将返回剪贴板的当前内容。当指定string参数时,剪贴板的原有内容被string参数的值取代;省略string参数时,仅仅得到剪贴板的内容。 CommandParm() 功能得到应用程序运行时指定的命令参数。 语法CommandParm ( ) 返回值String。函数执行成功时返回应用程序运行时的命令行参数,函数执行错误或没有命令行参数时函数返回空字符串(”“)。用法命令行参数是应用程序启动时跟在应用程序名称后面的任何参数,比如,在运行窗口中输入了下述命令:MyAppl C:\EMPLOYEE\EMPLIST.TXT那么MyAppl应用程序中使用CommandParm()函数得到的命令行参数为:C:\EMPLOYEE\EMPLIST.TXT当应用程序的命令行中包含几个参数时,CommandParm()函数作为一个字符串返回所有参数。利用字符串操作函数可以分离各参数。在应用对象的Open事件中没有必要执行CommandParm()函数。此时,Open事件的argument参数中包含了命令行参数。 DoScript() 功能执行AppleScript程序段,该函数只在Macintosh平台上有效。 语法DoScript ( script, result ) 参数script:string类型,指定要运行的程序段(script)result:string类型,由AppleScript程序段返回的结果信息或出错信息返回值Integer。返回由AppleScript返回的结果代码。如果任何参数的值为NULL,DoScript()函数返回NULL。 GetApplication() 功能得到当前应用对象的句柄,这样你可以查询或设置应用对象的属性(通常用于编写通用代码)。 语法GetApplication ( ) 返回值Application。返回当前应用对象的句柄。 GetEnvironment() 功能得到操作系统、处理器、屏幕显示等与系统相关的信息。 语法GetEnvironment ( environmentinfo ) 参数environmentinfo:Environment对象名,用于保存系统环境信息返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果参数environmentinfo的值为NULL,GetEnvironment()函数返回NULL。用法当开发交叉平台项目时,利用GetEnvironment()函数,应用程序能够得到当前运行的操作系统、使用的CPU类型、操作系统的版本、屏幕的大小以及颜色数等信息,这些信息的具体表示请参阅本书环境对象(Environment Object)的介绍。 pb常用函数(二)(转) GetFocus() 功能确定当前焦点位于哪个控件上。 语法GetFocus ( ) 返回值GraphicObject。函数执行成功时返回当前得到焦点控件的引用,发生错误时返回无效引用。用法应用程序利用IsValid()函数可以检测GetFocus()是否返回有效的控件引用。同时,使用TypeOf()函数可以确定控件的类型。 Post() 功能将指定消息加入到某个窗口的消息队列中,这个窗口既可以是PowerBuilder应用的窗口,也可以是其它应用的窗口。 语法Post( handle, messageno, word, long ) 参数handle:long类型,指定窗口的系统句柄,将向该窗口邮寄消息messageno:UnsignedInteger类型,指定要邮寄的消息号 word:long类型,指定与消息一起邮寄的word类参数值。如果messageno参数指定的消息不使用该参数,那么将这个参数的值设置为0long:long类型或string,指定与消息一起邮寄的long型参数值或字符串返回值Boolean。如果任何参数的值为NULL,Post()函数返回NULL。 用法Post()函数用于向窗口发送非PowerBuilder预定义事件的消息,这个窗口可以是PowerBuilder应用的窗口,也可以是其它应用的窗口。Post()函数把发送的消息放置在指定窗口消息队列的尾部,然后返回到应用程序中,它并不等待相应事件事件处理程序的执行。这一点与Send()函数不同,Send()函数直接触发指定窗口相应的事件,执行事件处理程序后返回到调用应用中。因此,我们说Post()函数采用的是异步方式,Send()函数采用的是同步方式。Post()函数的参数handle指定接收消息的窗口句柄,对PowerBuilder窗口来说,使用Handle()函数可以得到该句柄。对其它应用程序的窗口来说,可以调用系统API函数查找窗口并得到相应窗口的句柄。如果应用程序要邮寄PowerBuilder定义事件(包括预定义事件和用户定义事件),那么使用PostEvent()函数既简单有方便。当应用程序在long参数位置指定一个字符串时,Post()函数复制一个该字符串的副本,然后将副本的地址传送给指定窗口。 ProfileInt() 功能从初始化文件(.ini)中读取整型设置值。 语法ProfileInt ( filename, section, key, default ) 参数filename:string类型,指定初始化文件的名称,可以包括路径,省略路径时,该函数按操作系统的标准路径搜索指定文件section:string类型,指定要得到的值所在的节(Section)key:string类型,指定要得到的值的名称,不用区分大小写default:integer类型,当指定的文件、节名、项目名不存在或不能转换为整数时,函数返回该参数指定的值返回值Integer。函数执行成功时,在指定的文件、节名、项目名不存在任何错误的情况下,函数返回相应项的值;如果指定的文件、节名、项目名不存在或不能转换为整数时,函数返回default参数指定的缺省值。如果发生错误,函数返回-1。如果任何参数的值为NULL,ProfileInt()函数返回NULL。 ProfileString() 功能从初始化文件(.ini)中读取字符串型设置值。 语法ProfileString ( filename, section, key, default ) 参数filename:string类型,指定初始化文件的名称,可以包括路径,省略路径时,该函数按操作系统的标准路径搜索指定文件section:string类型,指定要得到的值所在的节(Section)key:string类型,指定要得到的值的名称,不用区分大小写default:string类型,当指定的文件、节名、项目名不存在时,函数返回该参数指定的值返回值String。函数执行成功时,在指定的文件、节名、项目名不存在任何错误的情况下,函数返回相应项的值;如果指定的文件、节名、项目名不存在,函数返回default参数指定的缺省值。如果发生错误,函数返回空字符串。如果任何参数的值为NULL,ProfileString()函数返回NULL。 Restart() 功能停止所有程序段的执行、关闭所有窗口、提交事务、断开与数据库的连接,然后重新启动应用程序。 语法Restart() 返回值Integer。函数执行成功时返回1,发生错误时返回-1。 Run() 功能运行指定的应用程序。 语法Run ( string {, windowstate } ) 参数string:string类型,指定要运行的应用程序的名称,其中可以包括路径以及相应的参数,就像在命令行中键入的那样windowstate:WindowState枚举类型,可选项,指定程序运行时的窗口状态。有效取值为:Maximized! – 最大化窗口;Minimized! – 最小化窗口;Normal! – 缺省值,正常窗口返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,Run()函数返回NULL。 用法使用Run()函数,应用程序能够启动操作系统中的任何程序。当在Run()参数中指定了要启动应用程序的参数时,参数的意义、格式、个数等由具体的应用程序确定。如果在Run()函数的string参数中指定了文件名但没有给出扩展名时,PowerBuilder认为该文件的扩展名为.EXE。要运行扩展名不是.EXE的应用程序(比如.BAT, .COM, 或.PIF),必须在Run()函数的参数中指定文件的扩展名。 Send() 功能向窗口发送指定的消息并立即执行相应的事件处理程序。 语法Send( handle, messageno, word, long ) 参数handle:long类型,指定窗口的系统句柄,将向该窗口发送消息messageno:UnsignedInteger类型,指定要发送的消息号word:long类型,指定与消息一起发送的word类参数值。如果messageno参数指定的消息不使用该参数,那么将这个参数的值设置为0long:long类型或string,指定与消息一起发送的long型参数值或字符串返回值Long。函数执行成功时返回Windows系统调用SendMessage()的返回值,发生错误时返回-1。如果任何参数的值为NULL,Send()函数返回NULL。 用法Send()函数用于向窗口发送非PowerBuilder预定义事件的消息,这个窗口可以是PowerBuilder应用的窗口,也可以是其它应用的窗口。Send()函数直接触发指定窗口相应的事件,执行事件处理程序后返回到调用应用中,这一点与Post()函数不同,Post()函数把发送的消息放置在指定窗口消息队列的尾部,然后返回到应用程序中,它并不等待相应事件事件处理程序的执行。因此,我们说Post()函数采用的是异步方式,Send()函数采用的是同步方式。Send()函数的参数handle指定接收消息的窗口句柄,对PowerBuilder窗口来说,使用Handle()函数可以得到该句柄。对其它应用程序的窗口来说,可以调用系统API函数查找窗口并得到相应窗口的句柄。实际上,Send()函数把它的各个参数直接传送给Windows的系统调用SendMessage()。在各种C++开发工具的WINDOWS.H文件中可以查到各消息编号。如果应用程序要发送PowerBuilder定义事件(包括预定义事件和用户定义事件),那么使用TriggerEvent()函数既简单有方便。当应用程序在long参数位置指定一个字符串时,Send()函数复制一个该字符串的副本,然后将副本的地址传送给指定窗口。 SetProfileString() 功能设置初始化文件中指定项的值。 语法SetProfileString ( filename, section, key, value ) 参数filename:string类型,指定初始化文件的名称,可以包括路径,省略路径时,该函数按操作系统的标准路径搜索指定文件section:string类型,指定要设置的值所在的节(Section)key:string类型,指定要设置的值的名称,不用区分大小写default:string类型,指定要设置项的值返回值Integer。函数执行成功时返回1,指定的文件未找到或指定的文件不能访问时函数返回-1。如果任何参数的值为NULL,SetProfileString()函数返回NULL。 ShowHelp() 功能显示应用程序帮助,该帮助使用Microsoft Windows帮助系统进行操作。 语法ShowHelp ( helpfile, helpcommand {, typeid } ) 参数helpfile:string类型,指定帮助文件的名称helpcommand:HelpCommand枚举类型,指定显示帮助的格式。有效取值为:Index! – 显示目录主题,使用该值时不要指定typeid参数;Keyword! – 转移到由指定关键字确定的主题;Topic! – 显示指定主题的帮助typeid:可选项,指定帮助主题返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,ShowHelp()函数返回NULL。 SignalError() 功能触发应用对象的SystemError事件,通常用于代码调试。 语法SignalError ( { number }, { text } ) 参数number:integer类型,可选项,其值将保存到Error对象的number属性中text:string类型,可选项,其值将保存到Error对象的text属性中返回值Integer。函数执行成功时返回1,发生错误时返回-1。 Yield() 功能将控制权转移给其它图形对象,包括非PowerBuilder对象。该函数检测消息队列,如果有消息,就把消息取出。利用该函数可以在执行耗时较长的操作时把控制权转让给其它应用。 语法Yield() 返回值Boolean。如果在消息队列中提取到了消息,那么函数返回TRUE,否则返回FALSE。用法正常情况下,PowerBuilder应用程序在执行一段代码(比如函数或事件处理程序)的过程中不响应用户的操作。对耗时短暂的代码段来说,这种处理方式没有什么不妥的地方,但是,如果某个代码段的执行耗时较长,应用程序又希望为用户提供更多的控制权,那么需要在这段代码中插入Yield()函数,让用户能够进行其它操作,特别在循环执行的代码中更应该如此。应用程序执行Yield()函数后,如果发现消息队列中存在消息,它将允许对象处理这些消息,处理之后,继续Yield()函数后面代码的执行。因此,代码中插入Yield()函数将降低应用程序的运行效率。 Close() 功能关闭窗口并释放窗口以及窗口上的控件所占据的内存。 语法Close(windowname) 参数windowname:要关闭窗口的名称返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果参数windowname的值为NULL,Close()函数返回NULL。 用法应用程序使用Open()或其它Open簇函数打开窗口后,不需要窗口时,可以使用Close()关闭窗口并释放窗口以及窗口上所有控件占据的内存。Close()函数的执行过程为:如果要关闭窗口的CloseQuery和/或Close事件已经编写了事件处理程序,那么执行这些事件处理程序,从屏幕上删除要关闭的窗口、关闭窗口、之后执行调用Close()函数语句后面的语句。当窗口被关闭后,应用程序就不能再访问已经关闭窗口的属性、实例变量、对象函数、以及窗口上的控件了。如果关闭窗口后应用程序依然访问上述特性,那么将引发运行错误。当然,应用程序也可以阻止窗口被关闭,方法很简单,只要在欲阻止关闭窗口的CloseQuery事件处理程序中使用RETURN语句返回1即可,格式为:RETURN1 CloseWithReturn() 功能关闭窗口并将返回值保存在Message对象中,该函数只能对响应窗口使用。 语法CloseWithReturn ( windowname, returnvalue) 参数windowname:要关闭窗口的名称returnvalue:指定关闭窗口时保存到Message对象中的值,调用CloseWithReturn()函数的代码段通过查看Message对象属性的值得到关闭窗口时被关闭窗口传递的值。returnvalue参数必须是下述三种类型之一:String、Numeric、PowerObject返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果参数任何的值为NULL,CloseWithReturn()函数返回NULL。 Open() 功能 打开窗口。该函数有两种语法格式: 语法一、打开编程时已知数据类型的窗口对象; 语法二、打开程序运行后才能确定数据类型的窗口对象。下面分别予以介绍: 语法一、打开编程时已知数据类型的窗口对象 语法Open ( windowvar {, parent } ) 参数windowvar:要打开窗口的窗口名,可以使用窗口画笔定义的窗口对象名,也可以使用该窗口对象的某个变量。Open()函数把打开窗口的引用放置到windowvar变量中parent:可选项,指定要打开窗口的父窗口,要打开窗口成为父窗口的子窗口,只有当要打开窗口需要成为某个窗口的子窗口时才需要指定该参数。如果应用程序使用Open()函数打开某个子窗口或弹出窗口而又省略了该参数,那么当前活动窗口成为被打开窗口的父窗口返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,Open()函数返回NULL。 语法二、打开程序运行后才能确定数据类型的窗口对象 语法Open ( windowvar, windowtype {, parent } ) 参数windowvar:指定窗口变量名,Open()函数把打开窗口的引用放置到该变量中windowtype:string类型,指定要打开窗口的数据类型,该参数指定的窗口数据类型必须与windowvar参数的类型相同或是windowvar类型的后继对象parent:可选项,指定要打开窗口的父窗口,要打开窗口成为父窗口的子窗口,只有当要打开窗口需要成为某个窗口的子窗口时才需要指定该参数。如果应用程序使用Open()函数打开某个子窗口或弹出窗口而又省略了该参数,那么当前活动窗口成为被打开窗口的父窗口返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,Open()函数返回NULL。 OpenSheet() 功能在MDI框架窗口中打开MDI子窗口,并在指定菜单中创建选择该子窗口的菜单项。 语法OpenSheet(sheetrefvar{,windowtype},mdiframe{,position{,arrangeopen}}) 参数sheetrefvar:指定要作为工作表打开的窗口名windowtype:string类型,可选项,指定要打开窗口的类型(也就是窗口画笔中保存的窗口对象名)mdiframe:指定要放置工作表的MDI框架窗口名position:可选参数,指定所打开的工作表的名称作为一个菜单项显示在第几个菜单标题下面,缺省时,被放在倒数第二个菜单标题下,原因是,大多数商业软件的最后两个菜单标题是Window和Help,把工作表的名称放到Window菜单标题中用于选择工作表窗口是个合情合理的选择arrangeopen:ArrangeOpen枚举类型,可选参数,但如果选用了此参数,那么position参数也必须同时指定。arrangeopen参数告诉系统如何显示打开的工作表返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果参数任何的值为NULL,OpenSheet()函数返回NULL。 用法arrangeopen参数的可能取值为:Cascaded!把一个工作表放在另一个的上面,每个都向右下方偏移一点,这样所有工作表的标题栏用户都能看到。该值是OpenSheet()函数的缺省选择。Layered!将工作表显示在客户区的左上角,并最大化工作表,使其充满MDI框架窗口的整个客户区。Original!操作动作与Cascaded!参数相同,只是不放大窗口,而以窗口定义时的大小显示。 OpenSheetWithParm() 功能 在MDI框架窗口中打开MDI子窗口,同时把参数保存在Message对象中进行传递。 语法OpenSheetWithParm(sheetrefvar,parameter{,windowtype},mdiframe{,position{,arrangeopen}} 参数sheetrefvar:指定要作为工作表打开的窗口名parameter:指定要传递给打开工作表的数据,该数据保存在Message对象的属性中, parameter参数的数据类型必须是下述三种类型之一:String、Numeric、PowerObjectwindowtype:string类型,可选项,指定是要打开窗口的类型(也就是窗口画笔中保存的窗口对象名)mdiframe:指定要放置工作表的MDI框架窗口名position:可选参数,指定所打开的工作表的名称作为一个菜单项显示在第几个菜单标题下面,缺省时,被放在倒数第二个菜单标题下,原因是,大多数商业软件的最后两个菜单标题是Window和Help,把工作表的名称放到Window菜单标题中用于选择工作表窗口是个合情合理的选择arrangeopen:ArrangeOpen枚举类型,可选参数,但如果选用了此参数,那么position参数也必须同时指定。arrangeopen参数告诉系统如何显示打开的工作表返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果参数任何的值为NULL,OpenSheet()函数返回NULL。 用法arrangeopen参数的可能取值为:Cascaded!把一个工作表放在另一个的上面,每个都向右下方偏移一点,这样所有工作表的标题栏用户都能看到。该值是OpenSheet()函数的缺省选择。Layered!将工作表显示在客户区的左上角,并最大化工作表,使其充满MDI框架窗口的整个客户区。Original!操作动作与Cascaded!参数相同,只是不放大窗口,而以窗口定义时的大小显示。 OpenWithParm() 功能带参数打开窗口,与打开窗口的Open()函数相似,OpenWithParm()有两种语法格式: 语法一、带参数打开编程时已知数据类型的窗口对象; 语法二、带参数打开程序运行后才能确定数据类型的窗口对象。下面分别予以介绍: 语法一、带参数打开编程时已知数据类型的窗口对象 语法OpenWithParm(windowvar,parameter{,parent}) 参数windowvar:要打开窗口的窗口名,可以使用窗口画笔定义的窗口对象名,也可以使用该窗口对象的某个变量。Open()函数把打开窗口的引用放置到windowvar变量中parameter:指定要传递给打开窗口的数据,该数据保存在Message对象的属性中,parameter参数的数据类型必须是下述三种类型之一:String、Numeric、PowerObjectparent:可选项,指定要打开窗口的父窗口,要打开窗口成为父窗口的子窗口,只有当要打开窗口需要成为某个窗口的子窗口时才需要指定该参数。如果应用程序使用Open()函数打开某个子窗口或弹出窗口而又省略了该参数,那么当前活动窗口成为被打开窗口的父窗口返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,OpenWithParm()函数返回NULL。 用法消息对象Message有三个属性用于存储OpenWithParm()函数传递给打开窗口的数据。根据parameter参数数据类型的不同,该参数的值保存在Message对象的不同属性中。 语法二、带参数打开程序运行后才能确定数据类型的窗口对象 语法OpenWithParm(windowvar,parameter,windowtype{,parent}) 参数windowvar:指定窗口变量名,Open()函数把打开窗口的引用放置到该变量中parameter:指定要传递给打开窗口的数据,该数据保存在Message对象的属性中,parameter参数的数据类型必须是下述三种类型之一:String、Numeric、PowerObjectwindowtype:string类型,指定要打开窗口的数据类型,该参数指定的窗口数据类型必须与windowvar参数的类型相同或是windowvar类型的后继对象parent:可选项,指定要打开窗口的父窗口,要打开窗口成为父窗口的子窗口,只有当要打开窗口需要成为某个窗口的子窗口时才需要指定该参数。如果应用程序使用Open()函数打开某个子窗口或弹出窗口而又省略了该参数,那么当前活动窗口成为被打开窗口的父窗口返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,OpenWithParm()函数返回NULL。 CloseChannel() 功能关闭先前用OpenChannel()函数打开的DDE服务器的通道。 语法CloseChannel ( handle {, windowhandle } ) 参数handle:long类型,通道句柄,指明要关闭的DDE通道windowhandle:long类型,可选项,指明用做DDE客户的PowerBuilder窗口的窗口句柄返回值Integer。函数执行成功时返回1,发生错误时返回下述值之一:-2通道不能被关闭-3不能确认服务器-9Handle参数的值为NULL ExecRemote() 功能请求DDE服务器应用程序执行命令。该函数有两种语法格式:语法一、直接向DDE服务器应用发送一条命令(冷连接方式);语法二、应用程序打开某个通道后向DDE服务器应用发送命令(热连接方式)。下面分别予以介绍。 语法一、直接向DDE服务器应用发送一条命令(冷连接方式); 语法ExecRemote ( command, applname, topicname ) 参数command:string类型,其值为希望DDE服务器应用执行的命令,命令格式和语法需要参看DDE服务器应用的文档applname:string类型,指定服务器应用的DDE名称topicname:string类型,指定命令中要使用的DDE应用的数据或实例返回值Integer。函数执行成功时返回1,发生错误时返回下述值之一:-1未启动连接-2请求被拒绝-3不能终止服务器如果任何参数的值为NULL,ExecRemote()函数返回NULL。 语法二、应用程序打开某个通道后向DDE服务器应用发送命令(热连接方式) 语法ExecRemote ( command, handle {, windowhandle } ) 参数command:string类型,其值为希望DDE服务器应用执行的命令,命令格式和语法需要参看DDE服务器应用的文档handle:long类型,指定使用的DDE通道句柄windowhandle:long类型,可选项,指明用做DDE客户的PowerBuilder窗口的窗口句柄。省略该参数时,当前应用中的活动窗口用做DDE客户返回值Integer。函数执行成功时返回1,发生错误时返回下述值之一:-1未启动连接-2请求被拒绝-9handle参数的值为NULL GetDataDDE() 功能从热连接服务器应用中获取数据,并将其保存到指定的字符串变量中。 语法GetDataDDE ( string ) 参数string:string类型变量,用于保存接收到的数据返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,GetDataDDE()函数返回NULL。 GetDataDDEOrigin() 功能确定来自热连接DDE服务器应用的数据源,成功时将应用的DDE标识保存在参数指定的变量中。 语法GetDataDDEOrigin ( applstring, topicstring, itemstring ) 参数applstring:string类型变量,用于保存服务器应用的名称topicstring:string类型变量,用于保存主题(比如,在Excel中,主题可以是REGION.XLS)itemstring:string类型变量,用于保存数据项标识(比如,在Excel中,数据项标识可以是R1C2)返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,GetDataDDEOrigin()函数返回NULL。 GetRemote() 功能请求服务器应用传送数据,该函数有两种格式:语法一、请求DDE服务器应用提供数据并将数据保存在变量中,该格式不要求事先打开通道,适用于仅发出少数几个请求的情况;语法二、请求DDE服务器应用提供数据并将数据保存在变量中,该格式适用于热连接的情况,即应用程序已经与服务器建立通道。下面分别予以介绍。 语法一、请求DDE服务器应用提供数据并将数据保存在变量中,该格式不要求事先打开通道,适用于仅发出少数几个请求的情况。 语法GetRemote ( location, target, applname, topicname ) 参数location:string类型,指明要从DDE服务器的哪个位置返回数据。位置的表达方式由具体的DDE服务器决定target:string类型变量,用于保存返回的数据applname:string类型,指定DDE服务器应用的DDE名称topicname:string类型,指定命令中要使用的DDE应用的数据或实例返回值Integer。函数执行成功时返回1,发生错误时返回下述值之一:-1未启动连接-2请求被拒绝如果任何参数的值为NULL,GetRemote()函数返回NULL。 语法二、请求DDE服务器应用提供数据并将数据保存在变量中,该格式适用于热连接的情况,即应用程序已经与服务器建立通道。语法GetRemote ( location, target, handle {, windowhandle } )参数location:string类型,指明要从DDE服务器的哪个位置返回数据。位置的表达方式由具体的DDE服务器决定target:string类型变量,用于保存返回的数据handle:long类型,指定使用的DDE通道句柄 windowhandle:long类型,可选项,指明用做DDE客户的PowerBuilder窗口的窗口句柄。省略该参数时,当前应用中的活动窗口用做DDE客户。使用handle()函数可以得到窗口句柄。返回值Integer。函数执行成功时返回1,发生错误时返回下述值之一:-1未启动连接-2请求被拒绝-9Handle参数的值为NULL OpenChannel() 功能打开连接DDE服务器的通道。 语法OpenChannel ( applname, topicname {, windowhandle } )applname:string类型,指定DDE服务器应用的DDE名称topicname:string类型,指定命令中要使用的DDE应用的数据或实例windowhandle:long类型,可选项,指明用做DDE客户的PowerBuilder窗口的窗口句柄。省略该参数时,当前应用中的活动窗口用做DDE客户返回值Long。函数执行成功时返回一个正数作为已打开通道的句柄,发生错误时返回下述值之一:-1打开失败-9句柄为NULL RespondRemote() 功能发送一条DDE消息,指示是否接受来自远程DDE应用的命令或数据。 语法RespondRemote ( boolean ) 参数boolean:其值为boolean量的逻辑表达式,TRUE表示接收先前收到的命令或数据,FALSE表示不接收先前收到的命令或数据返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果boolean参数的值为NULL,RespondRemote()函数返回NULL。 SetRemote() 功能请求服务器应用把指定项设置为指定值。该函数有两种语法格式:语法一、请求DDE服务器应用接收保存在指定位置的数据,该格式不要求事先打开通道,适用于仅发出少数几个请求的情况;语法二、请求DDE服务器应用接收保存在指定位置的数据,该格式适用于热连接的情况,即应用程序已经与服务器建立通道。下面分别予以介绍。 语法一、请求DDE服务器应用接收保存在指定位置的数据,该格式不要求事先打开通道,适用于仅发出少数几个请求的情况。 语法SetRemote ( location, value, applname, topicname ) 参数location:string类型,指明要DDE服务器的哪一部分接收数据。位置的表达方式由具体的DDE服务器决定value:string类型变量,指定发送给DDE服务器的数据applname:string类型,指定DDE服务器应用的DDE名称topicname:string类型,指定要接收数据的DDE应用的数据或实例返回值Integer。函数执行成功时返回1,发生错误时返回下述值之一:-1未启动连接-2请求被拒绝如果任何参数的值为NULL,SetRemote()函数返回NULL。 语法二、请求DDE服务器应用接收保存在指定位置的数据,该格式适用于热连接的情况,即应用程序已经与服务器建立通道。 语法SetRemote ( location, value, handle {, windowhandle } ) 参数location:string类型,指明要DDE服务器的哪一部分接收数据。位置的表达方式由具体的DDE服务器决定value:string类型变量,指定发送给DDE服务器的数据handle:long类型,指定使用的DDE通道句柄windowhandle:long类型,可选项,指明用做DDE客户的PowerBuilder窗口的窗口句柄。省略该参数时,当前应用中的活动窗口用做DDE客户返回值Integer。函数执行成功时返回1,发生错误时返回下述值之一:-1未启动连接-2请求被拒绝-9Handle参数的值为NULL StartHotLink() 功能建立与DDE服务器应用的热连接,热连接建立之后,DDE服务器端相关数据的变化会立即触发PowerBuilder应用相关窗口的HotLinkAlarm事件。 语法StartHotLink ( location, applname, topic ) 参数location:string类型,指明DDE服务器哪一部分数据变化时触发窗口的HotLinkAlarm事件。位置的表达方式由具体的DDE服务器决定applname:string类型,指定DDE服务器应用的DDE名称topicname:string类型,指定数据改变将触发窗口的HotLinkAlarm事件的DDE应用的数据或实例返回值Integer。函数执行成功时返回1,发生错误时返回下述值之一:-1无指定服务器-2请求被拒绝如果任何参数的值为NULL,StartHotLink()函数返回NULL。 StopHotLink() 功能关闭与DDE服务器应用的热连接。 语法StopHotLink ( location, applname, topic ) 参数location:string类型,指明要终止DDE服务器哪一部分的热连接。位置的表达方式由具体的DDE服务器决定applname:string类型,指定DDE服务器应用的DDE名称topicname:string类型,指定要终止热连接的DDE应用的数据或实例返回值Integer。函数执行成功时返回1,发生错误时返回下述值之一:-1连接未曾启动-2请求被拒绝-3不能终止服务器如果任何参数的值为NULL,StopHotLink()函数返回NULL。   CPU() 功能得到自当前应用程序启动后开始CPU所消耗的时间,以毫秒为单位。 语法CPU() 返回值Long。返回自当前应用程序启动后开始CPU所消耗的时间,以毫秒为单位。 Idle() 功能该函数在用户每次活动(例如,按键盘、移动鼠标等)后重置定时器,n秒后触发应用对象的Idle事件。 语法Idle ( n ) 参数n:指定空闲时间间隔,以秒为单位。该参数的值设置为0时,停止空闲检测,不再触发应用对象的Idle事件返回值Integer。函数执行成功时返回1,此时启动定时器。如果不能启动定时器或定时器未启动而n的值指定为0时,函数返回-1。如果任何参数的值为NULL,Idle()函数返回NULL。用法利用Idle()函数,应用程序可以构造自己的屏幕保护程序,避免安全数据的泄露。当使用Idle()函数已经启动了定时器后,如果再次以非0参数调用Idle()函数,那么该函数重设时间间隔,但并不启动新的定时器。Idle()函数启动定时器后,如果在指定的时间间隔(从用户最近一次操作算起)内没有操作应用程序,那么就触发应用对象的Idle事件,在这个事件中可以编写关闭窗口、退出数据库登录等一系列代码,然后使用Restart()函数重新启动应用程序,起到保密的目的。发生下述任何情况时,系统自动重置定时器(即重新开始计时):n 用户在该应用程序的任何窗口内移动鼠标或单击鼠标(双击鼠标时首先触发单击事件)n 在该应用程序的某个窗口是当前窗口时用户按下了任意一个或多个键n 在该应用程序的窗口最小化时,用户在该应用的图标上单击鼠标或移动鼠标n 在该应用程序的窗口最小化并且该应用程序是当前应用程序(应用名称被加亮显示)时,用户按了任何按键n 可视数据窗口检索数据时引起的编辑控件(指漂浮在数据窗口当前行/列上的编辑控件)重绘操作 Timer() 功能 在指定的时间间隔内反复触发指定窗口的定时器事件。 语法Timer ( interval {, windowname } ) 参数interval:指定两次触发Timer事件之间的时间间隔,有效值在0到65之间。如果该参数的值指定为0,那么关闭定时器,不再触发指定窗口的Timer事件windowname:窗口名,指定时间间隔到时要触发哪个窗口的Timer事件。省略该参数时,触发当前窗口的Timer事件返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,Timer()函数返回NULL。用法使用Timer()函数可以周期性地触发指定窗口的Timer事件,这样,每当时间间隔过去时,应用程序都可以完成一些周期性的工作,比如绘制简单动画等。将Timer()的interval参数设置为非0值时启动定时器并开始计时;将该函数的interval参数设置为0时关闭定时器,终止计时任务。需要注意的是,在Microsoft Windows系统中,该函数能够计时的最小时间间隔为0.055秒(约1/18秒),如果把interval参数的值设置小于0.055,那么该定时器将每隔0.055秒触发一次窗口的Timer事件。Microsoft Windows 3.x最多只支持系统中同时启动16个定时器。 Day() 功能得到日期型数据中的号数(1到31之间的整数值)。 语法Day ( date ) 参数date:要得到号数的日期值返回值 Integer。函数执行成功时返回号数(1到31之间的整数值)。如果date参数的值为NULL,则Day()函数返回NULL。 DayName() 功能得到指定日期是一周中的星期几(例如,Sunday, Monday…)。 语法DayName ( date ) 参数date:date类型值或变量返回值String。函数执行成功时返回指定日期的星期表示(例如,Sunday, Monday…)。如果date参数的值为NULL,则DayName()函数返回NULL。 DayNumber() 功能得到日期型数据是一星期中的第几天(用1到7之间的整数表示,星期天为1,星期一为2,…)。 语法DayNumber ( date ) 参数date:date类型值或变量返回值Integer。函数执行成功时返回指定日期是一星期中的第几天(用1~7表示,星期天为1,星期一为2,…)。如果date参数的值为NULL,则DayNumber()函数返回NULL。 DaysAfter() 功能得到两个日期间的天数。 语法DaysAfter ( date1, date2 ) 参数date1:date类型,指定起始日期date2:date类型,指定终止日期返回值Long。函数执行成功时得到两个日期之间的天数。如果date2的日期在date1的前面,那么DaysAfter()函数返回负值。如果任何参数的值为NULL,则DaysAfter()函数返回NULL。 Hour() 功能得到时间值中的小时,采用24小时制。 语法Hour ( time ) 参数time:time类型的值返回值Integer。函数执行成功时得到time参数中的小时(00到23之间)。如果time参数的值为NULL,则Hour()函数返回NULL。 Minute() 功能得到时间值中的分钟,有效值在00~59之间。 语法Minute ( time ) 参数time:time类型的值返回值Integer。函数执行成功时得到time参数中的分钟(00到59之间)。如果time参数的值为NULL,则Minute()函数返回NULL。 Month() 功能得到日期值中的月份,有效值在1~12之间。 语法Month ( date ) 参数date:date类型的值返回值Integer。函数执行成功时得到date参数中的月份(1到12之间)。如果date参数的值为NULL,则Month()函数返回NULL。 Now() 功能得到客户机的当前系统时间,返回值为Time类型。 语法Now()返回值Time。该函数返回客户机的当前系统时间。 RelativeDate() 功能得到指定日期前多少天或后多少天的日期。 语法RelativeDate(date,n) 参数date:Date类型,指定基准日期n:integer类型,指定天数返回值Date。当n的值大于0时返回参数date指定日期后第n天的日期;当n的值小于0时返回参数date指定日期前第n天的日期。如果任何参数的值为NULL,则RelativeDate()函数返回NULL。 RelativeTime() 功能得到指定时间前多少秒或后多少秒的时间,采用24小时制。 语法RelativeTime ( time, n )参数time:time类型,指定基准时间n:long类型,指定秒数返回值Time。当n的值大于0时返回参数time指定时间后第n秒的时间;当n的值小于0时返回参数time指定时间前第n秒的时间。如果任何参数的值为NULL,则RelativeTime()函数返回NULL。 Second() 功能得到时间值中的秒,有效值在00~59之间。 语法Second ( time ) 参数time:time类型的值返回值Integer。函数执行成功时得到time参数中的秒(00到59之间)。如果time参数的值为NULL,则Second()函数返回NULL。 Today() 功能得到当前系统日期,在某些情况下,同时得到当前系统时间。 语法Today()返回值Date。该函数返回当前系统日期。用法单独调用Today()函数时,该函数总是返回当前系统日期,但是,虽然Today()函数的返回值类型为Date,在该函数用做某些函数的参数、而该参数要求DateTime类型的值时,Today()函数也能够在返回当前系统日期的同时返回当前系统时间。再如,Today()函数作为数据窗口控件SetItem()函数的参数,该函数参数中指定的数据窗口列的数据类型为DateTime,那么当前系统日期和时间将同时设置到数据窗口指定项中。 Year() 功能得到日期值中的年度(有效取值1000到3000)。 语法Year(date) 参数date:date类型的值返回值Integer。函数执行成功时得到date参数中的年份(采用四位数字),发生错误时返回1900,如果date参数的值为NULL,则Year()函数返回NULL。用法当应用程序把有两位数字表示年份的字符串转换成日期时,PowerBuilder根据下述规则选择世纪:如果年份值在00到49之间,PowerBuilder将年份中的世纪(前两位数字)当作20;如果年份值在50到99之间,PowerBuilder将年份中的世纪(前两位数字)当作19。比如,字符串”20-10-25″被PowerBuilder转换为2020-10-25;字符串”98-10-25″被PowerBuilder转换为1998-10-25。因此,如果应用程序中需要指定1950年之前的日期,应该使用四位数字表示年份,以避免引起歧义。PowerBuilder能够处理的年份从1000到3000之间。   FileClose() 功能关闭先前用FileOpen()函数打开的文件。 语法FileClose ( fileno ) 参数fileno:integer,指定要关闭文件的文件句柄,该句柄使用FileOpen()函数打开文件时得到返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果fileno参数的值为NULL,那么FileClose()函数返回NULL。 FileDelete() 功能删除指定的文件。 语法FileDelete ( filename ) 参数filename:string类型,指定要删除文件的文件名,其中可以包含路径返回值Boolean。函数执行成功时返回TRUE,发生错误时返回FALSE。如果filename参数的值为NULL,那么FileDelete()函数返回NULL。 FileExists() 功能检查指定的文件是否存在。 语法FileExists ( filename ) 参数filename:string类型,指定要检查存在性的文件的文件名,其中可以包含路径返回值Boolean。如果指定文件存在时返回TRUE,不存在时返回FALSE。如果filename参数的值为NULL,那么FileExists()函数返回NULL。用法如果filename参数指定的文件被另一个应用加锁锁住,那么FileExists()函数也将返回FALSE。 FileLength() 功能得到指定文件的长度(以字节为单位)。 语法FileLength ( filename ) 参数filename:string类型,指定要得到其长度的文件的文件名,其中可以包含路径返回值Long。函数执行成功时返回指定文件的长度(以字节为单位)。如果指定的文件不存在,函数返回-1。如果filename参数的值为NULL,那么FileLength()函数返回NULL。 FileOpen() 功能以指定的读写方式打开指定的文件,同时返回该文件的句柄。 语法FileOpen(filename{,filemode{,fileaccess{,filelock{,writemode,{creator,filetype}}}}}) 参数filename:string类型,指定要打开文件的名称,其中可以包含路径 filemode:FileMode枚举类型,可选项,指定文件打开方式。有效取值为:?LineMode! – 缺省值,行模式;?StreamMode! – 流模式fileaccess:FileAccess枚举类型,可选项,指定文件访问方式。有效取值为:?Read! – 缺省值,只读方式,这样打开的文件只能进行读操作;?Write! – 只写方式,这样打开的文件只能进行写操作?filelock:FileLock枚举类型,可选项,指定文件加锁方式。有效取值为:n LockReadWrite! – 缺省值,只有打开该文件的用户能够访问该文件,其它用 户对该文件的访问均被拒绝;n LockRead! – 只有打开该文件的用户能够读该文件,但其它任何用户均可写该文件;n LockWrite! – 只有打开该文件的用户能够写该文件,但其它任何用户均可读该文件;n Shared! – 所有用户均可读写该文件writemode:WriteMode枚举类型,可选项,当fileaccess参数指定为Write!时,该参数指定在指定文件已经存在时数据的添加方式。有效取值为:?Append! – 缺省值,将数据添加到原文件尾部;?Replace! – 覆盖原有数据creator:可选项,用于Macintosh机,使用四个字符的字符串指定文件的创建者。指定该参数后,必须同时指定filetype参数filetype:可选项,用于Macintosh机,使用四个字符的字符串指定文件类型返回值Integer。函数执行成功时返回打开文件的句柄,随后的文件操作函数利用该句柄完成对文件的操作。发生错误时函数返回-1。如果任何参数的值为NULL,那么FileOpen()函数返回NULL。用法当文件以行模式打开时,每执行一次FileRead()函数读取一行数据;每执行一次FileWrite()函数,该函数自动在写出的字符串末尾增加一个回车(CR)换行(LF)符(这是应用程序在Windows 系统中运行时的情况,在UNIX下只加一个换行字符)。当文件以流模式打开时,执行一次FileRead()函数读取32,765个字节的数据,如果余下数据没有这么多,那么FileRead()函数就读取所有余下的数据;执行一次FileWrite()函数时,最多可写入32,765个字节的数据,并且不添加回车换行字符。当文件以写方式使用FileOpen()函数打开时,如果指定的文件不存在,那么FileOpen()函数创建该文件。 FileRead() 功能从指定文件中读取数据。 语法FileRead ( fileno, variable ) 参数fileno:integer类型,指定文件句柄(由FileOpen()函数得到)variable:string或blob类型的变量,用于保存读取的数据返回值Integer。函数执行成功时返回读取的字符数或字节数;如果在读取任何字符前读到了文件结束符(EOF),则FileRead()函数返回-100;当指定文件以行模式打开时,如果在读取任何字符之前遇到了回车(CR)或换行(LF)字符,则FileRead()函数返回0。如果发生其它错误,FileRead()函数返回-1。如果任何参数的值为NULL,那么FileRead()函数返回NULL。用法当指定文件以行模式(Line Mode)打开时,FileRead()函数一次读取一行数据,并把它保存到参数variable中,然后跳过行结束符(回车换行符,操作系统不同,使用的字符也不同),把文件指针移动到下一行的起始位置。当文件以流模式(Stream Mode)打开时,FileRead()函数或一直读取到文件结尾,或读取32,765字节的数据,决定于两者哪个数据长度更短些。 FileSeek() 功能将文件指针移动到指定位置。读写文件时相应函数会自动移动文件指针。 语法FileSeek ( fileno, position, origin ) 参数fileno:integer类型,指定文件句柄(由FileOpen()函数得到)position:long类型,指定相对于origin参数指定位置的新位置偏移量,以字节为单位origin:SeekType枚举类型,指定从哪里开始移动文件指针,即指针移动的基准。有效取值为:?FromBeginning! – 缺省值,从文件开头移动指针;?FromCurrent! – 从当前位置移动文件指针;?FromEnd! – 从文件结尾处移动文件指针返回值Long。函数执行成功时返回指针移动后的指针位置。如果任何参数的值为NULL,那么FileSeek()函数返回NULL。

Windows 8 × Windows XP 双系统

本文最后更新于(2012-11-13 17:05:24),链接可能失效,内容可能难以复现。请注意甄别。
  2012-11-13 © Sunplace,2012
 
引言&重要提示 由于工作需要,笔者折腾了这个。 这次是在Windows 8 ×64企业版里安装Windows XP,笔者用的是原版镜像,不保证ghost版本可以。数据可贵,记得备份。 准备工具:NTBOOTautofix,原版Windows XP,网卡驱动(建议下载驱动精灵集成万能网卡驱动版)。 1.将某个磁盘清空: 例如,C盘安装了Win 8,想在D盘安装Win XP,那就需要把D盘清空(如果不需要里面的数据也可无视)。 2.安装Win XP: 可以使用Win XP安装光盘或者U盘安装,安装前记得在bios设置时,将硬盘的AHCI改为IDE。 3.修复OS引导 进入XP后,运行NTBOOTautofix,直到提示修复成功。 4.网卡驱动安装 如果安装完成的XP不能上网,就需要安装网卡驱动了。 5.完成 由于XP是IDE,Win Vista/7/8是AHCI,所以在开机出现第一个logo时进入bios改为你想进入的OS支持的接口。之后,在启动项目中切换就好了。