用PowerBuilder制作plash窗口

Author: 黄万璞 Date: 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