用PowerBuilder制作plash窗口 黄万璞 1999年 第39期 17版 现在的大多数软件比如PowerBuilder,AuthorWare,Word等在启动时会出现一个splash窗口,在窗口上有应用程序的名称、图标、版本和其他信息,该窗口显示一定时间后会自动关闭,如果用户觉得等待的时间太长,只要用鼠标点击一下该窗口或者按任意键也可以关闭它。如果自己开发的软件在启动时也有一个splash窗口,就会给自己的增添不少色彩。下面就介绍如何利用PowerBuilder制作splash窗口的方法。 一、创建spalsh窗口本身 1. 点按Windows画板,弹出Select Windows窗口,点按“New”按钮建立一个新窗口。 2. 在新建窗口上按右键,选弹出菜单的“Properties…”,弹出Windows窗口,点General页,在Windows Type的下拉列表中选Popup,指定窗口的类型为弹出窗口,接着设置窗口的属性Visible和Enabled为TRUE,其它属性都设为FALSE。在这里要注意两点:一是窗口的Windows Type必须选Popup类型;二是要先选择窗口类型,再设置窗口的属性,不能先设置属性再选择窗口的类型。 二、根据需要在splash窗口上放置有关信息,如:公司的名称和图标,软件的名称和版本等信息。将新建的窗口以w_splash名称保存。 三、编写脚本以实现splash窗口显示一定时间后,自动关闭。可以通过调用Windows的timer定时器,当到达规定的时间时,向splash窗口发送一个timer事件通知关闭splash窗口来实现。 在w_splash的open事件中编写代码(假设splash窗口保持显示状态的最长时间为10秒钟): timer(10,this)//当splash窗口打开后10秒钟,//Windows给splash窗口发送一个timer事件 在w_spalsh的timer事件中编写脚本: close(this)//接受到timer事件后,关闭splash窗口 在w_splash的close事件中编写脚本: timer(0,this)//关闭splash窗口后,同时关掉timer事件 四、编写脚本实现鼠标单击splash窗口时关闭该窗口。 在w_splash的clicked事件中编写脚本close(this) 五、编写脚本实现按任意键时关闭spalsh窗口。 在w_splash的key事件中编写脚本:close(this) 六、在程序启动时,首先打开主窗口,接着显示splash窗口。在应用对象的open事件中编写脚本: open(w_mdi_main)//假设应用程序的主窗口称为w_mdi_main open(w_splash,w_mdi_main)//打开splash窗口,它是以w_mdi_main//为父窗口,这样就使得splash窗口显示在主窗口之上 //由于PowerBuilder连接数据库的时间较长,可以把连接数据库的语句 //放在下面,这样就使得在splash窗口显示的同时连接到数据库 sqlca.DBMS=ProfileString(″pb.ini″,″database″,″dbms″,″″) sqlca.database=ProfileString(″pb.ini″,″database″,″database″,″″) sqlca.userid=ProfileString(″pb.ini″,″database″,″userid″,″″) sqlca.dbpass=ProfileString(″pb.ini″,″database″,″dbpass″,″″) sqlca.logid=ProfilsString(″pb.ini″,″database″,″logid″,″″) sqlca.logpass=ProfilsString(″pb.ini″,″database″,″LogPassWord″,″″) sqlca.servername=ProfilesString(″pb.ini″,″database″,″servername″,″″) sqlca.dbparm=ProfileString(″pb.ini″,″database″,″dbparm″,″″)   connect; if sqlca.sqlcode<>0 then MessageBox(″不能连接到数据库!″,sqlca.sqlerrtext) returnend if