pb编程技巧实例

pb编程技巧实例

ID:26803989

大小:122.00 KB

页数:36页

时间:2018-11-29

pb编程技巧实例_第1页
pb编程技巧实例_第2页
pb编程技巧实例_第3页
pb编程技巧实例_第4页
pb编程技巧实例_第5页
资源描述:

《pb编程技巧实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、PB编程技巧实例顶 热 荐PB编程技巧实例[作者:佚名    转贴自:本站原创    点击数:13009    文章录入:lqk101]随着数据库技术在各行各业的广泛应用,作为企业级数据库前端开发工具的PowerBuilder日益成为开发人员的得力助手。PowerBuilder以其开放的体系结构,友好的用户界面和简洁高效的开发环境赢得了众多程序员的喜爱,连续多年被评为美国计算机界的年度风云产品,在数据库开发工具领域占据了高达44%的市场份额。PowerBuilder进入我国的时间不长,许多编程人员希望了解并掌握这一先进工具。在

2、这里,笔者将自己平日用PowerBuilder作开发的一些体会整理出来,奉献给大家。PowerBuilder是由多个功能模块组成的可视化集成开发环境,是面向对象的开发工具,用它可以方便地建立起基于Windows的分布式数据库应用。其功能模块分别完成应用管理、窗口对象设计、菜单对象设计、数据窗对象设计和数据库查询等工作,这些功能模块由于PowerBuilder提供的色彩丰富的工具条而被称作"Painter"(画板)。下文便依据各模块作大的分类介绍相应的编程技巧。 一、有关应用的编程技巧仅让应用程序运行一次的技巧: 有时需要限制一

3、个PowerBuilder应用同时运行的实例(Instance)个数或仅让应用运行一次,我们可以通过调用WindowsSDK函数或使用PowerBuilder的Handle()函数来实现。  先谈调用SDK函数的方法。为了调用SDK函数,需要在ApplicationPainter的菜单项DeclareGlobalExternalFunctions中定义:  FunctionuintGetModuleHandle(stringModuleName)Library"Kernel.exe"FunctionuintGetModule

4、Usage(uintModuleHandle)Library"Kernel.exe" 下面这段程序写在Application的Open事件中。它先通过调用SDK函数GetModuleHandle()获得指定应用程序的句柄,然后调用GetModuleUsage()函数确定应用程序同时运行的实例个数。uintIApplHandle intApp_num IApplHandle=GetModuleHandle("ocmis.exe") ifIApplHandle>0then  App_num=GetModuleUsage(IAppl

5、Handle)  ifApp_num>1then      Messagebox("注意","本程序已经运行!",Stopsign!)     return  endifendifOpen(w_main) 若需要限制应用同时运行的实例个数,比如仅允许同时运行N个实例,那么将上述程序中的语句“ifApp_num>1then”改为“ifApp_num>Nthen”即可。 采用Handle()函数的方法更简洁一些,代码如下: inthand hand=Handle(this,TRUE) Ifhand>0then  Messagebo

6、x("注意","本程序已经运行!",Stopsign!)  Halt else Open(w_main) endif 二、有关窗口的编程技巧 1、提供实时帮助条中文之星2.0版的链形菜单管理器提供了实时帮助条,增强了系统的易用性,在PowerBuilder中也可以实现类似的功能。当鼠标移动到窗口中的某些控制(Control),如编辑器、图片等时,会在鼠标附近自动产生帮助条,实时地提示操作要领。首先在窗口w_main中任意位置定义一个黄底黑字的静态文本st_help,设定st_help.visible=false,st_help

7、.text=&Help;然后在该窗口模块的DeclareWindowFunctions...下定义函数show_help(),其参数只有一个,参数名为text,类型为string,通过传值方式接收参数;无返值。show_help()代码如下: ifst_help.visiblethen   returnendif st_help.text=text  st_help.width=Len(st_help.text)*38  st_help.x=w_main.PointerX() st_help.y=w_main.Pointer

8、Y()+50 ifst_help.x+st_help.width>w_main.Workspacewidth()then    st_help.x=w_main.Workspacewidth()-st_help.width endif ifst_help.y+st_help.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。