[翻译]pb技巧、代码和实用工具[程序员家园论坛]

     [翻译]pb技巧、代码和实用工具
     原文: http://www.softtreetech.com/hightech/tips.htm
     pb技巧、代码和实用工具
     内容列表:
     1.ListView, PictureListBox, DropDownPictureListBox, TreeView和Application图标的秘密
     2.克格勃间谍
     3.DataWindow的属性页:General页面
     4.动态函数调用
     5.DataWindow的秘密——CPU和其他全局函数
     6.DataWindow的秘密——Timer事件
     7.重载系统函数
     8.菜单的秘密——工具栏动画图标
     9.Environment对象的秘密
     10.DataWindow的行选中颜色
     11.DataStore实现的秘密
     12.性能测试:DataStore vs DataWindow
     13.DataWindow的秘密——最小化DataWindow控件
     14.PB资源文件(PBR)的秘密
     15.pb日期和2000年问题兼容性
     16.菜单的秘密——工具栏提示和文本
     17.Table画板的秘密——Open Table对话框
     18.菜单的秘密——动态添加新菜单项
     19.最简单的统计TreeView项数的方法
     20.pb可执行文件的秘密
     21.GetChild()的秘密
     22.DataWindow修复工具
     23.DBMS/DataWindow列的依赖关系
     24.带菜单的响应式窗口
     25.没有菜单和工具栏的MDI框架
     26.动态DataWindow的秘密
     27.自定义的工具栏——其实很简单
     28.PB中的异步处理
     29.DataWindow导出到Excel(包含计算域、表头、脚注、分组、文本...)
     30.另一个工具栏技巧
     31.在PB程序之间交换信息
     32.SQL异常处理
     33.IsValid?
     34.庞大的Windows API库(包括函数、结构和常量)
     35.访问TopSpeed数据库
     ————————————————————————————————
     ListView, PictureListBox, DropDownPictureListBox, TreeView和程序图标的秘密
     下列枚举常量可以用作ListView, PictureListBox, DropDownPictureListBox, TreeView的图片名称,也可以用作Application对
     象的图标名称.
     Question!
     Exclamation!
     Hand!
     StopSign!
     Information!
     ApplicationIcon!
     Error!
     WinLogo!
     Rectangle!
     例如,上述常量可以可以取代位图用在自定义的MessageBox窗口里.而且可以在代码里动态修改它们.这些图象跟操作系统一致,在
     Windows 3.1和Windows 95/NT下有不同的外观.他们跟系统的MessageBox里的图象一模一样.要实现一个自定义的MessageBox:
     1. 创建一个响应式窗口,放一个ListView控件.
     2. 打开控件的属性对话框,在Large Picture页面的Picture Name列表里输入想要的图标名称,然后切换到Item页面,输入一项.切
     换到General页面,不选中Enabled和Scrolling,Border选择None,关闭属性对话框.
     3. 调整ListView控件的大小以适应图片.
     4. 在窗口上放置一个MultiLineEdit控件以显示自定义的消息文本.完成其他的编码工作.
     ————————————————————————————————
     如果你认为你的程序具有完美的安全系统,试试"克格勃间谍".
     使用克格勃间谍可以"点击"禁用或隐藏的按钮和控件.自己看看吧.
     在这里下载克格勃间谍.使用该程序测试你的软件的安全性.需要PB6开发环境来运行.
     在这里下载克格勃间谍的源代码.
     ————————————————————————————————
     DataWindow的属性页:General页面
     PB帮助:"DataWindow property sheet, General tab, DataWindow Object Name - The name of the DataWindow object you
     want to embed in the Window." 其实也可以指定需要嵌入到窗口的PSR文件名.虽然不能使用浏览按钮来选择PSR文件,你可以输
     进去,或者粘贴.
     ————————————————————————————————
     动态函数调用
     PB帮助:"When you specify a dynamic call, the function or event does not have to exist when you compile the code.
     You are saying to the compiler: trust me - there will be a suitable function or event available at execution
     time."
     也有这样的情况:编译时函数已经存在,但是由于编译器报"函数未找到"(实际上是"类型不匹配")错误而不能直接调用.使用DYNAM
     IC通常能显著减少代码逻辑的分支判断.
     考虑下例:
     
     // PB旧风格 //
     
     global function boolean f_zoom_out( powerobject apo_target )
     DataWindow ldw_target
     DataWindowChild ldwc_target
     DataStore lds_target
     CHOOSE CASE TypeOf( apo_target )
     CASE DataWindow!
     ldw_target = apo_target
     ldw_target.Modify('DataWindow.Zoom=90')
     CASE DataWindowChild!
     ldwc_target = apo_target
     ldwc_target.Modify('DataWindow.Zoom=90')
     CASE DataStore!
     lds_target = apo_target
     lds_target.Modify('DataWindow.Zoom=90')
     CASE ELSE
     // invalid argument type
     RETURN False
     END CHOOSE
     RETURN True
     在PB5和6中可以使用更有效优美的代码:
     //
     // PB 5&6 新风格 //
     /
     global function boolean f_zoom_out( powerobject apo_target )
     RETURN (apo_target.DYNAMIC Modify('DataWindow.Zoom=90') = '')
     该技巧同样可以用于其他对象和函数.但是在PB5中,由于编译器的限制,某些重要的函数如Describe不能动态调用.
     ————————————————————————————————
     DataWindow的秘密——CPU和其他全局函数
 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值