PowerBuilder中图像的动态显示

PowerBuilder中图像的动态显示朱可云谭彦彬(基础部)摘要本文讨论了在PowerBuilder中动态显示图像的基本原理,并介绍了两种具体的方法,即利用图像控件动态显示图像的方法以及利用数据窗口动态显示图像的方法。关键词分类号PowerBuilder,事件(Event),脚本(Script)TN94111PowerBuilder是流行的数据库前端开发工具。在PowerBuilder实际开发应用中,开发者往往需要在应用中动态地显示图像。我们介绍了在PowerBuilder中实现动态图像显示的两种方法。通常,图像的动态显示,无非是在不同的时间点上,在同一位置显示不同的图像。因此以下两点是关键。(1)时间点的取得。这包括定时的实现,以及定时时间到能触发事件,在事件中执行用户程序。PowerBuilder提供了用于定时的定时函数timer(timetimeinterval),并且在其窗口组件(Window)中提供了timer事件。当窗口中的定时时间到时,该事件的脚本程序被执行。(2)图像的显示更新。即在定时时间到所触发的事件中,显示新图像。在PowerBuilder中,图像的显示有两种方法。一种方法是在窗口(Window)组件中放置一图像控件(Picturecontrol),图像控件可显示一幅BMP或RLE文件。另一种方法是在窗口(Window)放置一数据窗口(Datawindow)控件,利用数据窗口显示图像,同样可以显示一幅BMP或RLE图像。下面详细介绍这两种方法。利用图像控件动态显示图像1首先,在窗口中声明一Bolb类型的实例变量数组(选择菜单Declare中的InstantantVariable,本例中声明的是:Blobpblob6),用于存放图像文件;声明一整型(int)实例收稿日期:1997211212第一作者:男,1966年生,硕士,讲师—52—信息工程学院学报1998年(本例为pnum)用于表示图像序号。然后在窗口中放置一图像控件,并在窗口(设窗口名为W-dpicture)的ShowEvent中设置定时器,脚本如下://Script—Showforw-dpicturerealmytime//设置时间间隔1秒,即每秒更新一幅图像mytime=1Timer(mytime)在窗口的OpenEvent中读入所有的图像文件,存入一Blob数组。比如,欲循环显示6幅图像,文件名分别是f1.bmp,f2.bmp,f3.bmp,f4.bmp,f5.bmp,f6.bmp,则窗口的Open事件脚本如下://Script—Openforw-dpictureinti,i-fileFori=1to6Filename=“f”+String(i)+“1bmp”i-file=FileOpen(Filename,StreamMode!,Read!,LockRead!)FileRead(i-file,pblobiFileClose(i-file)Nextpnum=1)//读图像文件//第一幅图像//显示图像,P-1为窗口W-dpicture中图像控件名p-1.SetPicture(pblobpnum)要说明的是:当图像文件比较大(大于32765字节)时,图像文件的读入过程比较复杂,限于篇幅,不再详述,请参考有关资料。在窗口的TimerEvent中更新图像。即调用SetPicture()函数显示下一幅图像。//Script—TimerforW-dpicture//下一幅图像pnum=pnum+1Ifpnum>6Thenpnum=1Endifp-11SetPicture(pblobpnum)//若第六幅已显示,则显示第一幅//显示图像应当注意,为了不影响系统定时的精度,应在TimerEvent中执行尽可能少的脚本程序。因此,例子中Timer事件触发时,只是显示图像。图像是在窗口的Open事件中一次性读入,而不是在窗口的Timer事件中读入图像,再显示图像。利用数据窗口(DataWindow)动态显示图像2这种方法不需读入图像,比较简单,但它涉及了PowerBuilder中数据库和数据窗口组©1994-2013ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.wwcnki—53—第2期朱可云等:PowerBuilder中图像的动态显示件。这种方法首先要在数据库中建一张表,将要显示的各图像的图像文件名(字符串)作为表的一列存于表中(表中另有一索引列,作为表的主键)。然后选择该表建立一数据源(DataSource)为SQLSelect的数据窗口(指定其提取数据的参数为表的索引列),并在该数据窗口(设其名为d-dpic)中指定该列的编辑风格(EditStytles)属性为图像属性(Dis2playedasPicture).这样,数据窗口在显示该列时,不是显示存入该列的字符串,而是以该列字符串为文件名,显示一幅图像。可见,PowerBuilder的数据窗口是可以显示图像的,当然也可以动态地显示图像。在窗口中放置一数据窗口控件(其名为dw-1),并把上述数据窗口(d-dpic)放入其中。在窗口的OpenEvent中加上如下脚本(加在最后)://Script—OpenforW-dpicturedw-1.SetTransObject(//...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?