[返回]

软件世界1999年第1期

利用PowerBuilder在应用程序启动期间呈现一个Splash窗口

黄可红

  我们在开始安装软件或运行某些程序的时候,在启动过程中总会显示一个应用程序图标或提示等待信息,例如:“正在加载,请稍候。。。”。这种处理虽然并没有改善软件的性能,但对于一个完美的商品化应用程序,是必不可少的。下面利用PowerBuilder6.0来实现这个功能。

  首先,本技术的核心是一个弹出式窗口(POPup windows),因为它不具有标题栏和边框,在窗口中添加一个图片按钮。同时为了使窗口在软件加载完毕后自动关闭或手工关闭,可以通过一个定时器(Timer)事件来实现或调用Close()函数实现。另外,为了使窗口的尺寸匹配图形按钮的大小而不使用户看到任意其它的信息,可以使用窗口的Resize事件来实现,这比手工调整好得多。具体实现如下:

  一, 使用Application画板,创建一个新的库和应用程序对象,我们定义它为:Splash.pbl.

  二, 使用 Window画板,创建一个新的窗口W_splash,并添加一个图片按钮;它们的属性值如下表:

窗口/控件名 属性 值

Window

W_splash WindowType Popup

Title Bar False

Resizable False

Border False

W_main WindowType Main

PictureButton Name pb_logo

Disabled File name login.BMP

Enabled Ture

Original Sixe Ture

三, 编写脚码:

  1) 实现Splash窗口保持打开状态不超过5秒。在W_splash的Open事件中启动一个Timer事件:

Timer(5,this)

  2) 当窗口在5秒钟后边接收到Timer事件后,关闭W_splash窗口。这个事件应在W_splash的Timer事件中加入:

Close(this)

  3) 在窗口的Close事件中确保关闭Timer事件,加入以下代码:

Timer(0,this)

  4) 由于在W_splash的图片按钮周围有许多剩余空间,那么利用W_splash的Resize

  事件使图片按钮和窗口尺寸一致,这样做又给人一种三维的视觉。代码如下:

pb_logo.Move(0,0)

this.Resize(pb_logo.width,pb_logo.height)

  四, 保存以上操作并创建一个新的窗口来测试下:

  打开Window画板,创建一个新的窗口W_main,其属性见上表。

  在Application的Open事件中加入如下代码:

Open(W_main)

Open(w_splash)

//下面是应用程序初绐化代码,这里以一个循环来测试一下:

integer I

for I=1 to 30000

I=I+1

Next

  保存并点击运行按钮,因为主窗口W_main的WindowType值为Main,因而它运行以后,W_splash窗口立即执行,是异步的。5秒钟后,W_splash自动关闭。实际应用中开发者可以用相应有意义的图标,或文本提示来代替pb_logo。