精品久久看,欧美成人久久一级c片免费,日本加勒比在线精品视频,国产一区二区三区免费大片天美,国产成人精品999在线,97理论三级九七午夜在线观看

東坡下載:內容最豐富最安全的下載站!

首頁編程開發Delphi → 利用API函數開發DELPHI程序

利用API函數開發DELPHI程序

相關文章發表評論 來源:本站時間:2010/10/14 9:59:19字體大小:A-A+

更多

作者:東坡下載點擊:2186次評論:1次標簽:

      Windows的API函數是應用程序開發的有力輔助 工具,對它們的恰當使用,可大大增強和改進應用程序與系統打交道的能力,使自己的程序 真正具有底層操作功能。作為RAD工具的基礎代表,BORLANDDELPHI雖然本身也已提供了大 量強有力的函數和過程,但在某些場合、要求下,使用API函數將使你的程序進一步得到改 善,并可拓寬范圍,簡化程序代碼。
  在DELPHI中引用API函數,和使用DELPHI本身的函 數、過程幾乎沒有區別。在DELPHI目錄下有一個WINDOWS.PAS文件,凡是在其中聲明過的API 函數,都可在編程時直接引用而無須另加說明。只是要注意,標準API函數都是以C或C++為 標準進行數據結構定義的,而DELPHI使用的是OBJECTPASCAL語言,因此在引用時應特別注 意參數和函數本身的數據類型。如一個API函數若為布爾值,則在DELPHI中就應以TRUE、FALSE 而不能用0、非0來對返回值進行判斷。

   下面以三個小例子來說明API函數在DELPHI中的 使用。
  一、本地化消息框
  想讓自己的消息框顯示"OK"、"Cancel"還是"確定"、" 取消"?如果想使程序徹底本地化,那么還是放棄MessageDlg和ShowMessage吧--都怪DELPHI 沒有。用MessageBox這個API函數照樣方便。

  使用語法為:
MessageBox(HWND:hWND,lpMessage:
PChar,lpCaption:PChar,uType:Cardinal);
  各參數中,第一個為消息框所屬的窗口句柄,第二 個為要顯示的消息,第三個為消息框的標題,第四個為消息框的類型,函數返回值為整型數。

  為使消息框有所歸屬,第一個參數設為當前窗口, 獲取其句柄的方法是使用另一個API函數:GetActiveWindows(),且不需任何參數。

  例1)Messagebox示例:
  1.主要構件及屬性的設置:
form1:caption:messagebox示例
bordericons:biMaximize和biHelp設為false
panel1:caption:文字部分Alignment:taLeftJustify
panel2:caption:圖象部分Alignment:taLeftJustify
button1~button12:caption分別為:確定、確定取消、
確定幫助取消、是否、重試取消、終止重試取消、
信息、提問、系統圖標、警告、停止、組合方式
bitbtn1:kind:bkClose
  如圖一所示:
  2.事件說明:(詳見源程序,下僅舉兩例)
{文字部分以button2click()為例}
procedureTForm1.Button2Click(Sender:TObject);
begin
casemessagebox(getactivewindow(),
顯示確定、取消框,例子,
okcancel)
ofidok:messagebox(getactivewindow(),
您按下的是"確定"按鈕,
結果,mb_ok);
idcancel:messagebox(getactivewindow(),
您按下的是"取消"按鈕,
結果,mb_ok);
end;
end;
{圖象部分以button8click()為例}
procedureTForm1.Button8Click(Sender:TObject);
begin
messagebox(getactivewindow(),顯示警告圖標,例子,
mb_iconwarning)
end;
  二、改進Windows9x的系統登錄的安全性:
  Win9x的"用戶登錄"窗口可謂來者不拒,密碼不 對照樣可以"登堂入室",系統為用戶保留的個人設置等信息也就毫無保密性可言,通過查 看Profiles目錄,可輕松地將其復制或刪除。雖然Win95、Win98的應用對象是個人用戶,但 在某些場合下,還是讓登錄窗口起點作用的好。
  要使系統登錄具有安全性,對非法使用者真正能 拒之門外,不妨用兩個API函數來實現此目的。
例二)系統登錄檢查
  1.主要構件及屬性設置:
form1:caption:CheckUser
height、width:設為最小值
  2.事件說明:
