Application.MessageBox 是 TApplication 的成員函數(shù),宣告如下:
function TApplication.MessageBox(const Text,Caption: PChar; Flags: Longint): Integer;
自變量:
1. Text:要顯示的訊息
2. Caption:訊息窗口的標(biāo)題列文字
3. Flags:訊息旗標(biāo)
3.1. 可指定訊息窗口上的圖標(biāo)
3.2. 可指定訊息窗口出現(xiàn)的按鈕
3.3. 可指定預(yù)設(shè)Focus在哪一個按鈕
3.4. 可指定是否 Modal
3.5. 其它
自變量說明:
Text、Caption 自變量為 PCahr 型態(tài),字符串型態(tài)的變量可用 PChar()
轉(zhuǎn)換,若直接傳入一個字符串的話,就不用轉(zhuǎn)型。
例如:
var s: string;
....
s := '存檔失敗';
Application.MessageBox(PChar(s), '錯誤', MB_ICONERROR);
Flag 自變量為 Longint 型態(tài),可用的傳入值有:
1. 指定訊息窗口上的圖標(biāo)
1.1 MB_ICONEXCLAMATION 或 MB_ICONWARNING
出現(xiàn)「黃三角形內(nèi)有一個驚嘆號」圖示
1.2 MB_ICONINFORMATION 或 MB_ICONASTERISK
出現(xiàn)「白色橢圓內(nèi)有一個藍(lán)色小寫 i」圖示
1.3 MB_ICONQUESTION
出現(xiàn)「問號」圖示
1.4 MB_ICONSTOP 或 MB_ICONERROR 或 MB_ICONHAND
出現(xiàn)「紅色X」圖示
2. 指定訊息窗口出現(xiàn)的按鈕
2.1 MB_ABORTRETRYIGNORE
出現(xiàn)「Abort」「Retry」「Ignore」三個按鈕
2.2 MB_OK
出現(xiàn)「Ok」按鈕,為默認(rèn)值。
2.3 MB_OKCANCEL
出現(xiàn)「Ok」「Cancel」兩個按鈕
2.4 MB_RETRYCANCEL
出現(xiàn)「Retry」「Cancel」兩個按鈕
2.5 MB_YESNO
出現(xiàn)「Yes」「No」兩個按鈕
2.6 MB_YESNOCANCEL
出現(xiàn)「Yes」「No」「Cancel」三個按鈕
3. 可指定預(yù)設(shè)Focus在哪一個按鈕
3.1MB_DEFBUTTON1
指定focus在左邊第一個按鈕,這是默認(rèn)值。
3.2 MB_DEFBUTTON2、MB_DEFBUTTON3、MB_DEFBUTTON4
以此類推,指定focus在左邊第二、三、四個按鈕
4. 可指定是否 Modal
4.1 MB_APPLMODAL
對于應(yīng)用程序而言,是 modal form
4.2 MB_SYSTEMMODAL
對于操作系統(tǒng)而言,是 modal form
4.3 MB_TASKMODAL
對于 task 而言,是 modal form
一般來說,這跟 MB_APPLMODAL 是等效的,但是當(dāng)應(yīng)用程序中的所有
form 都隱藏的時候,就必須使用這個,才能達(dá)到 modal 的目的
5. 其它
5.1 MB_TOPMOST
將訊息窗口提至最前面
5.2 MB_RIGHT
將消息正文向右對齊
在一個 Flag 要指定這么多的東西,要如何使用呢?只要把要用的自變量組合 or 起來(或用+號)就可以了。例如:
Application.MessageBox(PCahr(sMsg), PChar(sCap), MB_YESNOor MB_ICONQUESTION or MB_DEFBUTTON2)
這樣會出現(xiàn)「問號」圖標(biāo),「Yes」「No」兩個按鈕,而且 focus 在 No 按鈕上
回傳值:
1. IDABORT:使用者按了「Abort」按鈕
2. IDCANCEL:使用者按了「Cancel」按鈕
3. IDIGNORE:使用者按了「Ignore」按鈕
4. IDNO:使用者按了「No」按鈕
5. IDOK:使用者按了「Ok」按鈕
6. IDRETRY:使用者按了「Retry」按鈕
7. IDYES:使用者按了「Yes」按鈕
返回值數(shù)值意義
IDOK 1確定
IDCANCEL 2取消
IDABORT 3中斷
IDRETRY 4重試
IDIGNORE 5忽略
IDYES 6是
IDNO 7否
順帶一提,按鈕上的文字是會隨著操作系統(tǒng)的語系而改變的,用中文版的 Windows,按鈕上的文字就出現(xiàn)中文。
下面是提示信息框的示范程序:
1.警告信息框
Application.MessageBox('警告信息框','警告信息框',MB_ICONWARNING);
2.疑問信息框
Application.MessageBox('疑問信息框','疑問信息框',MB_ICONQUESTION);
3.錯誤提示框
Application.MessageBox('錯誤信息框','錯誤信息框',MB_IConERROR);
4.提示信息框
Application.MessageBox('提示信息框','提示信息框',MB_ICONASTERISK);
5.說明信息框
Application.MessageBox('說明信息框','說明信息框',MB_HELP);
6.提示信息框
Application.MessageBox('提示信息框','提示信息框',MB_OK);
7.確認(rèn)信息框
Application.MessageBox('確認(rèn)信息框','確認(rèn)信息框',MB_OKCANCEL);
8.重試信息框
Application.MessageBox('重試信息框','重試信息框',MB_RETRYCANCEL);
9.是否信息框
Application.MessageBox('是否信息框','是否信息框',MB_YESNO);
10.是否取消信息框
Application.MessageBox('是否取消信息框','是否取消信息框',MB_YESNOCANCEL);
應(yīng)用實(shí)例:
//說明:點(diǎn)擊Button1按鈕,跳出帶感嘆號的提示信息框,并且鼠標(biāo)焦點(diǎn)在"否"上。當(dāng)點(diǎn)擊“是”,將運(yùn)行Close命令關(guān)閉程序,點(diǎn)擊“否”退出提示對話框。
procedure TForm1.Button1Click(Sender: TObject);
begin
if Application.MessageBox('你確定要關(guān)閉程序嗎?','提示信息',MB_YESNO+MB_ICONWARNING+MB_DEFBUTTON2)=IDYES then
Close;
end;