- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PB学习规则
当你看到VB、VFP等开发语言提供的强大的宏执行功能,是不是很羡慕呢?当你寻遍PB的帮助、关于PB开发的书籍或网站而不可得的时候,是不是感到有一丝的遗憾?如果你看到这篇文章,你应该感到振奋,因为你终于可以解决这个问题,而且解决问题的思路既是如此简单、代码既是如此简短。如果再加上你的智慧,应该比我的解决方法更漂亮。
先让我们来了解一些基本知识。
一.代码的载体
在PB中,只有三个地方可以存放代码,那就是函数、事件、属性。这里所指的函数包括有返回值的通常意义下的函数和无返回值的过程以及声明的WINAPI函数,所指的事件指在对象中定义的处理程序,所指的属性指PB系统属性之外的实例变量、共享变量、全局变量。函数和事件是可以用来调用执行的,属性则只能用来赋值和取值。通常我们是在函数或事件中编写代码。
二.对象的创建
如果对象类型是已知的,可以使用CREATE objecttype 来创建对象,如果对象类型是动态的,可以使用CREATE USING objecttypestring来创建对象。
三.对象函数的调用方式
如果调用一个已知类型的对象的函数或事件,通常采用静态模式,也可采用动态模式,如果调用一个动态创建的对象的函数或事件,则必须采用动态模式,否则编译出错。采用动态模式调用函数是在函数前加dynamic 关键字。读者可查阅PB帮助。
四.库文件的搜索
PB中用于编程的对象是保存在PBL、PBD、DLL中的,如果想要使库文件中的对象在应用程序运行时有效,常用的方法是直接将该PBL编译进去或者说使该PBL在库搜索列表中。如果需要在运行状态下改变库文件搜索列表,PB提供了SetLibraryList和AddToLibraryList两个函数。SetLibraryList函数只能在应用对象的open事件脚本中使用,否则应用程序会崩溃,AddToLibraryList为PB9新增的函数,用于将新文件加入到库文件搜索列表中,这两个函数都是只能在编译环境下有效。
五.PB库文件的创建与销毁
PB提供了LibraryCreate函数用于创建库文件,提供LibraryDelete、FileDelete函数用于删除库文件。
六.PB实体的导入
PB提供了LibraryImport函数用于根据对象语法创建PB实体并导入到库文件中,但该函数目前只支持数据窗口对象类型的导入。不过,PB提供了相应的WINAPI函数支持其它类型实体的导入,这些相关的WINAPI包括在PBORCX0.DLL中(不同的PB版本有不同的文件名称,如 PBORC90.DLL、PBORC80.DLL)。有关实体的导入的WINAPI包括PBORCA_SessionOpen、 PBORCA_SessionClose、PBORCA_SessionSetLibraryList、 PBORCA_SessionSetCurrentAppl、PBORCA_CompileEntryImport等,读者可以到Sybase网站找 ORCA Guide相应文章寻求支持。
七.PB实体的查找
使用FindClassDefinition或FindFunctionDefinition或LibraryDirectory可以在库文件中查找PB实体是否存在,使用FindClassDefinition或FindFunctionDefinition性能要好。
以下讲开发思路。
一.创建临时库文件
1. 取临时目录作为库文件的存放目录
2. 取待创建的临时库文件名称,保证不与已有文件重名
3. 使用LibraryCreate函数创建临时库文件
二.构造用于导入库文件的临时PB实体语法
1. 取临时PB实体名称,保证不与库文件列表中已有PB实体重名
2. 构造临时PB实体语法,区分函数和过程
三.将临时PB实体导入临时库文件
1. 取库文件列表和应用对象所在pbl
2. 将实际不存在的库文件从库文件列表中删除,目的是使调用PBORCA_SessionSetLibraryList成功
3. 调用PBORCA_CompileEntryImport将临时PB实体导入临时库文件
四.将临时库文件加入到库文件搜索列表
1.调用AddToLibraryList加入新文件到库文件搜索列表
五.创建临时PB实体所对应的对象并调用其函数以执行动态脚本
1. 使用CREATE USING objecttypestring语句创建对象
2. 通过动态调用对象的of_exec函数执行动态脚本,区分返回值类型
六.销毁所有临时对象
1.调用LibraryDelete函数删除创建的临时库文件
以下讲我在开发时遇到的一些矛盾或问题。
一.代码是逐行解释还是让PB编译器去解释
有些开发人员试
您可能关注的文档
最近下载
- 超声回弹综合法计算表(带公式).xls VIP
- 2024-2030年儿童绘本行业市场发展分析及发展趋势前景预测报告.docx
- 年产24GW高效N型单晶TOPCon太阳能电池项目环境影响报告书.doc VIP
- Q-CR-9651-2017 客货共线铁路路基工程施工技术规程.pdf VIP
- GB8478-2020 铝合金门窗国家标准.pdf VIP
- GB15618-2018 土壤环境质量 农用地土壤污染风险管控标准.docx VIP
- 超声医学高级职称答辩.pptx
- 水利工程安全管理表格大全(表格齐全).doc
- 2022 输变电工程标准工艺(电缆工程分册).docx VIP
- 螺杆桩综合施工专题方案.docx VIP
文档评论(0)