86
程程程程 程程程程 Visual Basic 6.0 Visual Basic 6.0 程程程 程程程 E-mail : E-mail : [email protected] [email protected]

程式設計 Visual Basic 6.0

  • Upload
    anoush

  • View
    191

  • Download
    0

Embed Size (px)

DESCRIPTION

程式設計 Visual Basic 6.0. 許翠婷 E-mail : [email protected]. 圖片盒 v.s. 影像工具. Pic v.s. img 座標- 原點 ( 0,0 ) X 軸- left +:向右 -:向左 Y 軸- top +:向下 -:向上 計量單位-( twip 、 dot 、 pixel 、 inch 、 mm 、 cm ) 1440 twips = 1 inch 567 twips = 1 cm. 圖檔格式. - PowerPoint PPT Presentation

Citation preview

Page 1: 程式設計  Visual Basic 6.0

程式設計 程式設計 Visual Basic 6.0Visual Basic 6.0

程式設計 程式設計 Visual Basic 6.0Visual Basic 6.0

許翠婷許翠婷E-mail : E-mail : [email protected]@scu.edu.tw

Page 2: 程式設計  Visual Basic 6.0

圖片盒 v.s. 影像工具• Pic v.s. img • 座標-

1. 原點 ( 0,0 )2. X 軸- left +:向右 -:向左3. Y 軸- top +:向下 -:向上

• 計量單位-( twip 、 dot 、 pixel 、 inch 、mm 、 cm )

– 1440 twips = 1 inch– 567 twips = 1 cm

Page 3: 程式設計  Visual Basic 6.0

圖檔格式1. .bmp ( Windows Bitmap )- BMP 圖檔格式是以 Bit-Mapped

方式所組成的圖形檔案 ,未壓縮。

2. .gif ( Graphics Interchange Format )-非破壞性壓縮( lossless )、失彩度。工程設計圖、素描圖

3. .jpeg ( Joint Photographic Experts Group )-破壞性壓縮( lossful )、失解析度。風景圖

4. .wmf ( Windows Meta File )-繪圖指令。

5. .ico

6. .dib

\Program Files\Microsoft Visual Studio\Common

Page 4: 程式設計  Visual Basic 6.0
Page 5: 程式設計  Visual Basic 6.0

圖片盒 ( Picture Box ) v.s. 影像工具( Image )

• pic v.s. img – PictureBox 功能強,就好像被布置表單上的 [ 表單 ] ,可

使用 Line 、 Cirlce 等表單的繪圖方法,這些繪圖方法除了可以在表單上面繪圖之外,也可以使用於 PictureBox ,在 PictureBox 之中繪圖,但 Image 卻不具備繪圖的功能。

– 相對的, PictureBox 很浪費系統資源,如果只是為了顯示圖片,使用 Image 比較好,若需要額外繪圖,則使用 PictureBox

• 屬性• top 、 left• width 、 height• Visible 。

Page 6: 程式設計  Visual Basic 6.0

物件的垂直順序

• 先建的物件,置於較下層( ob1 )• 後件的物件,置於較上層( ob2 )• 當物件重疊放置, visible 屬性均為 tru

e 時,僅顯示最上層物件( ob2 )• 若欲看見下層之物件,需將其上層物件

( ob2 ) visible 屬性設為 false

Page 7: 程式設計  Visual Basic 6.0

敘述、識別項• 何謂敘述( Statement )?

– 最小可執行單元– 組成:識別項、保留字、特殊符號、運算式、常值

• 識別項( identifier )的命名規則– 第一個字為字母( A-Z 或中文)、第二個字以後可

為字母、數字或底線 _• <=255 個字元• 不可為保留字• 大小寫視為相同e.g. 正確: y5 、 x 、 st_2 、名次

錯誤: 5y 、 x.0 、 st-2 、 sub

Page 8: 程式設計  Visual Basic 6.0

保留字• 保留字( reserve word )、關鍵字( k

eyword )• if 、 print 、 for 等• 特徵

– 自動以藍色顯示– 自動首字母由小寫轉大寫– 例外: sum 、 avg

Page 9: 程式設計  Visual Basic 6.0

註解、敘述分隔符號、敘述連接符號

• 註解1. ‘ -接於敘述之後2. REM -獨立一行

