DELPHI的文章已经很多了大家是不是被它强大的开发功能所折服?可视化编程的出现使很多朋友圆了程序梦的确几个控件的搭配再加上几条语句也许一个软件就出来了但是你是否已不满足使用别人的元件?想更深入的了解windows的编程?更换的掌握DELPHI?OK请继续往下看
DOS下的INTH对于开发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
单元windowspas(该单元DELPHI会自行在USES里加上下同)
作用判断屏幕上是否存在任何弹出式窗口
返回值BOOL如存在弹出式菜单则返回TRUE
注解对该函数来说弹出式菜单包含所有可见的包容顶级窗口无论弹出式还是重叠窗口
示例
procedure TFormButtonClick(Sender Tobject)
begin
if (AnyPopup) then
LabelCaption=Pop-ups found TRUE
else
LabelCaption=Pop-ups found FALSE
end
②语法EnableWindow(hWnd HWND bEnable BOOL) BOOL单元windowspas
作用指定的窗口里允许或禁止所有鼠标及键盘输入
返回值BOOL如果返回真WINDOWS已经禁止否则返回假
示例
procedure TFormButtonClick(Sender TObject)
begin
if (IsWindowEnabled(EditHandle)) then
begin
EnableWindow(EditHandleFALSE)
ButtonCaption=Enable Window
EditText=This window is disabled
end
else
begin
EnableWindow(EditHandleTRUE)
ButtonCaption=Disable Window
EditText=This window is enabled
end
end
③语法FlashWindow(hWnd HWND bInvert BOOL) BOOL
单元windowspas
作用闪烁显示指定窗口这意味着窗口的标题和说明文字会发生变化似乎从活动切换到非活动状态或反向切换通常对不活动的窗口应用这个函数引起用户的注意
返回值BOOL如窗口在调用前处于活动状态则返回TRUE [Page]
注解该函数通常与一个计数器组合使用生成连续的闪烁效果
在windows NT及windowsfor workgroup中bInvert参数会被忽略
但在windows 中不会忽略
示例
procedure TFormTimerTimer(Sender TObject)
begin
FlashWindow(FormHandle TRUE)
FlashWindow(Applicationhandle TRUE)
end
④语法SetWindowText(hWnd HWNDlpString PChar) BOOL
单元windowspas
作用设置窗口的标题文字或控件的内容
返回值设置成功返回TRUE否则返回FALSE
示例
procedure TFormButtonClick(Sender TObject)
var
TheText PChar
TextLen Integer
begin
TextLen=GetWindowTextLength(FormHandle)
GetMem(TheTextTextLen)
GetWindowText(FormHandleTheTextTextLen+)
EditText=string(TheText)
FreeMem(TheText)
end
procedure TFormButtonClick(Sender TObject)
begin
SetWindowText(FormHandle PChar(EditText))
end
⑤语法IsWindow(hWnd HWND) BOOL
单元windowspas
作用判断一个窗口句柄是否有效
返回值有效返回TRUE否则返回FALSE
示例
procedure TFormButtonClick(Sender TObject)
begin
if (IsWindow(ButtonHandle)) then
ButtonCaption=TRUE
else
ButtonCaption=FALSE
end
怎么样还过瘾吧?今天是第一次就介绍些较容易接受的函数否则朋友们肯定会喊吃不消不知道朋友们对这样的编排形式能够接受吗?还有我会按照API函数的分类(控件与消息函数/硬件与系统函数/菜单函数/文本和字体函数/打印函数等等)分别介绍但我不会介绍全部的API函数否则大有骗稿费之嫌疑而且本人的水平也难做到每个语句都有示例只介绍平常用得上的本人经常使用的函数有时也会介绍一下比较隐秘但却非常有用的API函数
附tips(DELPHI技巧)一个
如果有这样一个目录
cwindowsmediatempabcsoundchimewav
我希望它能缩短成
cwindows……soundchimewav
如何写程序呢?
回答
用下面的过程试试
function shortenfilename(s string) string
var drivecurdrive string[]
dircurdir string[]
name string[] [Page]
ext string[]
i byte
begin
for i= to length(s) do s[i]=upcase(s[i])
s=fexpand(s)
fsplit(sdirnameext)
drive=copy(dir)
dir=copy(dirlength(dir)-)
getdir(curdir)
curdrive=copy(curdir)
curdir=copy(curdirlength(curdir)-)+
if drive=curdrive then begin
if copy(dirlength(curdir))=curdir then begin
i=length(curdir)
if length(dir)<>i then dir=dir+
shortenfilename=copy(diri+length(dir)-i-)+name+ext
end else shortenfilename=copy(slength(s)-)
end else shortenfilename=s
end
注本文只为提高DELPHI能力的朋友所写非一般入门级的教程所以文中所有DELPHI的自身函数和一些基本技巧不再说明请朋友查阅DELPHI的联机帮助手册