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毫秒