DELPHI中使用API函数详解.doc

上传人:公**** 文档编号:545927985 上传时间:2023-05-11 格式:DOC 页数:4 大小:29.50KB
返回 下载 相关 举报
DELPHI中使用API函数详解.doc_第1页
第1页 / 共4页
DELPHI中使用API函数详解.doc_第2页
第2页 / 共4页
DELPHI中使用API函数详解.doc_第3页
第3页 / 共4页
DELPHI中使用API函数详解.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《DELPHI中使用API函数详解.doc》由会员分享,可在线阅读,更多相关《DELPHI中使用API函数详解.doc(4页珍藏版)》请在金锄头文库上搜索。

1、DELPHI中使用API函数详解 作者: pable 类别:System 发布时间:2003-10-16 12:28:30 阅览次数:59大家别误会,这里的戴妃可不是已经香销玉殒的英国王妃,而是INPRISE的招牌产品DELPHI的中文译名!介绍DELPHI的文章已经很多了,大家是不是被它强大的开发功能所折服?可视化编程的出现,使很多朋友圆了程序梦。的确,几个控件的搭配再加上几条语句,也许一个软件就出来了。但是,你是否已不满足使用别人的元件?想更深入的了解WINDOWS的编程?更换的掌握DELPHI?OK,请继续往下看。 DOS下的INT21H对于开发DOS程序很重要,而对于在WINDOWS下

2、开发程序,了解API函数是很有必要的。元件就像招式,而API函数就好比内功心法,有了高深的内力,那么学习招式就易如反掌啦。所以,掌握的API函数越多,你就越可能成为DELPHI高手,甚至WINDOWS编程高手。所以,无论是C,VB还是DELPHI都无一例外的支持API函数的调用,C和DELPHI是全面支持API函数,而VB仅支持部分API函数(部分也不少了,已经有几百条之多),尤其是DELPHI调用API函数最方便,已经达到与API函数合二为一的境界,调用API函数和使用自身的函数几乎一样。下面我将为大家详细讲解API函数在DELPHI中的使用,每条语句我都会写个小例子,让大家更能明白其是如何

3、使用的。如果你认真看完本文后,相信大家一定会对DELPHI编程有更深的了解。但是千万不要半途而废,畏难怕繁,记住:欲练神功,必下苦功!学编程,可不是玩游戏,不能弄个FPE啥作弊的。 (一)控件与消息函数 语法:AnyPopup: BOOL; 单元:windows.pas(该单元DELPHI会自行在USES里加上,下同) 作用:判断屏幕上是否存在任何弹出式窗口 返回值:BOOL,如存在弹出式菜单,则返回TRUE 注解:对该函数来说,弹出式菜单包含所有可见的包容顶级窗口,无论弹出式还是重叠窗口 示例: procedure TForm1.Button1Click(Sender: TObject);

4、begin if (AnyPopup) then Label1.Caption:=Popups found: TRUE else Label1.Caption:=Popups found: FALSE; end; 语法:EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL;单元:windows.pas 作用:指定的窗口里允许或禁止所有鼠标及键盘输入 返回值:BOOL,如果返回真,WINDOWS已经禁止,否则返回假 示例: procedure TForm1.Button1Click(Sender: TObject); begin if (IsWindowEn

5、abled(Edit1.Handle) then begin EnableWindow(Edit1.Handle,FALSE); Button1.Caption:=Enable Window; Edit1.Text:=This window is disabled; end else begin EnableWindow(Edit1.Handle,TRUE); Button1.Caption:=Disable Window; Edit1.Text:=This window is enabled; end; end; 语法:FlashWindow(hWnd: HWND; bInvert: BOO

6、L): BOOL; 单元:windows.pas 作用:闪烁显示指定窗口。这意味着窗口的标题和说明文字会发生变化,似乎从活动切换到非活动状态、或反向切换。通常对不活动的窗口应用这个函数,引起用户的注意 返回值:BOOL,如窗口在调用前处于活动状态,则返回TRUE 注解:该函数通常与一个计数器组合使用,生成连续的闪烁效果。 在windows nt及windowsfor workgroup中,bInvert参数会被忽略。 但在windows 95中不会忽略 示例: procedure TForm1.Timer1Timer(Sender: TObject); begin FlashWindow(Fo

7、rm1.Handle, TRUE); FlashWindow(Application.handle, TRUE); end; 语法:SetWindowText(hWnd: HWND;lpString: PChar): BOOL; 单元:windows.pas 作用:设置窗口的标题文字或控件的内容 返回值:设置成功返回TRUE,否则返回FALSE 示例: procedure TForm1.Button1Click(Sender: TObject); var TheText: PChar; TextLen: Integer; begin TextLen:=GetWindowTextLength(F

8、orm1.Handle); GetMem(TheText,TextLen); GetWindowText(Form1.Handle,TheText,TextLen1); Edit1.Text:=string(TheText); FreeMem(TheText); end; procedure TForm1.Button2Click(Sender: TObject); begin SetWindowText(Form1.Handle, PChar(Edit1.Text); end; 语法:IsWindow(hWnd: HWND): BOOL; 单元:windows.pas 作用:判断一个窗口句柄

9、是否有效 返回值:有效返回TRUE,否则返回FALSE 示例: procedure TForm1.Button1Click(Sender: TObject); begin if (IsWindow(Button1.Handle) then Button1.Caption:=TRUE else Button1.Caption:=FALSE; end; 怎么样,还过瘾吧?今天是第一次,就介绍些较容易接受的函数,否则朋友们肯定会喊吃不消。不知道朋友们对这样的编排形式能够接受吗?还有,我会按照API函数的分类(控件与消息函数/硬件与系统函数/菜单函数/文本和字体函数/打印函数等等)分别介绍,但我不会介

10、绍全部的API函数,否则大有骗稿费之嫌疑,而且本人的水平也难做到每个语句都有示例,只介绍平常用得上的,本人经常使用的函数,有时也会介绍一下比较隐秘但却非常有用的API函数。 附TIPS(DELPHI技巧)一个: 如果有这样一个目录: c:windowsmediatempabcsoundchime.wav 我希望它能缩短成: c:windows.soundchime.wav 如何写程序呢? 回答: 用下面的过程试试: function shortenfilename(s : string) : string; var drive,curdrive : string2; dir,curdir :

11、string80; name : string20; ext : string5; i : byte; begin for i:=1 to length(s) do si:=upcase(si); s:=fexpand(s); fsplit(s,dir,name,ext); drive:=copy(dir,1,2); dir:=copy(dir,4,length(dir)3); getdir(0,curdir); curdrive:=copy(curdir,1,2); curdir:=copy(curdir,4,length(curdir)3); if drive=curdrive then

12、begin if copy(dir,1,length(curdir)=curdir then begin i:=length(curdir); if length(dir)i then dir:=dir; shortenfilename:=copy(dir,i1,length(dir)i1)nameext; end else shortenfilename:=copy(s,3,length(s)2); end else shortenfilename:=s; end; 注:本文只为提高DELPHI能力的朋友所写,非一般入门级的教程,所以文中所有DELPHI的自身函数和一些基本技巧不再说明,请朋友查阅DELPHI的联机帮助手册。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号