3.4.函數(shù)
在應(yīng)用程序運(yùn)行過程中,常常要向用戶傳遞信息,并且讓用戶根據(jù)需要做出應(yīng)答,讓程序繼續(xù)運(yùn)行。在 Basic中提供了函數(shù)來完成消息對話框的顯示,讓用戶進(jìn)行響應(yīng)。下面將對函數(shù)進(jìn)行介紹。
1. 函數(shù)的格式
([,TYPE][,TITLE][,,])
2. 函數(shù)的參數(shù)
在函數(shù)的五個參數(shù)中vb點(diǎn)擊按鈕出現(xiàn)對話框,除參數(shù)是必須外,其余參數(shù)均可省略。,參數(shù)同函數(shù)中的含義是一樣的。
(1):是一個長度不超過1024個字符的字符串。該字符串將顯示在函數(shù)產(chǎn)生的對話框內(nèi),作為傳遞給用戶的信息。
(2)TYPE:是一個符號常量或整數(shù)值,用來控制函數(shù)產(chǎn)生的對話框內(nèi)顯示的圖標(biāo)和按鈕的種類及數(shù)量。TYPE參數(shù)常用的取值見表3.6。
表3.6TYPE參數(shù)的常見取值
類 型
符 號 常 量
數(shù) 值
功 能
按鈕的類型(確定、取消、終止、重試、忽略、是、否)和數(shù)量
0
1
2
3
4
5
只顯示“確定”按鈕
顯示“確定”和“取消”按鈕
顯示“終止”、“重試”和“忽略”按鈕
顯示“是”、“否”和“取消”按鈕
顯示“是”和“否”按鈕
顯示“重試”和“取消”按鈕
圖標(biāo)類型(暫停、疑問、警告、忽略)
16
32
48
64
顯示暫停圖標(biāo)(x)
顯示疑問圖標(biāo)(?)
顯示警告圖標(biāo)(!)
顯示忽略圖標(biāo)(i)
默認(rèn)活動按鈕
0
256
512
768
第一個按鈕是默認(rèn)值
第二個按鈕是默認(rèn)值
第三個按鈕是默認(rèn)值
第四個按鈕是默認(rèn)值
強(qiáng)制返回
0
4096
應(yīng)用程序強(qiáng)制返回
系統(tǒng)強(qiáng)制返回
TYPE參數(shù)的值由表中四種類型的數(shù)值相加產(chǎn)生,但在程序設(shè)計(jì)中通常只用前三類數(shù)值。例如:
36=4+32+0 顯示“是”和“否”按鈕;
顯示疑問圖標(biāo)(?);
默認(rèn)按鈕為“是”
51=3+48+0 顯示“是”、“否”和“取消”按鈕;
顯示警告圖標(biāo)(!);
默認(rèn)按鈕為“是”
TYPE參數(shù)除了可用數(shù)值表示外,還可以用符號常量表示,以提高程序的可讀性。如果TYPE參數(shù)缺省則對話框內(nèi)只顯示一個“確定”按鈕,并把該按鈕置為活動按鈕,不顯示任何圖標(biāo)。
(3)TITLE:字符串,作為對話框的標(biāo)題。如果該參數(shù)缺省,則將工程的名稱置為對話框的標(biāo)題;如果不想顯示標(biāo)題,則應(yīng)將該參數(shù)置為空串。
3. 函數(shù)的返回值
函數(shù)的返回值是一個整數(shù),該整數(shù)與所選擇的按鈕有關(guān)。函數(shù)產(chǎn)生的對話框共有7種按鈕,返回值為1~7之間的整數(shù),分別與7個按鈕相對應(yīng)。
(1)若返回值為1或符號常量vbOK,則表明用戶選擇了“確定”按鈕。
(2)若返回值為2或符號常量,則表明用戶選擇了“取消”按鈕。
(3)若返回值為3或符號常量,則表明用戶選擇了“終止”按鈕。
(4)若返回值為4或符號常量,則表明用戶選擇了“重試”按鈕。
(5)若返回值為5或符號常量,則表明用戶選擇了“忽略”按鈕。
(6)若返回值為6或符號常量vbYes,則表明用戶選擇了“是”按鈕。
(7)若返回值為7或符號常量vbNo,則表明用戶選擇了“否”按鈕。
4. 應(yīng)用舉例
例3.6編寫程序,用函數(shù)完成圖3.4所示的對話框設(shè)計(jì)。
由圖示對話框可知,函數(shù)的參數(shù)值分別為:
圖3.函數(shù)對話框(1)
:“請確認(rèn)該信息是否正確”
TYPE:19 = 3 + 16 + 0
TITLE:“信息確認(rèn)”
,:缺省
編寫事件過程如下:
Sub ()
Dim m As , t As , n As
m = "請確認(rèn)該信息是否正確"
t = "信息確認(rèn)"
n = (m, 19, t)
Print n
End Sub
程序運(yùn)行后,單擊窗體,將出現(xiàn)如圖3.4所示的對話框。
5. 幾點(diǎn)說明
(1)在信息框內(nèi)標(biāo)有虛線框的按鈕是當(dāng)前活動按鈕,用鼠標(biāo)單擊活動按鈕或按回車鍵,均可完成相應(yīng)的選擇操作。見例3.6。單擊“是”按鈕或按回車鍵則表示確定,在窗體上輸出返回值6。
(2)在信息框內(nèi)顯示提示信息()時,系統(tǒng)可以自動實(shí)現(xiàn)換行,并能自動調(diào)整信息框的大小。如果要按自己的要求換行,則需要插入回車換行操作。
(3)在應(yīng)用程序運(yùn)行過程中,函數(shù)的返回值通常用來作為繼續(xù)執(zhí)行程序的依據(jù)vb點(diǎn)擊按鈕出現(xiàn)對話框,根據(jù)該返回值決定其后的操作。
(4)由函數(shù)產(chǎn)生的對話框?qū)儆凇澳B(tài)窗口”(Modal )。所謂“模態(tài)窗口”是指在應(yīng)用程序運(yùn)行過程中出現(xiàn)該對話框時,要求用戶必須做出選擇,否則不能執(zhí)行任何其他操作。例3.6設(shè)計(jì)的對話框?qū)儆谀B(tài)窗口。
(5)函數(shù)也可以寫成語句的形式,即語句。語句和函數(shù)的功能完全相同,差別僅在于語句沒有返回值,形式簡潔,常用于比較簡單的信息顯示。
語句的格式: $[,TYPE%][,TITLE$][,,]
語句中各參數(shù)的含義及作用與函數(shù)相同,語句產(chǎn)生的對話框也屬于“模態(tài)窗口”。
例3.7用語句設(shè)計(jì)一個對話框。
圖3.語句對話框
編寫事件過程如下:
Sub ()
Dim msg As
Dim typ As
Dim t As
msg = "是否保存該數(shù)據(jù)"
typ = +
t = "數(shù)據(jù)保存對話框"
msg, typ, t
End Sub
程序運(yùn)行結(jié)果如圖3.5所示。