860 likes | 1.06k Views
程式設計 Visual Basic 6.0. 許翠婷 E-mail : tsuiting@scu.edu.tw. 圖片盒 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. 圖檔格式.
E N D
程式設計 Visual Basic 6.0 許翠婷 E-mail : tsuiting@scu.edu.tw
圖片盒 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
圖檔格式 • .bmp(Windows Bitmap)-BMP圖檔格式是以Bit-Mapped方式所組成的圖形檔案 ,未壓縮。 • .gif(Graphics Interchange Format)-非破壞性壓縮(lossless)、失彩度。工程設計圖、素描圖 • .jpeg(Joint Photographic Experts Group )-破壞性壓縮(lossful)、失解析度。風景圖 • .wmf(Windows Meta File)-繪圖指令。 • .ico • .dib \Program Files\Microsoft Visual Studio\Common
圖片盒 (Picture Box)v.s. 影像工具(Image) • pic v.s. img • PictureBox功能強,就好像被布置表單上的[表單],可使用Line、Cirlce等表單的繪圖方法,這些繪圖方法除了可以在表單上面繪圖之外,也可以使用於 PictureBox,在 PictureBox 之中繪圖,但 Image 卻不具備繪圖的功能。 • 相對的,PictureBox 很浪費系統資源,如果只是為了顯示圖片,使用Image 比較好,若需要額外繪圖,則使用 PictureBox • 屬性 • top、left • width、height • Visible。
物件的垂直順序 • 先建的物件,置於較下層(ob1) • 後件的物件,置於較上層(ob2) • 當物件重疊放置,visible 屬性均為true時,僅顯示最上層物件(ob2) • 若欲看見下層之物件,需將其上層物件(ob2) visible 屬性設為 false
敘述、識別項 • 何謂敘述(Statement)? • 最小可執行單元 • 組成:識別項、保留字、特殊符號、運算式、常值 • 識別項(identifier)的命名規則 • 第一個字為字母(A-Z或中文)、第二個字以後可為字母、數字或底線_ • <=255 個字元 • 不可為保留字 • 大小寫視為相同 e.g. 正確:y5、x、st_2、名次 錯誤:5y、x.0、st-2、sub
保留字 • 保留字(reserve word)、關鍵字(keyword) • if、print、for等 • 特徵 • 自動以藍色顯示 • 自動首字母由小寫轉大寫 • 例外:sum、avg
註解、敘述分隔符號、敘述連接符號 • 註解 • ‘-接於敘述之後 • REM-獨立一行 • 敘述(statement)分隔符號 • : • 敘述(statement)連接符號 • Space + underline _
Timer • 事件驅動 v.s. 時間驅動 • 時間驅動:(固定每隔多少時間執行一次物件上所定義之事件程序) • 事件驅動 :(當發生某個事件時,執行一次物件上所定義之事件程序) • tmr • 屬性 • Interval • 0 關閉 timer • 1000 一秒
作業三 • 設計一個每秒鐘上下跳動的物件,上置開始與停止按鈕。
運算式 • 一般運算式 變數名稱 = 運算元運算子 運算元 【運算子 運算元】 Y= 2+3*(5-2) • 比較運算式 變數名稱 比較運算子 變數或值或運算式 Y>x y>1 y>(1+2)
運算式 • 邏輯運算式 比較運算式 邏輯運算子 比較運算式 y>1 or y<(1+2)
運算元(operand) • 數字系統 • 十進位 10 • 八進位 &O &O12 • 十六進位 &H &HA • Operand Operator Operand • 5 + 3
資料的表示法 • 數值資料 —整數、實數、科學記號 • 字串資料 • 日期、時間資料 • 布林資料
整數 • 十進位的表示法:逗號是不能使用的,如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
Hex 及 Oct 函數 • 開啟即時運算視窗 • Print 指令 • 範例 Print Hex(100)64Print Oct(100)144 返回
實數 • 小數方面,VB的表示法也跟數學完全相同,如3.14159、0.0016、-8000.5等均為正確的寫法。 • VB並沒有分數的表示法,不過我們可以用除號 ‘/’把分數的意義表達出來,例如把 寫成1/3 返回
實數 -- 浮點數表示法 科學記號中的「有效數字」及「指數」 例如:
實數 -- 科學記號 • 一般科學記號表示法 • 說明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 * 代表乘號, ^ 代表次方符號。 返回
字串資料 • 以 “” 括起來的文數字都算是字串,如: "RUN!PC""Address #83""1998""12+75=?""資訊月刊" Print "RUNRUN!PC" ' 放到記憶體時, 兩邊的雙引號會被去掉, RUNRUN!PC ' 所以輸出時也就沒有雙引號了。 返回
日期時間資料 • 必須用 ## 括起來 • #9:30# 表示上午9點30分 • #1997/12/31# 表示1997年12月31日 • 輸出時,VB一律使用「系統的日期格式」,並且去掉 ## 再輸出,例如: • Print #28 Feb 1998# 1998/2/28
標準的日期表示法 • 標準的日期表示法是 #西元年/月/日#,例如: #1997/7/1# 表示 西元 1997 年 7 月 1 日#2005/12/31# 表示 西元 2005 年 12 月 31 日 • 西元年從1930到2029可以簡寫成30到99及00到29: #89/7/1# 等於 #1989/7/1#
非標準的日期表示法 • 如果不是標準日期表示法,VB 也會做智慧的判斷,例如以下的寫法都表示 #1997/2/28#(1997年2月28日): #2 28 97##97 2 28##28 Feb 1997##February 28, 1997#
系統的日期格式(1) • 同樣是 #1998/2/28#,可能有些人的機器輸出了「1998/2/28」,但也可能有些人的機器輸出了「2/28/1998」,這是因為VB 採用系統的日期格式來輸出資料,而系統的日期格式又可以使用以下方法來進行設定:
系統的日期格式(2) 以上圖為例,所設定的日期格式為 "MM/dd/yyyy", 所以 #1998/2/28# 將會被輸出成「02/28/1998」。
錯誤的日期表示法 • 不存在的日期及中文日期,VB 是不接受的,所以: • #1997/13/29# 錯誤, 月份 13 超過範圍#1997/2/29# 錯誤, 1997年不是閏年,2月只有 28天#1997 年 7 月 1 日# 錯誤,中文日期 返回
標準的時間表示法 • 標準的時間表示法是 #時:分:秒AM# 及 #時:分:秒PM#, 其中 AM 表示上午,PM 表示下午 • #9:30:00 AM# 表示 上午 9 點 30 分#7:55:30 PM# 表示 下午 7 點 55 分30 秒
非標準的時間表示法 • 如果不是上述的標準時間表示法,VB 也會做智慧的判斷,例如: • #9 A# 等於 #9:00:00 AM##17:3# 等於 #5:03:00 PM#
錯誤的時間表示法 • 輸入時間時,有效的時分秒分別是:時:0~23、分秒:0~59,所以下面的表示法是錯誤的: • #24:00:00# 錯誤, '時' 超過 23#17:60:00# 錯誤, '分' 超過 59#12:00:-1# 錯誤, '秒' 是負數
VB 如何輸出時間? • 輸出時間時,VB 也一律採用系統的時間格式來輸出,同樣會去掉 ##,例如: Print #17:30:50#PM 05:30:50 時間的輸出也一律使用系統的時間格式,並且去掉##
系統的時間格式(1) 同樣是 #17:50:30#,可能有些人的機器輸出了「17:50:30」,但也可能有些人的機器輸出了「PM 05:50:30」,這是因為 VB 採用系統的時間格式來輸出資料,而系統的時間格式又可以使用以下方法來進行設定:
系統的時間格式(2) 以上圖為例,所設定的時間格式為 “tt hh:mm:ss”,所以 #17:50:30# 將會被輸出成「PM 05:50:30」。 (註:時間格式中的 “tt”表示以 AM 來表示上午、以 PM 來表示下午)
時間的注意事項 • ‘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分。 返回
布林資料 • 布林資料指的是「真」與「假」的集合,又稱「真假資料」。 • 「真」以 True 表示,「假」以 False 表示。 • 布林資料常用來代表一個條件式的成立與否,例如: ? 2 > 1 ' 利用即時運算視窗詢問 VB:「2 > 1嗎?」True ' VB 回答:「真的」? 2 < 1 ' 再問:「2 < 1 嗎?」False ' VB 回答:「假的」 返回
運算子(Operator) • 算術運算子 • ()、^、-、* /、\、Mod、+ - • 連結運算子 • & • 比較運算子 • =、<>、<、>、<=、>= • 邏輯運算子 • And Or Not Xor
字串與字串的串接 • 字串與字串的串接就是把兩個字串連接成為一個新的字串,其運算符號是加號 ‘+’。例如: First = "Peter"Last = "Wang"Print First + " " + LastPeter Wang
串接運算的注意事項 • ‘+’號用在字串與字串之間叫做「串接運算」,用在數值與數值之間叫做「算術運算」,例如: ? 50 + 20 ' 算術運算70? "50" + "20" ' 串接運算5020
各種類型資料的串接 • ‘&’是串接用的運算符號,在 ‘各種類型資料’ 的串接 • 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 ' 錯誤!'+' 號只能用來串接字串與字串 返回
比較運算 比較 ‘運算符號’ 兩邊的數值後,傳回 True 或 False
比較運算 –例子 • Print 1 > 2False • B = 1 <> 2Print BTrue
日期時間的比較(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#。
日期時間的比較(2) • 同時涵蓋日期及時間的比較中,先比較日期再比較時間,例如: #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#
字串的比較 • 比較的依據是字元的字元碼 。 • 比較方式是從每個字串的第一個字元開始依次比較其字元碼,直到比較出大小為止。 • 如果未比較出大小,而某一個字串已先達到最後一個字元,則長度較小的字串小於長度較大的字串。
知道字元碼的方法 • 英文範圍(0~127)內的字元:利用即時運算視窗執行 ? ASC("字元")。 • 中文字(包含兩個 byte):利用即時運算視窗執行 ? ASC(“中文字”) + 65536。 • 例如: ? ASC("A") 65 ' 字元 A 的字元碼等於 65? ASC("B") 66 ' 字元 B 的字元碼大於 A? ASC("程") + 65536 46459 ' 中文字 '程' 的字元碼等於46459
判斷出字元的大小的規則 • 英文字母順序在前者,其字元碼較小,例:"a" < b"。 • 小寫字母 "大於" 大寫英文字母,例:"a" > "A"。 • 數字 "小於" 英文字母,例:"2" < "A"。 • 中文字 "大於" 英文字母,例:"程" > "a"。 數字字元<英文大寫字母<英文小寫字母<中文字 返回
運算子(Operator) • 邏輯運算子 • NOT-相反 • AND-二者為真,才為真 • OR-其一為真,就為真 • XOR-二者相反,才為真
邏輯運算子 真值表(True Table) • NOT-相反
邏輯運算子 真值表(True Table) • AND-二者為真,才為真