在PB中方便的实现图片动态切换.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在PB中方便的实现图片动态切换

在PB中方便的实现图片动态切换? (深圳:独孤求败?2003-05-30) ????PowerBuilder是一个功能十分强大的数据库开发工具,其以简便、灵活、高效等优点博得了许多编程人员的青睐,因此在国外一出现就相当的流行,近几年中国也随之而起。本人在使用PB开发“企业级数据库系统”已有近两年的经验,在开发前期由于图书资料的深度不够(好多都是就简单的介绍如何操作为止),报纸上的经验交流少得可怜,因此走了相当不少的弯路,因此想借此文章达到一个抛砖引玉的效果,使PB编程人员们在这里能够坦诚交流各自的编程经验,共同提高中国PB编程人员的水平。? ????我们都知道在PowerBuilder开发平台中不支持JPG,GIF等图片格式,仅能显示BMP,RLE,WMF三种图片格式(截止到PowerBuilder?6.5版本),所以要实现图片的动态切换,必须把“动作连续”的几个图片事先作好,然后按照顺序一个个的显示,作出的程序才会具有“电影效果”或者相当于网页上的“GIF”图片的效果(当然通过嵌入OLE对象也可实现电影的播放,在这里本人不是指使用此方法)。? ????当切换的图片比较少时,一般编程者会比较倾向于使用下面的方法,此方法结构清晰简单,比较易懂,但灵活性差:? 以四个图片的切换为例,首先建立窗口的Instance?变量(实例变量):? integer?i 在一个新建窗口的open事件中写入如下脚本:? open: //建立四个“图片对象”的名称分别为:p_0,p_1,p_2,p_3 p_0.hide()?//开始时图片隐藏起来 p_1.hide() p_2.hide() p_3.hide() i=0 timer(0.2) 在窗口的timer事件中写入如下脚本:? timer: if?i?=?4?then?i?=?i?–?4?//当参数i累加超过界限时拉回 choose?case?mod(i,4) case?0? p_0.show() p_1.hide() p_2.hide() p_3.hide() case?1 p_0.hide() p_1.show() p_2.hide() p_3.hide() case?2 p_0.hide() p_1.hide() p_2.show() p_3.hide() case?3 p_0.hide() p_1.hide() p_2.hide() p_3.show() end?choose? i++ ????对于PowerBuilder熟练编程的人来说,可以看出以上程序脚本通用性不会很强,即当我们需要再添加几个切换的图片时,需要改动的地方太多:Case?语句的“情况个数”要随图片的增加而增加,而且每个Case?语句中又需增添诸如p_5.show(),p_5.hide()?的程序,参数i的“累加上限”需要更改,造成程序的维护量大大增加。? ????本人在PowerBuilder的使用过程中针对此情况研究了一些小的技巧,对上面的程序脚本进行的适当的完善、改进,编程人员只需遵循简单的规则而无须改动程序脚本,即可满足上面“连续图片个数增/减”的要求:遵循规则:需要显示图片对象的命名顺序与切换显示顺序要一致,必须为:p_0,p_1,p_2,p_3.....不需要切换(即静止图片)的命名中不要夹杂“数字”。? 在窗口的Instance中定义如下变量:? integer?i,p_count picture?pic[] 在窗口的open事件中写入如下脚本: open: int?ic ic?=?upperbound(this.control)//取出窗口中所有控件的个数 p_count=0 object?ctr_type for?i?=?1?to?ic ctr_type?=?this.control[i].typeof() choose?case?ctr_type case?picture!?//过滤图片控件 //以下过滤图片控件中需要切换的图片并保存在一数组中 if?Match(mid(this.control[i].classname(),3),[0-9])?then p_count++?//累计需要切换图片的个数 this.control[i].hide() pic[p_count]?=?this.control[i] end?if end?choose next i?=?0 timer(0.2)?//设定切换时间 在窗口的timer事件中写入如下脚本: timer: if?i?=?p_count?then?i?=?i?-?p_count? //参数i超过累加界限时拉回至“零” int?j,k for?j?=?1?to?p_count? if?pic[j].classname()?=?p_?+?string(mo

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档