新觀念的 VB6 教本 第 4 章 開始撰寫程式
4-1 VB的三種工作模式 -- 設計、執行、中斷
開始、中斷、結束三個命令鈕
設計模式 VB在設計模式之下,可以進行表單及程式的設計
執行模式 在執行模式之下,按下結束命令鈕 ,又會恢復成設計模式。
進入執行模式 進入執行模式,工具箱及屬性視窗會被隱藏起來,而表單視窗的格點不見了。 在執行模式之下,按下結束命令鈕 ,又會恢復成設計模式。
中斷模式 在中斷模式下,原來的 命令鈕代表的是繼續的意思,按下這個命令鈕將回到執行模式,按下結束命令鈕則恢復成設計模式。
變換這三種工作模式的圖解
變換這三種工作模式的一覽表 工作模式 如何進入 設計模式 1.啟動VB 2.在任何模式下,按下 執行模式 在任何模式下,按下 中斷模式 在執行模式下,按下
4-2 用命令鈕啟動程式
計算標準體重 要計算某一身高下的標準體重,如果利 用即時運算視窗,以下是程式輸入及執 行的過程 : H = 175 ' 身高 W = H - 105 ' 計算公式 Print "標準體重 ="; W ' 印出標準體重 標準體重 = 70
把程式放到命令鈕裡(1) 在表單上佈置一個命令鈕。 雙按表單上的命令鈕
把程式放到命令鈕裡(2) 3 .在Private Sub Command1_Click() 及End Sub之間輸入計算標準體重的程式
執行命令鈕裡面的程式 按下工具列的開始命令鈕 ,先啟動VB應用程式的執行。 此時可以看到我們在表單上佈置的命令鈕,按下命令鈕方可啟動程式的執行。
輸入程式的注意事項 把程式寫在Private Sub及End Sub之間。 Private Sub Command1_Click() 中的Command1會隨著被雙按 的命令鈕名稱 來改變。 不要改變物件盒 中的選擇。 不要改變程序盒 中的選擇。
設計的觀念 在表單上佈置命令鈕,用的是表單的設計觀念。 在命令鈕裡面撰寫程式,用的是程式的設計觀念。 利用即時運算視窗來執行VB的敘述,雖然不具有設計的觀念 ,卻是一個很好的試驗場。
可輸入資料的程式 -- InputBox
可輸入資料的程式 -- 程式的改良
表單輸出的注意事項
表單輸出的注意事項 -- CLS 敘述 在原表單上再佈置另一個命令鈕,然後在命令鈕裡面寫入CLS敘述,如下: Private Sub Command2_Click() Cls ' 清除表單 End Sub Cls 雖然會把表單清除乾淨,但仍會保留表單上的控制元件,所以執行 Cls 敘述之後,計算標準體重命令鈕還是可以繼續操作。
AutoRedraw(自動重繪) 屬性 把這個屬性設定為True時,將來即使表單曾經被覆蓋住,只要它回到螢幕的最前端,先前Print敘述所輸出的文字,都一律會在原來的位置重新輸出一遍,以恢復原有的風貌。
4-3 設定物件屬性的敘述
設定物件屬性的敘述 物件屬性的設定是表單設計中最重要的工作, VB提供了設定物件屬性的敘述,讓我們在執行階段能夠設定物件的屬性,其效用也跟設計階段利用屬性視窗來設定物件的屬性一樣。
右邊的標籤2(Label2)利用屬性視窗設定以上屬性 初試「設定物件屬性的敘述」 屬 性 屬 性 值 Caption (標題) Visual Basic 6.0 BorderStyle (邊框樣式) 1 - 單線固定 AutoSize (自動調整大小) True 右邊的標籤2(Label2)利用屬性視窗設定以上屬性
初試「設定物件屬性的敘述」 如何利用程式把左邊的 Label1 設定成與右邊的標籤相同的樣子呢?
設定物件屬性的敘述 – Step 1 在原表單上再佈置三個命令鈕。
設定物件屬性的敘述 – Step 2 雙按第一個命令鈕(Command1),調出程式視窗,然後在Private Sub Command1_Click與End Sub之間輸入以下程式: Private Sub Command1_Click() Label1.Caption = "Visual Basic 6.0" End Sub
設定物件屬性的敘述 – Step 3 仿照步驟2的方法,分別在Command2及Command3命令鈕之中輸入以下程式: Private Sub Command2_Click() Label1.BorderStyle = 1 End Sub Private Sub Command3_Click() Label1.AutoSize = True End Sub
設定物件屬性的敘述 – Step 4 按開始命令鈕執行程式,然後依序按下Command1、Command2、Command3命令鈕,結果變化如下:
設定物件屬性的敘述
物件名 ‧ 屬性名 = 屬性值 設定物件屬性的敘述: Label1.Caption = "Visual Basic 6.0"
屬性視窗中設定屬性值的三種類型
設定物件屬性的敘述 -- 鍵盤輸入型 輸入文字型在取得屬性值之後,必須在屬性值的前後加上雙引號。 輸入數字型則直接取下屬性值即可 。
設定物件屬性的敘述 -- 直接選取型(1) 1.在屬性視窗中拉下屬性值列表,並選取欲設定的屬性值。 2.去掉屬性值中的備註文字,即是程式所要的屬性值。
設定物件屬性的敘述 -- 直接選取型(2) 如果屬性值中並未含有備註文字則直接取下即可
設定物件屬性的敘述 -- 直接選取型(3) 檢查您的屬性視窗是否縮得太小了,如果您把屬性視窗縮得太小了,從屬性視窗取下屬性值時,可能會漏取了後面的幾位數 .
設定物件屬性的敘述 -- 交談窗型 Font(字型)的設定(1)
設定物件屬性的敘述 -- 交談窗型 Font(字型)的設定(2) 交談窗之功能 副屬性名稱 意 義 說 明 字型 Name 名稱 Arial、新細明體 等 大小 Size 9、10、12 等 字型樣式 Bold Italic 粗體 斜體 True 表示粗體 True 表示斜體 效果 Underline Strikethrough 底線 取消線 True 表示底線 True 表示取消線
設定物件屬性的敘述 -- 交談窗型 Font(字型)的設定(3) 字型大小的設定 字型名稱的設定 Label1.Font.Size = 12 Label1.Font = "Arial" Label1.Font.Name = "Arial"
設定物件屬性的敘述 -- 交談窗型 Font(字型)的設定(4) 粗體 Label1.Font.Bold = True 斜體 Label1.Font.Italic = True 標準 Label1.Font.Bold = False ' False 表示不要加粗 Label1.Font.Italic = False ' False 表示不要斜體 粗斜體 Label1.Font.Bold = True ' 加粗 Label1.Font.Italic = True ' 斜體 取消線 Label1.Font.Strikethrough = True ' 加刪除線 底線 Label1.Font.Underline = True ' 加底線
設定物件屬性的敘述 -- 交談窗型 Picture(圖片)的設定(1) 藉助VB所提供的 LoadPicture 函數。 設定格式: Set 物件名.Picture = LoadPicture( 圖片檔名 ) 例如: Set Form1.Picture = LoadPicture( "C:\windows\setup.bmp" ) LoadPicture 函數可讀取的圖片檔 有 .bmp、.dib、.wmf、.ico、.cur、.gif、.jpg 等多種。
設定物件屬性的敘述 -- 交談窗型 Picture(圖片)的設定(2) 除了 LoadPicture 函數之外,我們也可以利用以下格式的敘述來設定圖片: Set 物件名1.Picture = 物件名2.Picture 作用是把物件2的圖片設定給物件1。
Picture 屬性實例(p.110) 我們要在表單上佈置一個影像框及兩個命令鈕,而程式執行之後,若按下第一個命令鈕,則載入圖片設定給影像框,若按下第二個命令鈕,則將影像框的圖片設定給表單。
Picture 屬性實例 – Step 1 在表單上佈置好影像框及命令鈕,如下圖:
Picture 屬性實例 – Step 2 在Command1命令鈕之中撰寫以下程式: Private Sub Command1_Click() Set Image1.Picture = LoadPicture("c:\vb6book\ch04\USA.wmf") End Sub
Picture 屬性實例 – Step 3 在Command2命令鈕之中撰寫以下程式: Private Sub Command2_Click() Set Form1.Picture = Image1.Picture End Sub
Picture 屬性實例 – Step 4 最後執行程式,按下Command1命令鈕之後,可看到Image1影像框中顯示出美國國旗圖片,再按下Command2命令鈕,可看到表單上也顯示出美國國旗圖片,如下圖:
4-4 訊息窗與輸入窗
訊息窗(MsgBox) (1)
訊息窗(MsgBox) (2) 抬 頭:通常用來顯示程式名稱,也就是告訴使用者這個訊息窗是哪一個程式顯示出來的。 抬 頭:通常用來顯示程式名稱,也就是告訴使用者這個訊息窗是哪一個程式顯示出來的。 訊息內容:程式想告訴使用者的訊息。 圖 示:提醒使用者注意的示意圖。 回覆按鈕:使用者回覆這個訊息的按鈕,如果使用者不按下按鈕,則訊息窗會一直保留在螢幕上。
MsgBox – 最簡單的格式 格式 : MsgBox 訊息內容 例子: MsgBox "使用訊息窗!"
MsgBox -- 設定回覆按鈕(1) 格式 : MsgBox 訊息內容, 回覆按鈕設定值 例子: MsgBox "設定回覆按鈕的訊息窗!", vbOKCancel
MsgBox -- 設定回覆按鈕(2) 回覆按鈕設定值 : 設定值之常數符號 回覆按鈕 vbOKOnly 1 vbOKCancel 2 vbOKOnly 1 vbOKCancel 2 vbAbortRetryIgnore 3 vbYesNoCancel 4 vbYesNo 5 vbRetryCancel
MsgBox -- 設定圖示(1) 格式 : MsgBox 訊息內容, 圖示設定值 例子: MsgBox "設定圖示的訊息窗!", vbInformation
MsgBox -- 設定圖示(2) 圖示設定值 設定值 設定值之常數符號 圖示 16 vbCritical 32 vbQuestion 48 vbExclamation 64 vbInformation
MsgBox -- 同時設定回覆按鈕及圖示 MsgBox 訊息內容, 回覆按鈕設定值+圖示設定值 MsgBox "喜歡訊息窗嗎?", vbYesNo + vbQuestion
MsgBox -- 設定抬頭 格式一: MsgBox 訊息內容, 回覆按鈕設定值+圖示設定值, 抬頭
MsgBox -- 通用格式 其中參數二、三以 [] 括起來,表示這兩個參數是可以省略的 。 又參數二含有兩個部份,可以擇一或兩者皆設定之。
MsgBox -- 顯示多行訊息內容 有時候我們想顯示多行的訊息內容,則可在行與行之間插入 Chr(13) 的跳行字元,例如:
MsgBox 函數 格式:X = MsgBox( 參數串列 ) 傳回值 X 是由使用者按下哪一個回覆按鈕來決定 按鈕 傳回值 傳回值之常數符號 1 vbOK 2 vbCancel 3 vbAbort 4 vbRetry 5 vbIgnore 6 vbYes 7 vbNo
MsgBox 函數的例子(1)
MsgBox 函數的例子(2) X = MsgBox("星期六一起看場電影好嗎?", vbYesNo + vbQuestion) If X = vbYes Then MsgBox "太好了!" Else MsgBox "啊!..." End If
訊息窗與顯示圖片實例( p.120 )
訊息窗與顯示圖片實例 -- Step1-1 表單設計:在表單上佈置好四個命令鈕,並且為表單及命令鈕設定好以下屬性:
訊息窗與顯示圖片實例 -- Step1-2 物件 屬性 屬性值 Form1 Caption 請選擇您想去觀光的國家 Command1 美國 Style 1 - 圖片外觀 Picture 本書 ch04 目錄的 USA.wmf Command2 加拿大 本書 ch04 目錄的 Canada.wmf Command3 法國 本書 ch04 目錄的France.wmf Command4 日本 本書 ch04 目錄的Japan.wmf
訊息窗與顯示圖片實例 – Step2-1 程式設計:分別在Command1、Command2、Command3、及Command4命令鈕之中撰寫以下程式: Private Sub Command1_Click() ' 「美國」命令鈕 MsgBox "您想去觀光的國家是: " + Command1.Caption, vbInformation Set Form1.Picture = Command1.Picture End Sub Private Sub Command2_Click() '「加拿大」命令鈕 MsgBox "您想去觀光的國家是: " + Command2.Caption, vbInformation Set Form1.Picture = Command2.Picture End Sub
訊息窗與顯示圖片實例 – Step2-2 Private Sub Command3_Click() ' 「法國」命令鈕 MsgBox "您想去觀光的國家是: " + Command3.Caption, vbInformation Set Form1.Picture = Command3.Picture End Sub Private Sub Command4_Click() ' 「日本」命令鈕 MsgBox "您想去觀光的國家是: " + Command4.Caption, vbInformation Set Form1.Picture = Command4.Picture End Sub
輸入窗(InputBox) X = InputBox( 提示訊息 [, 抬頭] [, 輸入欄預設值] )
輸入窗(InputBox) 的例子 X = InputBox( "請輸入身高" ) ' 省略後面兩個參數
使用 InputBox 的注意事項 InputBox 的傳回值是字串,當我們利用它來輸入數值資料時,要特別注意資料運算的問題 。 正確的方法如下: A = InputBox("請輸入 A 值") B = InputBox("請輸入 B 值") A = Val(A) ' 將A轉換成數值資料,再指定給A B = Val(B) ' 將B轉換成數值資料,再指定給B C = A + B
輸入窗實例(p.126) 寫一程式讓使用者輸「國文」、「數學」、及「英文」成績,然後計算其平均分數。
輸入窗實例 -- Step 1 在表單上佈置好 Command1 命令鈕,並且將其 Caption 屬性設定成 “計算平均分數”。
輸入窗實例 -- Step 2 在 Command1 之中撰寫以下程式: Private Sub Command1_Click() A = Val(InputBox("請輸入[數學]成績")) B = Val(InputBox("請輸入[英文]成績")) C = Val(InputBox("請輸入[國文]成績")) Print "平均分數="; (A + B + C) / 3 End Sub
輸入窗實例 -- Step 2 說明 在以上程式中,輸入成績的敘述被寫成比較精簡的格式,如下: A = Val(InputBox(“請輸入[數學]成績”)) 它的作用相當於以下兩個敘述: A = InputBox("請輸入[數學]成績") A = Val(A)