`
yesjavame
  • 浏览: 689443 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

DELPHI中使用API函数详解

阅读更多
大家别误会,这里的戴妃可不是已经香销玉殒的英国王妃,而是INPRISE的招牌产品DELPHI的中文译名!介绍DELPHI的文章已经很多了,大家是不是被它强大的开发功能所折服?可视化编程的出现,使很多朋友圆了程序梦。的确,几个控件的搭配再加上几条语句,也许一个软件就出来了。但是,你是否已不满足使用别人的元件?想更深入的了解WINDOWS的编程?更换的掌握DELPHI?OK,请继续往下看。

  DOS下的INT21H对于开发DOS程序很重要,而对于在WINDOWS下开发程序,了解API函数是很有必要的。元件就像招式,而API函数就好比内功心法,有了高深的内力,那么学习招式就易如反掌啦。所以,掌握的API函数越多,你就越可能成为DELPHI高手,甚至WINDOWS编程高手。所以,无论是C++,VB还是DELPHI都无一例外的支持API函数的调用,C++和DELPHI是全面支持API函数,而VB仅支持部分API函数(部分也不少了,已经有几百条之多),尤其是DELPHI调用API函数最方便,已经达到与API函数合二为一的境界,调用API函数和使用自身的函数几乎一样。下面我将为大家详细讲解API函数在DELPHI中的使用,每条语句我都会写个小例子,让大家更能明白其是如何使用的。如果你认真看完本文后,相信大家一定会对DELPHI编程有更深的了解。但是千万不要半途而废,畏难怕繁,记住:欲练神功,必下苦功!学编程,可不是玩游戏,不能弄个FPE啥的。

  (一)控件与消息函数

  ①语法:AnyPopup: BOOL;

  单元:windows.pas(该单元DELPHI会自行在USES里加上,下同)

  作用:判断屏幕上是否存在任何弹出式窗口

  返回值:BOOL,如存在弹出式菜单,则返回TRUE

  注解:对该函数来说,弹出式菜单包含所有可见的包容顶级窗口,无论弹出式还是重叠窗口

  示例:

  procedure TForm1.Button1Click(Sender: TObject);

  begin

  if (AnyPopup) then

  Label1.Caption:=‘Pop-ups found: TRUE'

  else

  Label1.Caption:=‘Pop-ups found: FALSE';

  end;

  ②语法:EnableWindow(hWnd: HWND; bEnable: BOOL): BOOL;单元:windows.pas

  作用:指定的窗口里允许或禁止所有鼠标及键盘输入

  返回值:BOOL,如果返回真,WINDOWS已经禁止,否则返回假

  示例:

  procedure TForm1.Button1Click(Sender: TObject);

  begin

  if (IsWindowEnabled(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: BOOL): BOOL;

  单元:windows.pas

  作用:闪烁显示指定窗口。这意味着窗口的标题和说明文字会发生变化,似乎从活动切换到非活动状态、或反向切换。通常对不活动的窗口应用这个函数,引起用户的注意

  返回值:BOOL,如窗口在调用前处于活动状态,则返回TRUE

  注解:该函数通常与一个计数器组合使用,生成连续的闪烁效果。

  在windows nt及windowsfor workgroup中,bInvert参数会被忽略。

  但在windows 95中不会忽略

  示例:

  procedure TForm1.Timer1Timer(Sender: TObject);

  begin

  FlashWindow(Form1.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(Form1.Handle);

  GetMem(TheText,TextLen);

  GetWindowText(Form1.Handle,TheText,TextLen+1);

  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

  作用:判断一个窗口句柄是否有效

  返回值:有效返回TRUE,否则返回FALSE

  示例:

  procedure TForm1.Button1Click(Sender: TObject);

  begin

  if (IsWindow(Button1.Handle)) then

  Button1.Caption:=‘TRUE'

  else

  Button1.Caption:=‘FALSE';

  end;

  怎么样,还过瘾吧?今天是第一次,就介绍些较容易接受的函数,否则朋友们肯定会喊吃不消。不知道朋友们对这样的编排形式能够接受吗?还有,我会按照API函数的分类(控件与消息函数/硬件与系统函数/菜单函数/文本和字体函数/打印函数等等)分别介绍,但我不会介绍全部的API函数,否则大有骗稿费之嫌疑,而且本人的水平也难做到每个语句都有示例,只介绍平常用得上的,本人经常使用的函数,有时也会介绍一下比较隐秘但却非常有用的API函数。

  附TIPS(DELPHI技巧)一个:

  如果有这样一个目录:

  c:\windows\media\temp\abc\sound\chime.wav

  我希望它能缩短成:

  c:\windows\..\sound\chime.wav

  如何写程序呢?

  回答:

  用下面的过程试试:

  function shortenfilename(s : string) : string;

  var drive,curdrive : string[2];

  dir,curdir : string[80];

  name : string[20];

  ext : string[5];

  i : byte;

  begin

  for i:=1 to length(s) do s[i]:=upcase(s[i]);

  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 begin

  if copy(dir,1,length(curdir))=curdir then begin

  i:=length(curdir);

  if length(dir)<>i then dir:=dir+‘\';

  shortenfilename:=copy(dir,i+1,length(dir)-i-1)+name+ext;

  end else shortenfilename:=copy(s,3,length(s)-2);

  end else shortenfilename:=s;

  end;

  注:本文只为提高DELPHI能力的朋友所写,非一般入门级的教程,所以文中所有DELPHI的自身函数和一些基本技巧不再说明,请朋友查阅DELPHI的联机帮助手册。
分享到:
评论

相关推荐

    DELPHI中使用API函数详解.docx

    在DELPHI中,调用API函数非常直接,因为DELPHI本身是基于Pascal语言的,而Pascal语法与C语言家族(包括C++)的API调用方式非常接近。DELPHI的标准库中包含了一个名为`windows.pas`的单元,这个单元定义了大量的...

    DELPHI中使用API函数详解.pdf

    DELPHI作为一个强大的Windows开发工具,不仅支持自身丰富的控件和类库,还允许开发者直接调用API函数来实现更多自定义功能。 1. **AnyPopup函数**: - 函数:AnyPopup: BOOL; - 单元:windows.pas; - 功能:检测...

    怎样在DELPHI中使用API函数...

    #### 五、API函数详解 在这个示例中,`SystemParametersInfo`函数用于更改桌面壁纸。其参数含义如下: - `uAction`: 表示要执行的操作。在此示例中为`SPI_SETDESKWALLPAPER`,即设置桌面壁纸。 - `uParam`: 对于`...

    WindowsAPI大全 FranticBlack收集

    \DELPHI中使用API函数详解.doc \FoxAPIv15.rar \win32api.zip \Win32Api_Pas.zip \WinAPI_VB.CHM \WinAPI函数库.doc \WinAPI中文_VB.rar \Windows_API_函数大全.doc \Windows_API大全.pdf \新编Win32API大全.CHM

    Win API大全

    文档“DELPHI中使用API函数详解.doc”可能详细介绍了如何在Delphi项目中导入和使用Win API函数,包括API函数声明、调用方式以及常见问题的解决策略。 Win API中的核心概念包括: 1. **窗口和消息**:Win API提供了...

    Delphi-日期时间函数详解.doc

    Delphi 日期时间函数详解 Delphi 中的日期和时间函数是编程中非常重要的一部分,它可以帮助开发者更好地处理日期和时间相关的操作。下面是 Delphi 中一些常用的日期和时间函数的详解。 DateTimeToFileDate 函数 ...

    api函数的使用

    在Delphi中使用API函数与在C或C++中使用的原理大致相同,但Delphi采用了Pascal语法,因此有一些细节上的差异。Delphi通过创建与C/C++头文件相对应的PAS单元来支持API函数的使用。这些PAS单元包含API函数的声明,使得...

    Delphi常用API函数

    ### Delphi常用API函数知识点详解 #### AdjustWindowRect **功能描述:** 此函数用于根据提供的窗口样式,计算目标客户区所需的实际窗口尺寸。这对于在创建窗口时预先确定其最终大小非常有用,确保用户界面元素按照...

    Windows课程设计 API函数详解

    本书首先对Win32 API函数做完整的概述;然后收录五大类函数:窗口管理、图形设备接口、系统服务、国际特性以及网络服务;在附录部分,讲解如何在Visual Basic和Delphi中对其调用。 本书是从事Windows应用程序开发...

    delphi API 函数 不错

    ### Delphi API函数详解 #### 一、概述 在Delphi开发环境中,API(Application Programming Interface,应用程序编程接口)函数是一系列预定义的过程和函数,它们允许开发者与操作系统交互,执行各种任务,如文件...

    delphi-api.rar_API_delphi API_delphiAPI

    Delphi作为面向对象的 Pascal 编程语言,其集成开发环境(IDE)支持直接调用API函数,通过Pascal语法的声明,开发者可以方便地在Delphi程序中使用API。这大大扩展了Delphi的功能,使其能够处理更复杂的系统任务。 3...

    delphi版的api图像函数

    ### Delphi 版 API 图像函数详解 #### 一、ExtractIcon - 获取 EXE、DLL 或 ICO 文件中的图标 **功能概述:** `ExtractIcon` 是 Windows API 中的一个函数,用于从 EXE、DLL 或 ICO 文件中提取图标。Delphi 通过...

    Delphi IATHook API

    **Delphi IATHook API 知识点详解** 在编程领域,API Hook是一种技术,它允许程序员拦截并修改其他程序对特定API(应用程序接口)的调用。在Delphi环境中,IATHook(Import Address Table Hook)是实现API Hook的一...

    vb  API函数大全

    ### VB API函数详解及其在程序开发中的应用 #### 引言 API,即Application Programming Interface,直译为“应用程序编程接口”,是操作系统提供给应用程序的一种交互机制,允许开发者调用预定义的功能,无需理解...

    《新编Windows API参考大全》PDF完全版

    此外,书中可能还会涉及如何在DELPHI项目中导入和使用DLL(动态链接库),这是许多Windows API函数的载体。 总之,《新编Windows API参考大全》PDF完全版是一本全面且实用的Windows编程指南,无论你是初学者还是...

    Delphi编程疑难详解

    6. **Windows系统控制**:Delphi通过PInvoke(平台调用)技术可以直接调用Windows API函数,实现对操作系统更底层的控制,如窗口管理、系统消息处理、进程线程控制等。这增强了Delphi程序的功能和灵活性。 7. **API...

    delphi函数查询工具

    《Delphi函数查询工具详解及应用》 Delphi,作为一款强大的面向对象的 Pascal 编程语言,拥有丰富的函数库,使得开发者能够高效地构建Windows应用程序。为了方便开发者快速查询和理解Delphi中的各种函数,专门设计...

Global site tag (gtag.js) - Google Analytics