• 敘述( statement )分隔符號1. :

• 敘述( statement )連接符號1. Space + underline _

Page 10: 程式設計  Visual Basic 6.0

Timer• 事件驅動 v.s. 時間驅動

– 時間驅動:(固定每隔多少時間執行一次物件上所定義之事件程序)

– 事件驅動 :(當發生某個事件時,執行一次物件上所定義之事件程序)

• tmr• 屬性

– Interval• 0 關閉 timer• 1000 一秒

Page 11: 程式設計  Visual Basic 6.0

作業三• 設計一個每秒鐘上下跳動的物件,上置

開始與停止按鈕。

Page 12: 程式設計  Visual Basic 6.0

運算式

• 一般運算式變數名稱 = 運算元 運算子 運算元 【運算子 運算

元】Y= 2+3*(5-2)

• 比較運算式變數名稱 比較運算子 變數或值或運算式

Y>x y>1 y>(1+2)

Page 13: 程式設計  Visual Basic 6.0

運算式

• 邏輯運算式比較運算式 邏輯運算子 比較運算式

y>1 or y<(1+2)

Page 14: 程式設計  Visual Basic 6.0

運算元( operand )• 數字系統

1. 十進位 102. 八進位 &O &O123. 十六進位 &H &HA

– Operand Operator Operand– 5 + 3

Page 15: 程式設計  Visual Basic 6.0

資料的表示法

• 數值資料 — 整數、實數、科學記號 • 字串資料•日期、時間資料 •布林資料

Page 16: 程式設計  Visual Basic 6.0

整數• 十進位的表示法:逗號是不能使用的,如 10,000 。• 十六進位數的表示法:前面加上 &H • 八進位數的表示法:前面加上 & 或 &O( 字母

O)

100 100 的十進位表示法&H64 100 的十六進位表示法&144 100 的八進位表示法&O144 也是 100 的八進位表示法

