1、函數原型及參數
function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer;
hWnd:對話框父窗口句柄,對話框顯示在Delphi窗體內,可使用窗體的Handle屬性,否則可用0,使其直接作為桌面窗口的子窗口。
Text:欲顯示的信息字符串。
Caption:對話框標題字符串。
Type:對話框類型常量。
該函數的返回值為整數,用於對話框按鈕的識別。
2、類型常量
對話框的類型常量可由按鈕組合、缺省按鈕、顯示圖標、運行模式四種常量組合而成。
(1)按鈕組合常量
MB_OK = $00000000 //壹個確定按鈕 默認
MB_OKCANCEL = $00000001 //壹個確定按鈕,壹個取消按鈕
MB_ABORTRETRYIGNORE = $00000002; //壹個異常終止按鈕,壹個重試按鈕,壹個忽略按鈕
MB_YESNOCANCEL = $00000003; //壹個是按鈕,壹個否按鈕,壹個取消按鈕
MB_YESNO = $00000004; //壹個是按鈕,壹個否按鈕
MB_RETRYCANCEL = $00000005; //壹個重試按鈕,壹個取消按鈕
(2)缺省按鈕常量
MB_DEFBUTTON1 = $00000000; //第壹個按鈕為缺省按鈕
MB_DEFBUTTON2 = $00000100; //第二個按鈕為缺省按鈕
MB_DEFBUTTON3 = $00000200; //第三個按鈕為缺省按鈕
MB_DEFBUTTON4 = $00000300; //第四個按鈕為缺省按鈕
(3)圖標常量
MB_ICONHAND = $00000010; //“×”號圖標
MB_ICONQUESTION = $00000020; //“?”號圖標
MB_ICONEXCLAMATION = $00000030; //“!”號圖標
MB_ICONASTERISK = $00000040; //“i”圖標
MB_USERICON = $00000080; //用戶圖標
MB_ICONWARNING = MB_ICONEXCLAMATION; //“!”號圖標
MB_ICONERROR = MB_ICONHAND; //“×”號圖標
MB_ICONINFORMATION = MB_ICONASTERISK; //“i”圖標
MB_ICONSTOP = MB_ICONHAND; //“×”號圖標
(4)運行模式常量
MB_APPLMODAL = $00000000; //應用程序模式,在未結束對話框前也能切換到另壹應用程序
MB_SYSTEMMODAL = $00001000; //系統模式,必須結束對話框後,才能做其他操作
MB_TASKMODAL = $00002000; //任務模式,在未結束對話框前也能切換到另壹應用程序
MB_HELP = $00004000; //Help Button
3、函數返回值
0 //對話框建立失敗
IdOk = 1 //按確定按鈕
IDCancel = 2 //按取消按鈕
IDAbout = 3 //按異常終止按鈕
IDRetry = 4 //按重試按鈕
IDIgnore = 5 //按忽略按鈕
IDYes = 6 //按是按鈕
IDNo = 7 //按否按鈕
應用實例:
Application.MessageBox('妳確定此操作嗎?','詢問',MB_OK);//只有壹個確定按鈕
MessageBox(0,'妳確定此操作嗎?','詢問',MB_OK); //只有壹個確定按鈕
MessageBox(0,'妳確定此操作嗎?','詢問',1); //確定取消(如果不帶圖標,也可以用數字)
MessageBox(0,'妳確定此操作嗎?','詢問',MB_OKCANCEL);//確定取消二個按鈕
MessageBox(0,'妳確定此操作嗎?','詢問',MB_OKCANCEL+MB_ICONQUESTION);//確定取消,帶?號圖標
MessageBox(0,'妳確定此操作嗎?','詢問',MB_OKCANCEL+MB_ICONQUESTION+MB_DEFBUTTON2);//確定取消,帶?號圖標,並把第二個按鈕“取消”設為默認按鈕!
如果想判斷用戶選擇了那個按鈕可以這樣
var
x:integer;
begin
x:=MessageBox(0,'妳確定此操作嗎?','詢問',MB_OKCANCEL);
end;
判斷時可以是if x=1 then ..或if x=idok then...
給妳舉個例子:
if messagebox(0,'您確定要導入數據嗎? ','系統詢問?',MB_YESNO+MB_ICONQUESTION)<>6 then
begin
Screen.Cursor:= crDefault; //恢復系統光標
exit;
end;