充分利用Windows API 扩展Delphi 函数.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
充分利用Windows API 扩展Delphi 函数 Borland Delphi是与Visual Basic相似的可视化开发工具,但其功能比VB更加强大。 例如,Delphi 支持汇编语言和指针操作、全面支持Windows API 函数及外部DLL的使 用,使得它具有更广泛的应用范围。即使用于编制 些较小的应用程序,Delphi 与VB 相比看来不相上下, 但由于Delphi是编译型的语言,其编译后的EXE文件可以真正脱 离Delphi的环境独立运行,而VB 生成的EXE文件离开了VB软件包的 大堆DLL、 VBX等文件可能会无法执行。而更重要的是, 般用户往往并不真正知道自己开发 的VB程序到底使用了哪些DLL 类的文件,为了保证程序的正常运行,可能在最后的 安装盘中包含了不少其实并不需要的文件。所以, 般用户用VB很难开发出真正实 用的软件,难怪有人说VB是先甜后苦 Delphi 实际上可以看作是VP(Visual Pascal) ,所 以它的易学性也可与VB媲美。今年发布的Delphi2. 0可以为Windows 町、Window s NT 开发32位程序,使得VB 4. 0的优势也不复存在。看来,在今后 段时间内,将会有更多 的人使用Delphi 开发Windows应用程序。在DOS下开发过软件的人都知道int 21h的重要。 与此类似,Windows应用程序也是离不开Windows API 的,许多较底层的操作必须通过 API 函数来实现。为此,无论是C++、归还是Delp hi都无一例外地支持API 函数的调 用,只是VB由于自身的特点所限制,仅支持部分API 函数,而C++ 、Delphi则全面地支持 API 函数。相比之下,Delphi对API 函数的调用最简捷,达到了与自身的内部函数几乎 不分彼此的程度(只要求在interfaces中的user段中加上Windows即可,而这一步Delphi 会自动为您做到),VB则相当繁琐。以调用获得Windows系统子目录的API 函数为例 ,我们来看一下二者有什么不同 :API 函数格式的描述 :WORD GetSystemDirectory(lpBuffer, nSize) VB 4. 0调用时首先要做如下申明: Declare Function GetSystemDirectory Libkerne132 (ByVal lpBuffer As String,ByValnSize As Long)As Long 然后才能使用: Dim lpBuffer As String *255 Size二GetSystemDirectory(lpBuffer,255) 而Delphi只需像调用内部函数那样: var lpBuffer:PChar; {API 函数必须使用null 结尾的字符串} Size:WORD; {返回的系统子目录字符串实际长度} begin 1pBuffer: 二StrA110c (255) 才预留字符串长度} Size:二GetSystemDirectory(lpBuffer,255) ;end; 由此可见,De1phi是可以充分利用Windows API 来扩展其自身功能的。当然,在大 多数情况下,De1phi 本身的函数功能已经足够使用了。但是,在有些情况下,需要使 用API 函数来实现 些特殊的功能或完善De1phi的 些功能。下面提供两个实例 来说明这一点。 、信息框函数MsgBox 信息框是Windows应用程序中使用得较多的一种对话机制,它被广泛地用于提 示、选择程序走向,是一个重要的程序控制手段。De1phi 提供的信息框函数MessageD1g 功能比较强,其最大优点是可以任意设定信息框的按钮(使用了集合类型),但其缺 点也是很明显的,主要表现在标题字符串不能由用户自己设置!窗口弹出时寂静无声 !按钮不能随着Windows的不同语言的版本显示不同的文字(例如无论在哪种语言版 本下都只能显示OK仁 Yes等英文字符)。这些优点和缺点都是由于它是De1phi 自己实现的,而不是通过调用系统API 函数实现的,故不能使用系统的语言环境、 多媒体等资源。这样,所开发的程序在中文版中显示信息框时与周围的窗口显得 极不协调。而VB在这方面却做得较好,所以我们按照凹的格式自定义一个信息 框函数MsgBoxo 下面的函数都假定是在TForm1中定义的。为了使用方便,我们首 先在Interfaces段中定义 些符号常量: const {第组:按钮内容选择} OKOn1y二0; {仅显示确定按钮} OKCance1二 1; {显示确定:f日取消按钮} AbortRetryIgnore二

文档评论(0)

tcpe + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档