1 string(today(),"m/d/yy hh:mm")//返回当前系统日期和时间
string date1
date1=string(today(),"mm/dd/yyyy hh:mm")
sle_1.text=date1
2 integer li_filenum
li_filenum=fileopen("C:\Documents and Settings\Administrator\桌面\新建 文本文档")
3 long ll_lengh
ll_lengh=filelength("c:\east\aa.txt")//得到c盘目录下AA.TXT文件的长度
4 fileopen fileexists(string型文件名字) 检查指定文件是否存在
5 fileread filewrite 读写数据
6 getfileopenname(“标题”,string,string{,"需要打开的文件扩展名","条件"})
举列:
string docname,named
integer value
value=getfileopenname("打开文件",docname,named,"DOC",&
"文本文件(*.txt),*.txt,"&
+"doc文件(*.doc),*.doc")
if value=1 then
fileopen(docname)
end if
显示打开文件对话框,之后打开用户选中的文件。对话框中显示TXT和DOC类型的文件。
7 getfilesavename()显示保存文件对话框,让用户选择要保存的文件。(用法同上)
8 changedirectory(设置为当前目录的目录名称)
将当前目录设置为当前目录的父目录,并将新的当前目录显示在单行编辑框sle_1中:
changedirectory("...")
sle_1.text=getcurrentdirectory()
9 createdirectory(要创建的目录名称string) 创建一个目录
createdirectory("c:\zcf")在C盘根目录下创建一个新目录zcf
10 directoryexists(要检查的目录是否存在)
在移动文件之前检查目标文件是否存在,存在时,移动文件……
string is_path="c:\图片集"
if directoryexists(is_path) then
filemove("C:\Documents and Settings\Administrator\桌面\5.JPEG",is_path+"\JPEG")
messagebox("图片移动","照片已经移动到“"+is_path+"”下。")
else
messagebox("图片移动","目录“+is_path+”不存在!")
end if
11 getcurrentdirectory()得到应用程序的当前目录
12 removedirectory()删除指定目录 注:指定目录必须是空目录
13 数值计算函数
abs(n) :n的数据类型,计算n的绝对值
ceiling(n) :n的数据类型,返回大于N 的最小整数
cos(n) :double型,余弦函数
exp(n) :double型,计算e的n次方
fact(n) :double型,计算n的阶乘
int(n) :integer型,得到小于等于n的最大整数
log(n) :double型,计算n的自然对数
logten(n):double型,计算n的常用对数(以10为底)
max(x,y)/min(x,y):xy中更精确的数据类型,最大最小值
mod(x,y):(同上)求余数
pi(n) :double型,求n与pi(3.1415926 ……)的乘积
rand(n) :n的数据类型,得到1与n之间的一个伪随机数
round(x,n):decimal型,将x四舍五入到小数点后n位
sign(n) :integer型,确定n是整数,负数,还是零
sin(n) :double型,正弦函数
sqrt(n) :double,计算平方根
tan正切函数,asin反正弦,acos反余弦,atan反正切
truncate(x,n):double,截断数值到指定的小数位 列:truncate(9.62,1)返回9.6
计算正弦
real degree, cosine
degree=real(sle_2.text)
cosine=sin(degree*(pi(2)/360))
sle_1.text=string(cosine)
14 字符串操作函数
函数 返回值 功能
asc(string) :(integer)得到字符串第一个字符的ascll码整数值
char(n) :(char)抽取字符串第一个字符或者把整数转换成字符
fill(chars,n) :(string)建立一个由指定字符填充的指定长度的字符串
//返回由40个*组成的字符串 :fill("*",40)
lastpos(string1,string2{,searchlength}):(long)查找目标字符串在原字符串中最后一次出现的位置//string1源字符串,searchlength指定进行搜索的字符串长度,默认为整个字符串
列:lastpos("SUNNY BOY","N") 返回值4. 注意字符有大小写区别
lastpos("SUNNY BOY","BO",5) 返回值0。因为前面五个字符不包括BO
left(string,n) :(string)得到字符串左部指定n个的字符
right(string,n) :(string)从字符串尾部取指定个数字符
len(string or blob):(long)返回字符串的长度
lenw(string or blob):(long)在数据窗口中返回字符串的长度
lefttrim(string):(string)删除字符串左部的空格
righttrim(string):(string)删除字符串尾部空格
lower(string) :(string)将字符串的大写字母转换成小写
match(string字串,textpatterm模式):(boolean)确定字符串中是否包含指定模式的字符
模式包括:^起 $尾 . [] - 等 *+?跟在字符后面表示可以出现的次数
mid(string,start{,length}):(string)取字符串的子串
例如:mid("abcdefgh",4)返回值defgh 从第四位开始取(length不指定则默认取余下长度)
pos(string1,string2{,start}):(long)在一个字符串中查找所包含的另一个字符串的起始位置
pos("abcdefg","de")返回值5 (start从第几位开始查,默认从头开始)
replace(string1,start,n,string2):(string)将一个字符串中指定个数的字符串替换为另一个字符串
string1为原字符串,start为指定从哪个位置开始替换字符串,字符串的第一个位置为1,n为指定
要替换多少个字符,string2为替换字符
列:把变量的值“春眠不掘小”替换为“春眠不觉晓”
string name replace("abcdef",3,2,"zzzz")
name="春眠不掘小" 返回值 abzzzzef
name=replace(name,7,4,"觉晓")
reverse(string) :(string)颠倒字符串中各字符的次序
space(n) :(string)生成一个由空格组成的指定字符个数的字符串
trim(string) :(string)删除字符串首部和尾部的空格
upper(string) :(string)将字符串中的小写字母转换成大写
wordcap(text) :(string)将text中每一个单词的首字母大写,其他字母小写
15 系统与环境函数
clipboard()提取或替换windows系统剪贴板的文本内容。
下面的代码以字符串“春眠不觉晓”取代剪贴板原有的内容,并把该内容显示在文本框中
参数为空则显示的当前剪贴板内容
string is_coname
is_coname=clipboard("春眠不觉晓")
sle_1.text=is_coname
commandparm()得到应用程序运行时指定的命令参数,返回string
getapplication()得到当前应用对象的句柄
getenvironment(environmentinfo) 得到操作系统,处理器,屏幕显示等与系统相关的信息
integer rtn
environment env
rtn=getenvironment(env) env是用于保存系统环境信息的参数
getfocus 确定当前焦点在哪个控件上
引用当前焦点的控件的信息赋值给变量which_cont然后把该控件的text属性的值赋给一个变量text_value
graphicobject which_cont
singlelineedit sle_which
commandbutton cb_which
string text_value
which_cont=getfocus()
choose case typeof(which_cont)
case singlelineedit! //单行编辑框
sle_which=which_control
text_value=sle_which.text
case commandbutton! //命令按钮
cb_which=which_control
text_value=cb_which.text
case else
text_value=""
end choose
sle_1.text=text_value
profilestring() 从初始化文件(.ini)中读取字符串型设置值
setprofilestring()设置初始化文件中指定项的值
restart()停止所有程序段的执行,关闭所有窗口,提交事务,断开与数据库的链接,然后重新启动应用程序
run(string{,windowstate})运行指定的应用程序
string指定要运行的应用程序的名称可以包含路径,windowstate可选项,窗口的最大最小
16 定时操作函数
cpu() :返回值long,得到自当前应用程序启动后开始CPU所消耗的时间,以毫秒为单位
列:
long ll_start,ll_used
ll_start=cpu()
integer a,b,s
a=integer(sle_2.text)
b=20
s=a*b
sle_1.text=string(s)
ll_used=cpu() - ll_start
sle_2.text=string(ll_used)
idle(n):该函数在用户每次活动(列如按键盘,移动鼠标等)后重置定时器,n秒后触发应用对象的idle事件
列:在用户不操作应用程序后5分钟(300秒)时触发应用对象的idle事件
idle(300)
timer(interval{,windowname}) 在指定时间间隔内反复触发指定窗口的定时器事件
interval是指指定两次触发timer事件之间的时间间隔,有效值在0-65之间
windowname窗口名,默认当前窗口
窗口操作函数
open,一,直接接窗口名,打开窗口。二将open放到变量中,若变量执行成功打开窗口
列 w_to_open为窗口变量,s_w_name是窗口类型
window w_to_open
string s_w_name
select next_window into:s_w_name from window_table where ……
open(w_to_name,s_w_name)
下面这个代码打开4个窗口,并把窗口引用放置到数组中
window w_stock_win[]
string w_stock_type[4]
w_stock_type[1]="w_stock_wine"
w_stock_type[2]="w_stock_scotch"
w_stock_type[3]="w_stock_beer"
w_stock_type[4]="w_stock_soda"
for n=1 to 4
open(w_stock_win[n],w_stock_type[n])
next
opensheet(),在上一级框架窗口中打开子窗口,并在指定菜单中创建选择该子窗口的菜单项
列 opensheet(w_person,w_parent,5,original!)在上一级框架窗口w_parent中以原始大小打开工作表w_person并且在第5个菜单标题下增加一个以w_person命名的菜单项(original!指原始大小,cascaded!指向右下方偏移一点layered!指显示左上角并且最大化)
opensheetwithparm()与opensheet基本一样,只是多了一个向消息窗口发送一个信息
classname对象函数,得到指定对象的类名或名称
string type1
type1=classname()
sle_1.text=type1
keydown(key+按键名字!):函数,返回值true或者false,用法,判断是否按了键盘上指定一个键。
列:检查用户是否按了F1和Ctrl键,并分别作不同的操作
IF Keydown(keyF1!)then
……
elseif
keydown(keycontrol!) then
……
end if
16 单行编辑框控件函数(未指定返回值类型则为integer)singlelineedit
1 canundo():(返回值boolean)检测最近一次编辑操作能否被撤销,返回true是能
2 classname():(string)返回单行编辑框名称 3 clear清除该控件所选文本 4 copy复制所选文本5 cut剪切 6 drag开始或者结束单行编辑框的拖动 7 getcontexservice创建指定服务 8 getparent:(powerobject)返回父对象的名称 9 hide/show隐藏/显示单行文本框 10 move 将该控件移动到指定位置11 paste 将系统剪切板内容插入该控件中插入点所在位12 pointerX/Y返回当前鼠标指针离该控件左/上边缘的距离 13 position 返回控件中插入点的位置 14 postevent:(boolean)将某个事件添加到单行文本框消息队列的尾部 15 print打印单行编辑框 16 replacetext用指定的字符串替换单行文本框中选定的文本。如果没有被选定则插入到插入点位置17 resize修改单行编辑框大小18 selected Length/start/text返回单行编辑框中所选文本的长度/起始位置/(返回值string型)所选文本 selecttext 返回所选文本,返回值是integer型 19 setfocus将焦点设置在该控件上20 setposition指定该控件在窗口上的前后次序21 setredraw
控制在每次修改该控件属性后是否重绘该控件22 triggerevent触发单行文本框的指定事件并执行该事件处理程序23 typeof :(object)返回该控件的类型24 undo取消用户对单行编辑框的前一次编辑,恢复编辑前的内容
列 判断单行编辑框最近一次操作能否被撤销,如果能则用undo()取消用户在该控件中的上次操作
boolean copy_amt
copy_amt =sle_1.CANUNDO()
if copy_amt=true then
sle_1.undo()
end if
17 多行编辑框函数(multilineedit)
Linecount()得到多行编辑框行数。Linelength返回该控件插入点所在行的长度。
Scroll()将该控件的内容向下或者向上滚动指定行数
列:mle_1.scroll(2) 将多行编辑框中的内容向下移动2行(注:是整体下移)
Selected length/line/start返回所选文本长度/插入点行号/起始位置
列:
下面的代码根据用户在多行编辑框中选择的行来决定在单行文本框中显示不同数字
integer li_sl
li_sl=mle_1.selectedline()
if li_sl=1 then
sle_1.text="222222"
else
if li_sl=2 then
sle_1.text="33333333"
else
if li_sl=3 then
sle_1.text="44444444"
else
sle_1.text="55555555"
end if
end if
end if
textline():返回插入点所在行整行的内容
多行编辑框name.selecttext(start,length):在该控件中选中指定的文本。Start是指定要选择文本的开始位置,length为指定文本的长度,为0则没有文本被选中
列: 将插入点设置在多行编辑框的尾部
Mle_1.selecttext(len(mle_1.text),0)
选中所有内容: mle_1.selecttext(1,len(mle_1.text))
em_1.minmax="100~~1000" 指定螺旋钮的变化范围
18 编辑掩码控件函数editmask
getdate:得到编辑掩码控件未格式化数据,返回值1或-1。下面的代码是得到用户输入在编辑掩码控件em_1中未格式化数据,在得到数据后,格式化字符被忽略,然后使用string函数把日期数据转换成字符串显示在单行编辑框sle_3中
date d
em_1.getdate(d)
sle_3.text=string(d,"mm-dd-yyyy")
编辑掩码控件name.setmask(枚举类型,mask):设置该控件的编辑掩码和编辑掩码类型。
枚举类型包括datemask!——日期类型;datetimemask!——日期时间类型;decimalmask!
——decimal类型(小数类型);numericmask!——数值类型;stringmask!——字符串类型
timemask!——时间类型。
19超文本编辑框 richtextedit
1框name.CopyRTF({selected,{,band}})将RTF控件中所选文本以超文本格式复制到字符串中。Selected(boolean型)可选项,指是否只复制所选文本(true,false);band,枚举型,指从哪个区域复制文本,有效取值为:Detail!—从细目区复制;header!—从页眉;
Footer!—从页脚,如果参数为空则复制插入点所在区域。
列:将当前超文本框中所选内容复制到字符串is_richtext中
String is_richtext
Is_richtext=rte_1.copyRTF()
2 name.datesource(dwsource):使超文本框控件与数据窗口共享数据,并在rtf中显示出来,当rtf控件中的输入域与数据窗口的列名相匹配时,数据窗口中的数据赋给那些输入域。
Dwsource指数据窗口控件名、或者数据存储对象名、或子数据窗口对象名,其数据要与rtf相关联 列:下面代码使数据窗口控件rte_1成为超文本编辑框控件(rtf)的数据源:
rte_1.datesource(dw_1)
3 rte.find(searchtext,forward,insensitive,wholeword,cursor)在该控件中查找满足条件的文本,如果找到的话就将其加亮,可以指定查找方向以及是否需要大小写匹配和单词匹配。
Rte:超文本编辑框名;searchtext一个字符串,其值是应用程序希望查找的文本;forward:
Boolean型,指示查找方向,true——从插入点所在位置向前查找,如果cursor参数的值为false则从数据起始位置开始查找,false——从插入点向后查找,如果cursor参数的值为false则从数据结束位置开始查找;insensitive:boolean型,true不区分大小写,false区分大小写;
Wholeword是否进行单词匹配查找true是,false否;cursor,true插入点开始查找,false……。
返回值:如果执行成功返回找到字符个数,不成功返回0
下列代码在超文本编辑框控件rte_1中查找单行编辑框sle_search指定的文本。查找过程从光标位置向前查找,不区分大小写,也不要求整词匹配:
Integer li_charsfound
Li_charsfound=rte_1.find(sle_search.text,true,true,false,true)
4 rte.getalignment()超文本框插入点控件中插入点的对齐方式
返回值:枚举型,有center!居中;justify均匀排列;left!左对齐;right!右对齐。
5 rte.getparagraphsetting(whichsetting)得到rte中插入点所在段落缩进、左空白、右空白大小。
返回值:long。参数whichsetting为枚举类型,指定要得到段落那一种设置。有效值为:indent!要求的得到段落缩进大小;leftmargin!要求得到左空白大小;rightmargin右空白
列: long ll_indent
Ll_indent=rte_1.getparagraphsetting(indent!)得到当前段落的缩进大小
6 rte.getspacing()得到当前几段的行距,返回值为枚举型(spacing1!—单倍;spacing1.5!--1.5倍……) rte.gettextcolor返回所选文本的颜色,返回值:long型。 rte.gettextstyle()得到所选文本的文字风格
7 rtn.inputfieldchangedate(指定要修改其值的输入域名称,修改为的值)。当执行函数时输入域相同的均改为修改后的值(输入域指我们所想替换的字符串)
8 rte.inputfielurrentname()(s返回值类型tring)得到插入点输入域的名称
9 rte.inputfielddeletecurrten()删除当前选择的输入域(返回1或者-1)
10 rte.inputfieldgetdate(inputfieldname)返回当前选择输入域的数据(inpuefieldname指输入域的名称) 列: string is_name
is_name=rte_1.inputfieldgetdate(“empname”)
11 inputfieldinsert()在插入点位置插入输入域。Inputfieldlocate(location{,inputfieldname})确定输入域位置并把插入点移动到该输入域上,location指定输入域第几次出现(枚举型first!第一次,last!最后,next!查找参数inputfieldname指定输入域的下一次出现,如果未指定参数则在插入点第一次出现位置,prior!查找参数位置之前)inputfieldname可选项,指定要确定的输入域名称 。
12 insertdocument(filename,clearflag{,filetype})在rte中插入指定的文件,新插入文件或取代rte中原有内容或插入到插入点位置,新插入文件既可以是RTF格式文件,也可以是ascll码文本文件。Filename,string类型,指定要在数据窗口中显示其内容的文件名,可以包含路径。Clearflag,boolean型,指定新插入内容是否取代原有内容true,false插入插入点位置。Filetype,枚举类型,可选参数,指定要插入其内容的文件的文件类型:filetyperichtext!缺省值,要插入文件时超文本(RTF)格式文件;filetypetext!要插入的文件时普通ascll文本文件。返回值,成功为1,错误为-1. 在PB中并非支持所有的RTF格式,只支持1.2版本的RTF格式并且(不支持格式化表,绘图对象和双下划线)
列:在rte中插入文件test.rtf的内容,并删除原有内容,在sle中显示返回值
Integer rtn
Rtn=rte_1.insertdocument(“c:\pb\test.rtf”,ture)
St_1.text=string(rtn)
13 insertpicture(filename)在插入点位置插入指定的位图文件。 Ispreview()检查rte是否处于预览模式(返回值true是,false否)。 linelength,返回插入点所在行长度。
Linecount()返回rte文档的总行数。Pagecount()返回文档的总页数。Paste()将剪切板内容插入光标所在位置。PasteRTF()将字符串中的超文本数据黏贴rte控件中。
Position(fromline,fromchar{,toline,tochar})返回rte控件插入点所在行/列位置或所选文本起始与结束位置。Formline,(long类型)用于保存插入点所在行号或者所选文本起始行的行号;formchar(long)用于保存插入点后第一个字符在from行的位置或所选文本第一个字符在fromline行的位置;toline可选long型,保存文本结束行的行号;tochar,保存所选文本在结束行最后一个字符的位置
14 rte.preview(previewsetting)在文档的预览模式和编辑模式之间切换,previewsetting(boolean型参数) 例如: 下面的代码将rte转换到预览模式:rte_1.preview(true)
转换成编辑模式:rte_1.preview(false)
15 Rte.Savedocument(filename{,filetype}) 将当前文档以RTF格式或ascll格式保存到指定文件中 ,filename,string类型,指定要保存该控件内容的文件名,filetype,枚举类型,保存格式(filetyperichtext!--超文本格式(RTF),filetypetext!--ascll码文件格式)
下面代码可以放在某个命令按钮的clicked事件处理程序中,当用户单击了该按钮后将超文本编辑框rte_1的内容保存到文件中:
Integer li_rtn
Li_rtn=rte_1.savedocument(“c:\test.rtf”,filetyperichtext!)
16 scroll(number)将内容向上或者向下滚动指定行数。 Rte.crollnextpage()滚动到下一页,如果是最后一页则滚动到下一个文档。 Rte.scrollnextrow()滚动到下一个文档。Rte.Scrollpriorpage()滚动到前一页。 Rte.scrollpriorrow()滚动到上一个文档。Rte.Selectedpage()返回文档当前页码
20 静态文本控件 statictext
公共对象函数Objectname.Triggerevent(event{,word,long})触发任何指定对象的事件。Objectname将触发该对象或该控件的某个事件,event要触发的事件,枚举型(如clicked!modified!等);word,long可选参数。
下列代码是触发命令按钮cb_1的单击事件(clicked),并立即执行该事件的事件处理程序
Cb_1.triggerevent(clicked!)
21 图片框控件 picture 22统计图控件 graph 23 用户对象控件 userobject
24OLE控件 25 单选钮 radiobutton 26复选框checkbox
27 列表框listbox
Lb_1.Additem(要增加的列表项文本)在列表项的尾部增加一个新的列表项
string is_sln
is_sln=sle_1.text
lb_1.additem(is_sln)
28 下拉列表框 DropDownListBox
1 Ddlb.Dirlist(filespec,filetype{,statictext})以满足条件的文件名填充下拉列表框的列表项。
Filespec,string类型,其值指定文件模式,通常使用掩码表示(比如,*.ini,*.text)。
Filetype,integer型,指示想在列表框中列出一种或多种文件。
Statictext,可选项,指定要显示当前驱动器和目录的静态文本(statictext)控件名
下面的代码在下拉列表框ddlb_1中填充模式为c:\employee\*.txt的可读/可写类型文件的文件名 ddlb_1.dirlist(“c:\employee\*.txt”,0)
2 ddlb.dirselect(string型变量)当下拉列表框用dirlist()函数填充后,该函数得到用户的选择并将其放入指定变量中
29 下拉图片列表框 dropdownpicturelistbox