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的聯機幫助手冊
From:http://tw.wingwit.com/Article/program/Delphi/201311/8422.html