十六進位是 64((64)16= 6×161 + 4×160= 100

八進位是 144((144)8 = 1×82 + 4×81 + 4×80= 100

Page 17: 程式設計  Visual Basic 6.0

Hex 及 Oct 函數 • 開啟即時運算視窗• Print 指令• 範例 Print Hex(100)

64Print Oct(100)144

返回

Page 18: 程式設計  Visual Basic 6.0

實數• 小數方面, VB 的表示法也跟數學完全相同,如 3.14159、 0.0016 、 -8000.5 等均為正確的寫法。

• VB並沒有分數的表示法,不過我們可以用除號 ‘ /’ 把分數的意義表達出來,例如把 寫成 1/3

返回

Page 19: 程式設計  Visual Basic 6.0

實數 -- 浮點數表示法 科學記號中的「有效數字」及「指數」

有效數字有效數字

指數指數

ED

指數符號D或E,兩者意義相同。

例如:

科學記號表示法 浮點數表示法

5. 6× 10- 7 5. 6E- 79. 75× 109 9. 75E+9

指數有效數字

指數有效數字

Page 20: 程式設計  Visual Basic 6.0

實數 -- 科學記號 • 一般科學記號表示法 • 說 明9750000000 =9.75×109 將小數點左移 9位 , 得到 9.75, 再乘以 1090.00000056 =5.6×10-7 將小數點右移 7 位 , 得到 5.6, 再乘以 10-7

• VB 使用算術運算符號表達,例如:9.75×109 表達成 9.75*10^95.6×10-7 表達成 5.6*10^-7

* 代表乘號 , ^ 代表次方符號。 返回

Page 21: 程式設計  Visual Basic 6.0

字串資料 • 以 “” 括起來的文數字都算是字串,如:

"RUN!PC""Address #83""1998""12+75=?"" 資訊月刊 "

Print "RUNRUN!PC" ' 放到記憶體時 , 兩邊的雙引號會被去掉 , RUNRUN!PC ' 所以輸出時也就沒有雙引號了。

返回

Page 22: 程式設計  Visual Basic 6.0

日期時間資料 • 必須用 ## 括起來• #9:30# 表示上午 9點 30 分• #1997/12/31# 表示 1997年 12月 31日

• 輸出時, VB 一律使用「系統的日期格式」,並且去掉 ## 再輸出,例如:

• Print #28 Feb 1998#1998/2/28

Page 23: 程式設計  Visual Basic 6.0

標準的日期表示法 • 標準的日期表示法是 #西元年 /月 /日 #,例如:

#1997/7/1#表示 西元 1997 年 7 月 1 日#2005/12/31# 表示 西元 2005 年 12 月 31 日

• 西元年從 1930到 2029可以簡寫成 30到 99及 00到 29:

#89/7/1# 等於 #1989/7/1#

Page 24: 程式設計  Visual Basic 6.0

非標準的日期表示法 • 如果不是標準日期表示法, VB 也會做智慧的判斷,例如以下的寫法都表示 #1997/2/28#(1997 年 2 月 28日 ) :#2 28 97##97 2 28##28 Feb 1997##February 28, 1997#

Page 25: 程式設計  Visual Basic 6.0

系統的日期格式( 1 )• 同樣是 #1998/2/28#,可能有些人的機器輸出了「 1998/2/28 」,但也可能有些人的機器輸出了「 2/28/1998 」,這是因為 VB 採用系統的日期格式來輸出資料,而系統的日期格式又可以使用以下方法來進行設定:

Page 26: 程式設計  Visual Basic 6.0

先選取「開始功能表-> -> 設定 控制台」

1

再執行「控制台」的「國別設定」

2

4在此設定系統的日期格式

出現此一交談窗

選擇「日期」頁籤3

以上圖為例,所設定的日期格式為 以上圖為例,所設定的日期格式為 "MM/dd/yyyy""MM/dd/yyyy" ,,所以 所以 #1998/2/28# #1998/2/28# 將會被輸出成「將會被輸出成「 02/28/199802/28/1998」。」。

系統的日期格式( 2 )

Page 27: 程式設計  Visual Basic 6.0

錯誤的日期表示法 • 不存在的日期及中文日期, VB 是不接受的,所以:• #1997/13/29# 錯誤 ,月份 13 超過範圍#1997/2/29# 錯誤 ,1997年不是閏年, 2月只有 28 天#1997 年 7 月 1 日 # 錯誤 , 中文日期

返回

Page 28: 程式設計  Visual Basic 6.0

標準的時間表示法 • 標準的時間表示法是 #時 : 分 : 秒 AM# 及 #時 : 分 : 秒 PM#,其中 AM 表示上午, PM 表示下午

• #9:30:00 AM# 表示 上午 9 點 30 分#7:55:30 PM# 表示 下午 7 點 55 分 30 秒

Page 29: 程式設計  Visual Basic 6.0

非標準的時間表示法

• 如果不是上述的標準時間表示法, VB 也會做智慧的判斷,例如:

• #9 A# 等於 #9:00:00 AM##17:3# 等於 #5:03:00 PM#

Page 30: 程式設計  Visual Basic 6.0

錯誤的時間表示法 • 輸入時間時,有效的時分秒分別是:時:

0 ~ 23 、分秒: 0 ~ 59,所以下面的表示法是錯誤的:

• #24:00:00# 錯誤 , '時 ' 超過 23#17:60:00# 錯誤 , '分 ' 超過 59#12:00:-1# 錯誤 , '秒 ' 是負數

Page 31: 程式設計  Visual Basic 6.0

VB 如何輸出時間? •輸出時間時, VB 也一律採用系統的時間

格式來輸出,同樣會去掉 ##,例如: Print #17:30:50#

PM 05:30:50

時間的輸出也一律使用系統的時間格式 ,並且去掉 ##

Page 32: 程式設計  Visual Basic 6.0

系統的時間格式( 1 ) 同樣是 #17:50:30#,可能有些人的機器輸出了「 17:50:30」,但也可能有些人的機器輸出了「 PM 05:50:30」,這是因為 VB 採用系統的時間格式來輸出資料,而系統的時間格式又可以使用以下方法來進行設定:

Page 33: 程式設計  Visual Basic 6.0

先選取「開始功能表-> -> 設定 控制台」

1

再執行「控制台」的「國別設定」

24

在此設定系統 的時間格式

選擇「時間」頁籤3

出現此一交談窗

以上圖為例,所設定的時間格式為 “以上圖為例,所設定的時間格式為 “ tt hh:mm:ss”tt hh:mm:ss” ,所,所以 以 #17:50:30# #17:50:30# 將會被輸出成「將會被輸出成「 PM 05:50:30PM 05:50:30」。」。(( 註:時間格式中的 “註:時間格式中的 “ tt” tt” 表示以 表示以 AM AM 來表示上午、以 來表示上午、以 PM PM 來表示來表示下午下午 ))

系統的時間格式( 2 )

Page 34: 程式設計  Visual Basic 6.0

時間的注意事項• ‘0 時’ VB 將它表示成 #12:00:00 AM#,而 ‘ 12

時’ 則是 #12:00:00 PM#,所以:

Print #0:30:0#AM 12:30:00 Print #12:00:00#PM 12:00:00

• 時間的表示法中也可以把日期涵蓋進來,例如 #1997/2/28 5:03:00 PM# 即表示 1997年 2月 28 日 , 下午 5點零 3 分。

返回

Page 35: 程式設計  Visual Basic 6.0

布林資料 • 布林資料指的是「真」與「假」的集合,又稱「真假資料」。

• 「真」以 True 表示,「假」以 False 表示。• 布林資料常用來代表一個條件式的成立與否,例如:

? 2 > 1 ' 利用即時運算視窗詢問 VB :「 2 > 1嗎?」True ' VB 回答:「真的」? 2 < 1 ' 再問:「 2 < 1 嗎?」False ' VB 回答:「假的」 返回

Page 36: 程式設計  Visual Basic 6.0

運算子( Operator )• 算術運算子

– ()、 ^、-、* /、 \、 Mod 、+ -• 連結運算子

– &• 比較運算子

– =、<>、<、>、<=、>=• 邏輯運算子

– And Or Not Xor

Page 37: 程式設計  Visual Basic 6.0

字串與字串的串接• 字串與字串的串接就是把兩個字串連接

成為一個新的字串,其運算符號是加號 ‘ +’。例如: First = "Peter"Last = "Wang"Print First + " " + LastPeter Wang

Page 38: 程式設計  Visual Basic 6.0

串接運算的注意事項 • ‘+’ 號用在字串與字串之間叫做「串接運算」,用在數值與數值之間叫做「算術運算」,例如:

? 50 + 20 ? 50 + 20 ' ' 算術運算算術運算 7070? "50" + "20"? "50" + "20" ' ' 串接運算串接運算5020 5020

Page 39: 程式設計  Visual Basic 6.0

各種類型資料的串接 • ‘&’是串接用的運算符號,在 ‘各種類型資料’ 的串接• S1 = "Today is "D = #8/24/97#S2 = S1 & D ' 字串與日期的串接Print S2Today is 1997/8/24

• Print “12345.” & 678 ‘ 字串與數值串接後,直接印出12345.678

• Print 678 & 0.12345 ‘ 數值與數值的串接6780.12345

• X = "VB" + 4.0 ' 錯誤! '+' 號只能用來串接字串與字串 返回

Page 40: 程式設計  Visual Basic 6.0

比較運算 比較 ‘運算符號’ 兩邊的數值後,傳回 True 或 False

比較運算符號 相當於數學上的 使 用 例 = = 1 = 2 傳回 False > > 1 > 2 傳回 False < < 1 < 2 傳回 True

>= 或 => ≧ 1 >= 2傳回 False <= 或 =< ≦ 1 <= 2傳回 True <> 或 >< ≠ 1 <> 2傳回 True

Page 41: 程式設計  Visual Basic 6.0

• Print 1 > 2False

• B = 1 <> 2Print BTrue

比較運算 – 例子

Page 42: 程式設計  Visual Basic 6.0

日期時間的比較( 1 ) • 時間的比較,後面的時間大於前面的時間 :#9:30# 大於 #8:30#

• 但 #12:00:00 AM# 被視為 ‘ 0 時’,而 #12:00:00 PM# 被視為一天的中午 12 時,所以:#12:30:00 PM# 小於 #1:00:00 PM#

• 日期的比較中,後面的日期大於前面的日期:#1997/7/1# 大於 #1997/1/1#

• 00 ~ 99年表示 2000 ~ 2029及 1930 ~ 1999年,所以: #97/1/1# 大於 #1899/12/31#。

Page 43: 程式設計  Visual Basic 6.0

• 同時涵蓋日期及時間的比較中,先比較日期再比較時間,例如:

#97/1/1 0:00:00# 大於 #96/12/31 23:59:59##97/1/1 3:00:00# 大於 #97/1/1 0:00:00#

• 如果一方有日期,一方沒有日期,則將沒有日期那一方的日期視為 #1899/12/30#,例如 #0:00:00# 相當於 #1899/12/30 0:00:00#,所以:

#0:00:00# 大於 #1899/12/29 23:59:59#

• 如果一方有時間,一方沒有時間,則將沒有時間那一方的時間視為 #0:00:00#,所以:

#97/1/1# 小於 #97/1/1 0:0:1#

日期時間的比較( 2 )

Page 44: 程式設計  Visual Basic 6.0

字串的比較

• 比較的依據是字元的字元碼 。• 比較方式是從每個字串的第一個字元開始依次比

較其字元碼,直到比較出大小為止。 • 如果未比較出大小,而某一個字串已先達到最後

一個字元,則長度較小的字串小於長度較大的字串。

B A S I C

B A S I C A

2.若比較不出,再比較長度1.先依序比較字元碼

Page 45: 程式設計  Visual Basic 6.0

知道字元碼的方法• 英文範圍 (0 ~ 127) 內的字元 : 利用即時運算視窗執行

? ASC("字元 ") 。• 中文字 ( 包含兩個 byte): 利用即時運算視窗執行 ? ASC(“中文字” ) + 65536 。

• 例如:? ASC("A") 65 ' 字元 A 的字元碼等於 65? ASC("B") 66 ' 字元 B 的字元碼大於 A? ASC(" 程 ") + 65536 46459 ' 中文字 '程 ' 的字元碼等於 46459

Page 46: 程式設計  Visual Basic 6.0

判斷出字元的大小的規則• 英文字母順序在前者,其字元碼較小,例: "a" < b"。 • 小寫字母 "大於 " 大寫英文字母,例: "a" > "A"。 • 數字 "小於 " 英文字母,例: "2" < "A"。 • 中文字 "大於 " 英文字母,例: "程 " > "a"。  數字字元<英文大寫字母<英文小寫字母<中文字

Print "kg" > "KG" True

Print "COPY" < "COPYRIGHT"

True

Print "ANGEL" < "ANGLE" True

Print "3-ANGEL" > "ANGLE" False

Print "中文 " > "English" True

返回

Page 47: 程式設計  Visual Basic 6.0

邏輯運算 運算符號 使用例 功 能 說 明

Not Not A 反 A 若 A 為 True, 則 Not A 為 False

And A And B A 且 B 只有當 A 及 B 同時為 True 時 , 其結果方為 True, 否則為 False

Or A Or B A 或 B 只要 A 或 B 為 True, 其結果便為 True

Page 48: 程式設計  Visual Basic 6.0

運算子( Operator )• 邏輯運算子

– NOT-相反– AND-二者為真,才為真– OR -其一為真,就為真– XOR -二者相反,才為真

Page 49: 程式設計  Visual Basic 6.0

邏輯運算子 真值表( True Table )

• NOT-相反NOT 0 1

1 0

Page 50: 程式設計  Visual Basic 6.0

邏輯運算子 真值表( True Table )

• AND-二者為真,才為真 AND 0 1

0 0 0

1 0 1

Page 51: 程式設計  Visual Basic 6.0

邏輯運算子 真值表( True Table )

• OR -其一為真,就為真 OR 0 1

0 0 1

1 1 1

Page 52: 程式設計  Visual Basic 6.0

邏輯運算子 真值表( True Table )

• XOR -二者相反,才為真 XOR 0 1

0 0 1

1 1 0

Page 53: 程式設計  Visual Basic 6.0

真值表 :T 代表 True , F 代表 False

A B Not A A And B A Or B

T T F T T

T F F F T

F T T F T

F F T F F

Print True Or FalseTrue

Print 4 > 3 And 1 > 4False

4 > 3 And 1 > 4=True And False=False

Page 54: 程式設計  Visual Basic 6.0

邏輯運算的對象

• Not 2 > 1 Not 是以 2 > 1 這個比較運算式作為運算的對象

• Not 2 > 1 先求比較運算式的結果,= Not True 再進行邏輯運算= False

Not

運算對象

True

運算符號

Page 55: 程式設計  Visual Basic 6.0

綜合運算 -1優先順序

運算符號

1

1

算術運算符號^ (指數運算)

2 - (負數運算) 3 *,/ (乘、除運算 ) 4 \ (整數除法 ) 5 Mod (模數運算 ) 6 +,- (加、減運算 )

Page 56: 程式設計  Visual Basic 6.0

綜合運算 -2優先順序 運算符號2 字串運算符號, + 及 & 的優先順序相

同 3 比較運算符號,其優先順序皆相同

4

邏輯運算符號 1 Not (反 ) 2 And (且 ) 3 Or ( 或 ) 4 Xor (互斥 ) 5 Eqv ( 相等 ) 6 Imp (包含 )

Page 57: 程式設計  Visual Basic 6.0

算術運算 <優先於 > 字串運算 <優先於 > 比較運算 <優先於 > 邏輯運算

所以這個運算式: 20 >= 10 And 3^2 <= 3*2 算術運算,最優先

= 20 >= 10 And 9 <= 6 比較運算,次之= True And False 邏輯運算,最後= False

20 >= 10 And 3̂ 2 <= 3*2

算術運算符號,第1優先

比較運算符號,次之邏輯運算符號,最後處理

Page 58: 程式設計  Visual Basic 6.0

同一運算式中有優先順序相同的運算符號時,則運算順序是自左而右 12 / 3 * 2

= 4 * 2= 8如果我們想改變運算順序,可以使用左右括弧

12 / (3 * 2)= 12 / 6= 2

Page 59: 程式設計  Visual Basic 6.0

作業• 2-35 第六題

Page 60: 程式設計  Visual Basic 6.0

• Private Sub cmdBack_Click()• picSnow.Left = 0• End Sub

• Private Sub cmdStart_Click()• picSnow.Left = picSnow.Left + 200• • End Sub

• Private Sub Form_Load()• picSnow.Left = 0• End Sub

• Private Sub picLightOff_Click()• picLightOff.Visible = False• End Sub

• Rem 事件驅動• Private Sub picLightOn_Click()• picLightOff.Visible = True• End Sub

• Rem 時間驅動• Private Sub tmrLight_Timer()• picLightOff.Visible = Not picLightOff.Visible• End Sub

Page 61: 程式設計  Visual Basic 6.0

訊息窗 (MsgBox) (1)抬頭 訊息內容

回覆按鈕圖示

Page 62: 程式設計  Visual Basic 6.0

訊息窗 (MsgBox) (2)• 抬 頭:通常用來顯示程式名稱,也就是告訴使用者這個訊息窗是哪一個程式顯示出來的。

• 訊息內容:程式想告訴使用者的訊息。• 圖 示:提醒使用者注意的示意圖。• 回覆按鈕:使用者回覆這個訊息的按鈕,如果使用者不按下按鈕,則訊息窗會一直保留在螢幕上。

Page 63: 程式設計  Visual Basic 6.0

• 格式 :MsgBox 訊息內容

• 例子:MsgBox " 使用訊息窗 !"

MsgBox – 最簡單的格式

訊息內容

抬頭及回覆按鈕由 VB 內定

Page 64: 程式設計  Visual Basic 6.0

vbOKCancel

MsgBox -- 設定回覆按鈕(1)

• 格式 :MsgBox 訊息內容 , 回覆按鈕設定值

• 例子:MsgBox " 設定回覆按鈕的訊息窗 !", vbOKCancel

Page 65: 程式設計  Visual Basic 6.0

MsgBox -- 設定回覆按鈕(2)

回覆按鈕設定值 :設定值 設定值之常數符號 回覆按鈕

0 vbOKOnly1 vbOKCancel 2 vbAbortRetryIgno

re

3 vbYesNoCancel

4 vbYesNo 5 vbRetryCancel

Page 66: 程式設計  Visual Basic 6.0

MsgBox -- 設定圖示 (1)• 格式 :MsgBox 訊息內容 , 圖示設定值

• 例子:MsgBox " 設定圖示的訊息窗 !", vbInformation

vbInformation

Page 67: 程式設計  Visual Basic 6.0

MsgBox -- 設定圖示 (2)

設定值 設定值之常數符號 圖示

16 vbCritical

32 vbQuestion

48 vbExclamation

64 vbInformation

圖示設定值

Page 68: 程式設計  Visual Basic 6.0

MsgBox -- 同時設定回覆按鈕及圖示

• MsgBox 訊息內容 , 回覆按鈕設定值 + 圖示設定值• MsgBox "喜歡訊息窗嗎? ", vbYesNo + vbQuestion

vbYesNo

vbQuestion

Page 69: 程式設計  Visual Basic 6.0

MsgBox -- 設定抬頭• 格式一:MsgBox 訊息內容 , 回覆按鈕設定值 + 圖示設定值 , 抬頭

• 格式二:MsgBox 訊息內容 ,, 抬頭

• 例子: MsgBox " 抬頭真好 !",, " 禮義廉恥 "

Page 70: 程式設計  Visual Basic 6.0

MsgBox -- 通用格式

• 其中參數二、三以 [] 括起來,表示這兩個參數是可以省略的 。

• 又參數二含有兩個部份,可以擇一或兩者皆設定之。

MsgBox [, ] [, ]訊息內容 回覆按鈕設定值+圖示設定值 抬頭

參數1 參數2 參數3

Page 71: 程式設計  Visual Basic 6.0

MsgBox -- 顯示多行訊息內容

• 有時候我們想顯示多行的訊息內容,則可在行與行之間插入 Chr(13) 的跳行字元,例如:

跳行字元

MsgBox "這是第一行" + Chr(13) + "這是第二行"

Page 72: 程式設計  Visual Basic 6.0

MsgBox 函數 • 格式: X = MsgBox( 參數串列 )傳回值 X 是由使用者按下哪一個回覆按鈕來決定

按鈕 傳回值 傳回值之常數符號 1 vbOK 2 vbCancel 3 vbAbort 4 vbRetry 5 vbIgnore 6 vbYes 7 vbNo

Page 73: 程式設計  Visual Basic 6.0

MsgBox 函數的例子( 1 )X = MsgBox(" ?", vbYesNo+vbQuestion)喜歡訊息窗嗎

傳回

vbNovbYes

Page 74: 程式設計  Visual Basic 6.0

MsgBox 函數的例子( 2 )X = MsgBox("X = MsgBox(" 星期六一起看場電影好嗎?星期六一起看場電影好嗎? ", ",

vbYesNo + vbQuestion)vbYesNo + vbQuestion)

If X = vbYes ThenIf X = vbYes Then MsgBox " MsgBox " 太好了!太好了! ""ElseElse MsgBox " MsgBox " 啊!啊! ..."..."End IfEnd If

Page 75: 程式設計  Visual Basic 6.0

訊息窗與顯示圖片實例( p.120 )

Page 76: 程式設計  Visual Basic 6.0

訊息窗與顯示圖片實例 -- Step1-1

•表單設計:在表單上佈置好四個命令鈕,並且為表單及命令鈕設定好以下屬性:

Page 77: 程式設計  Visual Basic 6.0

物件 屬性 屬性值Form1 Captio

n 請選擇您想去觀光的國家

Command1

Caption

美國

Style 1 - 圖片外觀 Picture

本書 ch04 目錄的 USA.wmf

Command2

Caption

加拿大

Style 1 - 圖片外觀 Picture

本書 ch04 目錄的 Canada.wmf

Command3

Caption

法國

Style 1 - 圖片外觀 Picture

本書 ch04 目錄的 France.wmf

Command4

Caption

日本

Style 1 - 圖片外觀 Picture

本書 ch04 目錄的 Japan.wmf

訊息窗與顯示圖片實例 -- Step1-2

Page 78: 程式設計  Visual Basic 6.0

• 程式設計:分別在Command1 、 Command2 、 Command3 、及Command4 命令鈕之中撰寫以下程式:

訊息窗與顯示圖片實例 – Step2-1

Private Sub Private Sub Command1Command1_Click() _Click() ' ' 「美國」命令鈕「美國」命令鈕 MsgBox "MsgBox " 您想去觀光的國家是您想去觀光的國家是 : " + : " + Command1Command1.Caption, vbInformation.Caption, vbInformation Set Form1.Picture = Set Form1.Picture = Command1Command1.Picture.PictureEnd SubEnd Sub

Private Sub Private Sub Command2Command2_Click() _Click() ' ' 「加拿大」命令鈕「加拿大」命令鈕 MsgBox "MsgBox " 您想去觀光的國家是您想去觀光的國家是 : " + : " + Command2Command2.Caption, vbInformation.Caption, vbInformation Set Form1.Picture = Set Form1.Picture = Command2Command2.Picture.PictureEnd SubEnd Sub

Page 79: 程式設計  Visual Basic 6.0

訊息窗與顯示圖片實例 – Step2-2

Private Sub Private Sub Command3Command3_Click() _Click() ' ' 「法國」命令鈕「法國」命令鈕 MsgBox "MsgBox "您想去觀光的國家是您想去觀光的國家是 : " + : " + Command3Command3.Caption, vbInfo.Caption, vbInformationrmation Set Form1.Picture = Set Form1.Picture = Command3Command3.Picture.PictureEnd SubEnd Sub

Private Sub Private Sub Command4Command4_Click() _Click() ' ' 「日本」命令鈕「日本」命令鈕 MsgBox "MsgBox "您想去觀光的國家是您想去觀光的國家是 : " + Command4.Caption, vbInfor: " + Command4.Caption, vbInformationmation Set Form1.Picture = Set Form1.Picture = Command4Command4.Picture.PictureEnd SubEnd Sub

Page 80: 程式設計  Visual Basic 6.0

輸入窗 (InputBox)

X = InputBox( 提示訊息 [, 抬頭] [, 輸入欄預設值 ] )

提示訊息抬頭

輸入欄

輸入確認鈕

輸入取消鈕

Page 81: 程式設計  Visual Basic 6.0

X=InputBox(" "," ","175")請輸入身高 計算標準體重

修改輸入欄的內容後,按 確定鈕即傳回輸入欄的內容,但如果按 取消鈕,則傳回空字串。

輸入窗 (InputBox) 的例子

X = InputBox( "請輸入身高 " ) ' 省略後面兩個參數X = InputBox( "請輸入身高 ",, "175" ) ' 省略抬頭X = InputBox( "請輸入身高 ", " 計算標準體重 " ) ' 省略輸入欄預設值

Page 82: 程式設計  Visual Basic 6.0

使用 InputBox 的注意事項 • InputBox 的傳回值是字串,當我們利用它來輸入數值資料時,要特別注意資料運算的問題 。

• 正確的方法如下:A = InputBox("請輸入 A 值 ") B = InputBox("請輸入 B 值 ")A = Val(A) ' 將 A 轉換成數值資料,再指定給 AB = Val(B) ' 將 B 轉換成數值資料,再指定給 BC = A + B

Page 83: 程式設計  Visual Basic 6.0

輸入窗實例( p.126 ) 寫一程式讓使用者輸「國文」、「數學」、及「英寫一程式讓使用者輸「國文」、「數學」、及「英文」成績,然後計算其平均分數。文」成績,然後計算其平均分數。

Page 84: 程式設計  Visual Basic 6.0

輸入窗實例 -- Step 1

•在表單上佈置好 Command1 命令鈕,並且將其 Caption 屬性設定成 “計算平均分數”。

Page 85: 程式設計  Visual Basic 6.0

輸入窗實例 -- Step 2在 Command1 之中撰寫以下程式:

Private Sub Command1_Click() A = Val(InputBox("請輸入 [數學 ]成績 ")) B = Val(InputBox("請輸入 [英文 ]成績 ")) C = Val(InputBox("請輸入 [國文 ]成績 ")) Print "平均分數 ="; (A + B + C) / 3End Sub

Page 86: 程式設計  Visual Basic 6.0

• 在以上程式中,輸入成績的敘述被寫成比較精簡的格式,如下:

A = Val(InputBox(“請輸入 [數學 ]成績” ))

它的作用相當於以下兩個敘述: A = InputBox("請輸入 [數學 ]成績 ")

A = Val(A)

輸入窗實例 -- Step 2 說明