hur.cn - 华软网

 热门搜索

  • 授权方式: 免费源码
  • 支付金币: 0个
  • 金币充值: 点击查看
  • 下载方法: 点击查看
  • 源码大小: 390 KB
  • 评分等级: ★★★
  • 源码类别: 国内视频
  • 运行环境: WinXP/NT/Vista/Win7
  • 整理录入: 昕晨
  • 更新时间: 2009/12/3 14:36:06

源码介绍    


PowerBuilder编程技巧CHM

 

 

PowerBuilder 编 程 技 巧

         此CHM的文件都是从TQ网站上“独孤求败”发的贴子COPY下来的,然后整理成CHM文件,希望能对大家有所帮助!

         文件中的技巧代码如果在实现过程中有错请自己修改!

         本CHM文档中的所有资料本人都不拥有版权,如有侵权之处??????!

        

         整理人:Tob

 

在窗口中实现实时帮助条
(深圳:独孤求败 2003-05-26)

    中文之星2.0版的链形菜单管理器提供了实时帮助条,增强了系统的易用性,在PowerBuilder中也可以实现类似的功能。当鼠标移动到窗口中的某些控制(Control),如编辑器、图片等时,会在鼠标附近自动产生帮助条,实时地提示操作要领。

首先在窗口w_main中任意位置定义一个黄底黑字的静态文本st_help,

设定st_help.visible=false,st_help.text=&Help;

然后在该窗口模块的Declare\WindowFunctions...下定义函数show_help(),

其参数只有一个,参数名为text,类型为string,通过传值方式接收参数;无返值。

show_help()代码如下:

if st_help.visible then

   return

end if

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

endif

if st_help.y+st_help.height>w_main.Workspaceheight() then

   st_help.y=w_main.Workspaceheight()-st_help.height

endif

st_help.visible=true

接下来,我们就可以调用show_help()函数了。但PowerBuilder提供的所有控制均缺乏当鼠标移至其上就触发的事件,显然,需要定义相应的用户事件。先选中准备定义用户事件的控制,如某个单行编辑器,然后在窗口模块的菜单Declare\UserEvents...下,双击PasteEventID:中的pbm_mousemove条目,将其拷贝至EventID下,取EventName为Mouseon,这样,我们就定义好了相应控制的用户事件Mouseon。我们可以在该控制的用户事件Mouseon下,写下调用函数show_help()的语句:

if st_help.visiblethenHide(st_help)

   show_help("瞧!这便是实时帮助条!")

end if 

 

 

 

菜单条级权限的设置
(深圳:独孤求败 2003-05-26)

在一个网络应用程序中,对不同的使用人员授与不同的程序使用权是非常重要的。一般的应用程序都分:录入权,查询权,修改权,审核权等等,很多功能可细分到菜单条级,才能方便管理,不同的功能应用应该授与不同工作性质的人员,才能使一个公司或团体分工明确,责任清晰,实现规范化管理。 
对系统管理人员来说灵活方便地设置不同人员的对程序的不同权限,并能够不以用户身份进入程序也能查看到用户所拥有的权限,这是后台管理程序最基本的要求。本人通过实践摸索在PB中实现了用户程序到菜单条级权限的设置和查看。此模块方便之处是管理员在设置用户权限时所见的菜单与用户所用的菜单一致,用户有哪些权限一目了然。 
我们先来看PB与此相关的两个函数:Mid and Replace 
1.函数Mid ( string, start {, length} ) 
取string字串中第start项后的length位字串。 
例:Mid("ABCDEFG",3,2) 
返回值:"DE" 
2.函数Replace ( string1, start, n, string2 ) 
替换string1中第start 项后n位,用string2 串。 
例:Replace ( "ABCDEFGH",3,2,"abc" ) 
返回值:"ABCabcFGH" 
到此可能用过PB的朋友已能猜出这两个函数就是在PB中实现菜单条权限定义的基础。 
我们先假设我们应用程序的菜单如下图: 
M_1  M_2  M_3 ...... 
M1_1  M2_1  M3_1 
M1_2  M2_2  M3_2 
M1_3  M2_3  M3_3 
M1_4  M2_4 
    M2_5 
 
要求菜单条变量名的定义严格按照矩阵方式定义。然后复制一份与应用程序菜单一样的菜单模式,用于系统授权模块使用,包括菜单条变量名也一样,只不过菜单条下无调用程序代码,而是菜单状态设置函数。设三个字符串全局变量,用于表示菜单条的状态。我们约定"0"表示菜单条为不可选,"1"为可选。 
string M1,M2,M3 
M1="0000"     file://对应M_1的四个子菜单条 
M2="00000"     file://对应M_2的五个子菜单条 
M3="000"      file://对应M_1的三个子菜单条 
设初始值为菜单条皆不可选。 
在M1_1菜单下clicked事件程序为: 
IF m1_1.Checked = TRUE THEN 
m1_1.UnCheck( ) 
M1 = Replace( M1, 1, 1, "0") 
ELSE 
m1_1.Check( ) 
M1 = Replace( M1, 1, 1, "1") 
END IF 
  
在M1_1菜单下clicked事件程序为: 
  
IF m1_2.Checked = TRUE THEN 
m1_2.UnCheck( ) 
M1 = Replace( M1, 2, 1, "0") 
ELSE 
m1_2.Check( ) 
M1 = Replace( M1, 2, 1, "1") 
END IF 
.....其它以此类推 
函数说明: 
file://m1_2.Check( )在所点选菜单条前加"V"(钩符号) 
file://m1_2.UnCheck( ) 在所点选菜单条前去掉"V"(钩符号) 
  
如果A用户可使用M1_1,M1_3; M2_2; M3_1。那通过你鼠标的点选,菜单状态变量的值应该为: 
M1="1010" 
M2="01000" 
M3="100" 
  
如果B用户可使用M1_1; M2_3,M2_4,M2_5; M3_1,M3_2,M3_3。那通过你鼠标的点选,菜单状态变量的值应该为: 
M1="1000" 
M2="00111" 
M3="111" 
把此值对应存入A、B用户的权限字段中,在A、B用户进入应用程序时取出,对应设置菜单条的可用与不可用,即实现了对用户使用菜单权限的定义。 
 

............



上一源码:PowerBuilder-dtx整理的编程技巧CHM
下一源码:PowerBuilder编程俱乐部CHM

下载地址    

  • PowerBuilder编程技巧CHM

下载说明

  • 为防止盗链,本站资源部分有解压密码,解压密码点击查看
  • 如果您发现该资源不能下载,请通知管理员;
  • 为了保证您快速的下载,推荐使用迅雷或网际快车等专业工具下载;
  • 为确保所下资源能正常使用,请使用WinRAR v3.80或以上版本解压本站资源;
  • 本站所收集的下载资源均来源于网络,如果有侵犯您的版权,请来信告知,我们会马上处理;
  • 本站所提供的资源仅供学习和研究,请勿用于商业用途,请在下载后24小时内删除;
  • 本站不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害!