HITSY 版 (精华区)
发信人: lyfe (修身养性), 信区: HITSY
标 题: PowerBuilder编程技巧十例(二) (转载)
发信站: 哈工大紫丁香 (2002年04月06日13:06:34 星期六), 站内信件
【 以下文字转载自 Database 讨论区 】
【 原文由 joy 所发表 】
发信人: brave (大勇), 信区: DATABASE
标 题: PowerBuilder编程技巧十例(二)
发信站: 碧海青天 (Fri Nov 27 09:04:19 1998), 转信
二、有关窗口的编程技巧
1、提供类似中文之星的实时帮助条
中文之星2.0版的链形菜单管理器提供了实时帮助条,增强了系统的易用性,
在PowerBuilder中也可以实现类似的功能。当鼠标移动到窗口中的某些控制(Con
trol),如编辑器、图片等时,会在鼠标附近自动产生帮助条,实时地提示操作
要领。
首先在窗口w_main中任意位置定义一个黄底黑字的静态文本st_help,设定st_h
elp.visible=false,st_help.text=&Help;然后在该窗口模块的Declare\WindowF
unctions...下定义函数show_help( ),其参数只有一个,参数名为text,类型为s
tring,通过传值方式接收参数;无返值。show_help( )代码如下:
if st_help.visible then return
st_help.text = text
st_help.width = Len(st_help.text) * 38
st_help.x = w_main.PointerX( )
st_help.y = w_main.PointerY( ) + 50
if st_help.x + st_help.width > w_main.Workspacewidth( ) then
st_help.x = w_main.Workspacewidth( ) - st_help.width
end if
if st_help.y + st_help.height > w_main.Workspaceheight( ) then
st_help.y = w_main.Workspaceheight( ) - st_help.height
end if
st_help.visible= true
接下来,我们就可以调用show_help( )函数了。但PowerBuilder提供的所有控制
均缺乏当鼠标移至其上就触发的事件,显然,需要定义相应的用户事件。
先选中准备定义用户事件的控制,如某个单行编辑器,然后在窗口模块的菜单De
clare\UserEvents...下,双击Paste Event ID:中的pbm_mousemove条目,将其拷贝
至Event ID下,取EventName为Mouseon,这样,我们就定义好了相应控制的用户事件
Mouseon。
我们可以在该控制的用户事件Mouseon下,写下调用函数show_help( )的语句:
if st_help.visible then Hide(st_help)
show_help(" 瞧! 这 便 是 实 时 帮 助 条!")
2、“ 跑马灯”的实现技巧
有时需要用一矩形条显示少量用户特别关心的信息,这条信息串首尾相连,向一个
方向循环滚动,我们通常将其称作“ 跑马灯”。证券业中常用“ 跑马灯”来显示不
断变化的股票行情;实际应用中也常通过“ 跑马灯”来监视是否死机。
我们可以写一个简单的函数running_horse( )来实现“ 跑马灯”的显示。running_
horse有两个参数,第一个参数的参数名为textline,类型为string,传值;第二个参
数的参数名为num,类型为int,传值;函数返值类型为string。该函数的代码仅一句:
return Mid(textline,(num + 1)) + Left(textline,num)
下面就可以调用running_horse( )函数了。先在一个窗口里定义好单行编辑器sle_
running_horse,在该窗口的Open事件下写上:
sle_running_horse.text = "I am testing running_horse!"
Timer(0.2)
然后在该窗口的Timer事件下调running_horse( ),代码如下:
sle_running_horse.text = running_horse(sle_running_horse.text,1)
这样,当你打开这个窗口时,“跑马灯”便会运转起来。可以在程序中加些语句,
适时地增减sle_running_horse.text中的内容,你便会在“跑马灯”中看到相应变化
的信息。
--
不经历风雨,怎么见彩虹
※ 来源:.碧海青天 bbs.dlut.edu.cn.[FROM: 202.118.71.65]
[分类讨论区] [全部讨论区] [上一篇] [本讨论区] [回信] [下一篇]
--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.229.126]
--
※ 转载:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: 202.118.226.245]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.605毫秒