Delphi API函数 详解(1)

原创 2001年04月28日 09:40:00

  (一)控件与消息函数

  1、语法: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;

  2、语法: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;

  3、语法: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;

  4、语法: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;

  5、语法: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;

(转)检测计算机的 Internet 连接状态(InternetCheckConnection与InternetQueryOption)

来自:卷起千堆雪tyn, 时间:2001-10-21 11:49:00, ID:684073 转载一篇文章: 检测计算机的 Internet 连接状态 检测计算机是否联网比较简单的做法可...
  • gxj1680
  • gxj1680
  • 2012年03月16日 16:02
  • 5748

delphi与api中的加一减一函数

用于增减变量的并不是常用的Inc/Dec过程,而是用了InterlockedIncrement/InterlockedDecrement这一对过程,它们实现的功能完全一样,都是对变量加一或减一。但它们...
  • diligentcat
  • diligentcat
  • 2012年07月27日 12:08
  • 792

Delphi中调用API函数经验点滴

在Delphi中调用Windows API 函数十分方便,只需在单元的uses段加入Windows 单元名即可(对于由Delphi自动创建的单元,该项工作已经完成)。单元Windows.pas 已经由...
  • JDDXM
  • JDDXM
  • 2015年12月21日 17:21
  • 1190

如何使用GetPrinter

原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=316297 所属论坛:VCL组件开发及应用     审核组:Delphi 提问者:s...
  • Persistent8813
  • Persistent8813
  • 2008年04月24日 08:42
  • 5116

CreateFile ReadFile WriteFile读写文件操作

以下是这个函数的说明: CreateFile这是一个多功能的函数,可打开或创建以下对象,并返回可访问的句柄:控制台,通信资源,目录(只读打开),磁盘驱动器,文件,邮槽,管道。 ...
  • bojie5744
  • bojie5744
  • 2014年05月25日 15:26
  • 1799

Delphi 常用API 函数(好多都没见过)

AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeIconicWindows 排列一个父窗...
  • xtfnpgy
  • xtfnpgy
  • 2016年10月31日 19:53
  • 397

Delphi 使用API函数详解

DOS下的INT21H对于开发DOS程序很重要,而对于在WINDOWS下开发程序,了解API函数是很有必要的。元件就像招式,而API函数就好比内功心法,有了高深的内力,那么学习招式就易如反掌啦。所以,...
  • g_min
  • g_min
  • 2008年02月10日 20:14
  • 622

delphi中的copy函数和pos函数

1、copy(‘csdn’,1,2)   返回的结果是 cs   注释: Copy有3个参数,第一个是要处理的字符串,第二个是要截取的开始位置,第三个是截取位数 当第三个参数大于字...
  • zisongjia
  • zisongjia
  • 2016年12月02日 00:36
  • 1314

Delphi学习手记——pos 函数用法

pos函数功能:取出子串在父串中第一次出现的位置例如:pos(b,abcd);返回结果是2。...
  • dfyy88
  • dfyy88
  • 2009年10月07日 20:42
  • 16250

Delphi调用API函数实例

什么是API函数Win32 API即为Windows应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。早期...
  • xuangege
  • xuangege
  • 2007年09月27日 17:06
  • 3268
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi API函数 详解(1)
举报原因:
原因补充:

(最多只允许输入30个字)