注册 登录
编程论坛 PowerBuilder

[求助]如何在PB界面上实现跑马灯的效果?

fielde 发布于 2006-10-31 00:20, 2064 次点击
如何在PB界面上实现跑马灯的效果?就想网页上一行字从右到左滚动的那种效果?
1 回复
#2
潇洒老乌龟2006-10-31 10:55

"跑马灯"的实现技巧

深圳:独孤求败 2003-11-24

有时需要用一矩形条显示少量用户特别关心的信息,这条信息串首尾相连,向一个方向循环滚动,

我们通常将其称作"跑马灯"。证券业中常用"跑马灯"来显示不断变化的股票行情;实际应用中也

常通过"跑马灯"来监视是否死机。我们可以写一个简单的函数run_horse()来实现"跑马灯"的

显示。run_horse有两个参数,第一个参数的参数名为Ps_String,类型为string,传值;第二个参

数的参数名为Pi_Num,类型为int,传值;函数返值类型为string。该函数的代码仅一句:

RETURN Mid(Ps_String , (Pi_Num + 1)) + Left(Ps_String , Pi_Num)

下面就可以调用run_horse()函数了。先在一个窗口里定义好单行编辑器sle_runhorse,

在该窗口的Open事件下写上:

sle_runhorse.Text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Timer(0.2)

然后在该窗口的Timer事件下调run_horse(),代码如下:

sle_runhorse.text=run_horse(sle_runhorse.Text,1)

这样,当你打开这个窗口时,"跑马灯"便会运转起来。可以在程序中加些语句,

适时地增减sle_runhorse.text中的内容,你便会在"跑马灯"中看到相应变化的信息。

上面讲述的是单字符的显示,对于向汉字这样双字符的得稍作修改。修改如下:

函数代码:RETURN Mid(Ps_String , (Pi_Num + 2)) + Left(Ps_String , (Pi_Num + 1))

窗口Open:sle_runhorse.Text="独孤求败是个大乌龟!"


在状态栏里面的实现要加入一个实例变量:
Is_Show
然后在Timer事件中写:
w_main.setmicrohelp(run_horse(Is_Show,1))

1