PB编程经验谈

 

  PB作为数据库开发的工具,早已深受广大开发人员的认可,笔者在开发PB应用程序时,总结了一些编程的经验技巧,介绍给大家。

  1.添加启动声音

  对Win 98的启动声音一定不陌生吧,那么有没有想过为你的PB应用程序添加启动声音呢?使用Win32 API函数PlaySound很容易实现。方法是在“Global External Functions...”中添加如下函数声明:

  Function long PlaySound (String Filename,Int Mod,Int Flags ) Library ″winmm.dll″

  获得这个函数声明的最好的方法是使用Visual Basic中的“API Viewer”,只需把得到的结果改写成PB的格式,然后在Application的Open事件中添加如下代码:

  iRet=PlaySound(″C:/Program Files/Joint/Start.wav″,1,1)

  参数1指定启动声音文件,参数2指定播放模式,参数3指定播放标记。播放成功返回1,否则返回0。若因声音文件不存在等原因导致播放失败也不会产生错误提示,因此没有必要对返回值进行捕捉处理。

  2.使PB窗口居中

  在窗口属性的Position页中可以粗略地设置窗口的弹出位置。然而,你并不知道客户机的屏幕分辨率是多少(800×600还是1024×786),不如在Open事件中加入下列代码使其居中:

  GetEnvironment(Env)//获取客户机环境信息

  dy=(Pixelstounits(Env.ScreenHeight,YPixelsToUnits!)-this.Height)/2

  dx=(Pixelstounits(Env.ScreenWidth, XPixelsToUnits!)-this.Width)/2

  this.Move(dx,dy)

  //Env为Environment类型,dx,dy为Long类型3.使用ActiveX控件

  VB可以直接引用ActiveX控件,而PB只能通过“控件嵌套”的方法来引用。这种方法需要借助OLE容器。下面以Animation控件为例说明引用过程及约定。

  窗体设计时,选择OLE,在弹出的“Insert Object”对话框中选择“Insert Control”页,在Control Type下列出了系统中所有注册过的ActiveX控件,选择“Microsoft Animation Control”。对ActiveX控件的属性和方法的引用必须遵循“OLE控件.Object.属性(或方法)”的规则。如下代码通过调用Animation控件的属性和方法来自动播放一个视频剪辑:

  ole—1.Object.AutoPlay =True

  //设置为自动播放

  ole—1.Object.Open(″C:/Program Files/Joint/FireWork.avi″) //打开一个Avi文件

  若你的PB程序中使用了ActiveX控件,最好把相应的OCX文件与你的程序一起发布,并在安装程序中进行注册,因为客户机不一定注册了相应控件。注册的方法是用Regsvr32,若采用InstallShield来制作安装程序,也可以把所有要注册的OCX文件放到一个File Group中,然后将它的“Self-Registered”设置成Yes来自动注册。

  4.操纵LOB

  大对象(Large OBject)通常指大文本和大二进制对象,几乎每一种数据库都支持它。在PB中可以用UpdateBlob和SelectBlob语句来对它们进行处理。

  (1)用UpdateBlob来把大对象数据写入数据库

  在编写管理软件时,要求把员工的照片(Bmp文件)和工作经历(Doc文件)保存在数据库中,而不是像以前一样保存它们的文mpno=′9925′; //把图像数据写入数据库

  If SQLCA.SQLNRows〉0 Then Commit;

  End If

  注意,FileRead一次只能读取32K,若文件大于32K应分多次读取;UpdateBlob执行成功与否不能用SQLCode或SQLDBCode来判断,而要用SQLNRows是否大于0来判断。

  (2)用SelectBlob从数据库中读取大对象数据

  要查看员工的照片或工作经历,就应把相关信息从数据库中读出来。主要代码如下:

  Blob pic //把pic定义为二进制大对象(Binary large object)

  SelectBlob photo Into :pic From emp Where empno=′9925′;//把图像数据读到变量pic中

  p_1.SetPicture(pic) //用图像控件显示图像

  5.编译技巧

  (1)没有必要将pbl编译成机器码dll,即不要选择“Machine Code”。那样做意味着你至少要等待半个小时。编译成伪码pbd就行了。

  (2)把程序中用到的ico、bmp等文件打包到目标代码中。方法是:用记事本创建一个扩展名为pbr的资源文件,它的每一行是一个带完整路径的文件名,用于告诉编译器到何处去找用到的资源。

  (3)PB应用程序要独立运行,必须把Sybase/Shared下的几个共享库与你的程序一起发布,它们是:pbvm60.dll、pbodb60.dll、pbdwe60.dll。后台若使用MS SQL Server,还得带上pbmss60.dll;若使用Sybase SQL Anywhere,要带上pbo7360.dll;若使用Informix V7.x,要带上pbin760.dll。

PB 编程技巧100例(CHM) Table (20)PB修改数据库表结构的技巧 李清 System (19)用PB5设计串口通讯程序 王学军 TreeView (18)在PB的TreeView控件中实现自动查询 周剑峰 Datawindow (17)PowerBuilder数据窗口编程技巧十则 蔡伟龙 System (16)如何在POWER BUILDER中使用WINSOCK控件 达伟春 OTHER (15)在PB打印中实现人民币大写 侯晓伟 MENU (14)用PB做一个通用右键菜单 田俊国 SQL (13)SQL基础 System (12)用PowerBuilder开发多媒体播放器 河北 黄万璞 控件 (11)动态创建可视控件的基本方法 鹿寒 WEB (10) 用PowerBuilder创建Internet应用 Sybase 软件(北京)有限公司 霍军 SQL (9)同时访问多个数据库 大庆石化总厂信息中心 (邮编163714) 李畅 System (8)如何在PB中使用OCX控件? 陶清网站 Datawindow (7)美化DataWindow的显示效果 程序中心PB站 Datawindow (6)当Retrieve时不清除原有Datawindow数据 程序中心PB站 Datawindow (5)当表(Table)的定义发生改变以后同步DataWindow columns 程序中心PB站 Datawindow (4)在表格(Grid)风格的DataWindow放入标题 程序中心PB站 Datawindow (3)使用Line建立漂亮的Grid DataWindow的技巧 程序中心PB站 System (2)使Sybase SQL Anywhere的启动窗口不出现在任务栏 程序中心PBSQL (1)使用SQL产生BCP命令快速备份/恢复你所有数据 (仅用于Sybase和MS SQL Server数据库) 程序中心PB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值