//定義變量
private
size:cardinal;
name:pchar;
entry:boolean;{Privatedeclarations}

procedureTCheckUser.FormShow(Sender:TObject);
begin
size:=64;
name:=StrAlloc(64);
{檢查用戶名,判斷是按了“取消”按鈕還是鍵入了新用戶名}
ifGetUsername(name,size)
thenifname=’wj’//‘wj’為筆者機器的登錄用戶名
{在此,若允許的合法使用者不止一個,還可利用關系運算指定
一個以上的用戶進入。
如:if(name=’computer1’)or(name=’computer2’)
}
thenentry:=true;
close;
end;
procedureTCheckUser.FormClose
(Sender:TObject;varAction:TCloseAction);
begin
ifnotentry
thenExitWindowsEx(EWX_REBOOT,32);
//若用戶名不對,則重新啟動Windows
end;

procedureTCheckUser.FormCreate(Sender:TObject);
begin
entry:=false;//設定初始值
end;

  編譯完畢后,生成EXE文件,然后打開注冊表—— 使用Regedit,找到HKEY_LOCAL_MACHINE\SOFTWARE\Micr\Windows\CurrentVersion\RUN 行,添加鍵值名(如:CheckUser)及鍵值(EXE文件所在的完整路徑)。如圖所示:
  好了,重新啟動一次,沒有正確的密碼還能進入嗎?
  三.沒有“媒體播放器”的聲音播放
  日前做了一個小程序,想在“關于”窗口加上一段 聲音說明,但小小的“關于”FORM放上一個長長的、Visible屬性需為False的MediaPlayer構 件實在別扭。東查西找之下,還是靠API函數SNDPLAYSOUND()解決了問題——從而擺脫了MediaPlayer 的“束縛”。例三)使用API函數控制聲音文件的播放:(部分代碼)
procedureTaboutBox.FormShow(Sender:TObject);
begin
//播放當前目錄下的welcome.wav文件
sndplaysound(‘welcome.wav’,snd_async)
end;

procedureTAboutBox.FormClick(Sender:TObject);
begin
//停止播放
sndplaysound(‘’,snd_async);
end;

  別忘了,在USES子句中加入mmsystem單元。如果只 需要播放聲音,那么一條API函數就能實現功能的還用得著MediaPlayer來大動干戈嗎?
  總之,使用DELPHI的“聰明的程序員”們應該充分 發揮DELPHI調用API函數方便快捷的優勢,好好利用API函數以更好地為自己程序服務。

相關評論

閱讀本文后您有什么感想? 已有 人給出評價!

  • 2791 喜歡喜歡
  • 2101 頂
  • 800 難過難過
  • 1219 囧
  • 4049 圍觀圍觀
  • 5602 無聊無聊
熱門評論
最新評論
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數: 0/500 (您的評論需要經過審核才能顯示)

本類常用軟件

主站蜘蛛池模板: 久久久久久久网站 | 欧美日韩高清一区 | 九九中文字幕 | 天天躁天天狠天天透 | 国产国产成人精品久久 | 久久这里只有精品9 | 精品高清国产a毛片 | 国产小视频网址 | 国产精品第一 | 在线精品国产成人综合第一页 | 国产大学生自拍视频 | 国产亚洲欧美日韩综合另类 | 黄色成人短视频 | 蜜臀91精品国产高清在线观看 | 国产午夜在线视频 | 午夜免费福利在线观看 | 国产精品久草 | 午夜福利国产一级毛片 | 欧美在线一级视频 | 人人狠狠综合久久亚洲 | 日韩欧美一区二区精品久久 | 久久新视频| 国产高清精品自在线看 | 男女视频在线观看网站 | 欧美色视频日本片免费高清 | 亚洲精品国产字幕久久不卡 | 日韩久久网 | 五月婷激情 | 色偷偷网站| 国产69久久精品成人看小说 | 97精品国产97久久久久久 | 久久久久久久男人的天堂 | 91亚洲国产 | 婷婷开心激情 | 无人码一区二区三区视频 | 国产欧美另类久久精品91 | 五月天综合婷婷 | 欧美性活生活视频 | 伊人网在线视频观看 | 99ri在线精品视频在线播放 | 国产高清视频免费 |