1 / 61

計算機程式

計算機程式. 廖文淵 Department of Computer Science and Engineering De-Lin Institute of Technology andres@dlit.edu.tw. 第四章 表單與基本輸出入. 4-1 表單 外觀 進入整合開發環境後,它就已經預先開啟了一個空白的表單 --Form1. Icon. Caption. Height. Appearance. BorderStyle. Width. 屬性值. 說 明. 0. 沒有框線. 1. 單線固定. 2. 大小可調整 ( 預設值 ).

nariko
Télécharger la présentation

計算機程式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 計算機程式 廖文淵 Department of Computer Science and Engineering De-Lin Institute of Technology andres@dlit.edu.tw

  2. 第四章 表單與基本輸出入 • 4-1表單 • 外觀 • 進入整合開發環境後,它就已經預先開啟了一個空白的表單--Form1 Icon Caption Height Appearance BorderStyle Width

  3. 屬性值 說 明 0 沒有框線 1 單線固定 2 大小可調整(預設值) 3 雙線固定對話方塊 4 單線固定工具視窗 5 可調整工具視窗 • 常用的表單屬性 • 整體外觀 • Appearance:表單的顯示方式: • 0表平面顯示 • 1表立體顯示(預設值) • BorderStyle:表單的框線格式: 控制功能表不見了

  4. Caption:這是表單的標題屬性,也就是在表單上方所顯示的字串。Caption:這是表單的標題屬性,也就是在表單上方所顯示的字串。 這是「標題」(Caption屬性) 這也是「標題」(Caption屬性)

  5. 表單的顏色或背景背景 • BackColor:表單的背景顏色。 • 按一下Backcolor屬性值右邊向下的箭頭,會看到以下的兩頁畫面: • 調色盤:指定表單的顏色,不論外在環境如何改變,一定都會按照設計者所指定的顏色來呈現。 • 系統配色:使用目前環境下各種物件的顏色。這些顏色可以在「控制台/顯示器/外觀」中來設定。

  6. ForeColor:這是指表單的前景顏色。 • 例如:表單上所顯示字串的顏色就是ForeColor(藍色),表單的底色就是BackColor(白色)。 • Picture:設定表單是否要以張圖片作為它的背景。 • 在Picture屬性欄右邊按鈕[…]處click,選取您喜愛的圖片,將圖加入表單中。

  7. 表單控制功能表 • ControlBox:預設值是True。False時,表單在執行時不會出現表單控制功能表(或稱為:系統功能表),也不會出現MaxButton及MinButton。 • MaxButton:按下「放到最大」,這個表單會放大到螢幕的最大界限。預設值是True。 • MinButton:按下它,這個表單會變為最小化的狀態。預設值是True,也就是表單會出現MinButton。 • 這幾個屬性跟BorderStyle有關係,例如將BorderStyle設為”1-固定單線”,則MinButton及MaxButton屬性值會自動變成False。 按下這個小圖示,開啟控制功能表 MinButton MaxButton 表單控制功能表

  8. 修改表單屬性實作 • 範例: • 開始執行時的畫面如下圖所示 • 注意表單背景、右上角的小圖示、左上角的關閉鈕等特徵。 • 用滑鼠在表單上Click,每Click一下,表單上就會列印出現在的系統日期及時間

  9. 屬性欄 屬性值 Name FormTest BorderStyle 1-單線固定 Caption 表單測試 ForeColor &H0000FFFF&(黃色) Icon program files\Microsoft Visual Studio\Common\Graphics\Icons\Computer\pc4.ico Picture EX4-2\Lake.jpg Width 4575 Height 3330 • 說明: • 以下是這個唯一的表單物件相關的屬性設定值 • 用滑鼠在表單上Click時,要顯示現在的系統日期及時間,因此我們必須在Form的Click事件程序中撰寫將現在日期及時間顯示在表單上的程式碼 • 將這個表單的BorderStyle設定為”1-單線固定”,因此在表單的右上角不會出現最大化及最小化按鈕 • 如果要結束程式,請用滑鼠按下在右上方的關閉鈕

  10. 步驟: • 設定專案名稱 • 在專案總管中以滑鼠點選專案名稱(預設為Project1) • 在屬性視窗中找到Name屬性欄,並將其值設為TestProject A、 選擇專案總管 中的專案名稱 B、修改專案的 Name屬性

  11. 設定表單上的屬性 • 設定表單名稱 i. 請在專案總管上選擇表單(預設為Form1) ii. 找到在屬性視窗中的Name屬性,並將其值設 為FormTest • 設定表單的BorderStyle屬性為:1-單線固定 • 設定表單標題文字:請在屬性視窗中找到Caption屬性欄,並將其值設為:表單測試 A、修改表單的Name屬性 B、修改表單的BorderStyle屬性 C、修改Caption屬性

  12. 設定表單的ForeColor i. 找到屬性視窗中的ForeColor屬性,並按下右 邊的[▼]按鈕。 ii. 按下按鈕之後,會出現兩頁選擇顏色的表 格;請在”調色盤”頁籤上選擇黃色。 i、按下ForeColor右邊的[▼]按鈕 ii、選擇”調色盤”頁籤的黃色色塊

  13. 設定圖示(Icon) i. 找到Icon屬性欄,並按下右邊的[…]按鈕 ii. 在”載入圖示”對話方塊上面找到:program files\Microsoft Visual Studio\Common\Graphics\Icons\Computer\pc4.ico這個檔案,然後按下[開啟舊檔(O)]按鈕。 i、按下Icon右邊的[…]按鈕 ii、找到所需的.ICO檔案 iii、按下開啟舊檔(O)按鈕

  14. 設定背景圖(Picture) i. 找到Picture屬性欄,並按下右邊的[…]按鈕 ii. 請在”載入圖片”對話方塊上,找到附書光碟 中第四章EX4-2目錄下的Lake.JPG圖檔,並按 下[開啟舊檔(O)]按鈕 i、按下Picture右邊的[…]按鈕 ii、找到所需的圖檔 iii、按下[開啟舊檔(O)]按鈕

  15. 設定表單的寬、高 • 在屬性視窗中找到Width屬性,將其值設定為4575 • 找到Height屬性,設定為3330 3330 4575

  16. 撰寫事件程序碼 • 在表單上以滑鼠Double-click,開啟程式碼視窗 在表單上Double-click就可以開啟程式碼視窗

  17. 在程式碼視窗上選擇Form_Click事件程序 找到Form物件的Click事件程序 • 填入程式碼

  18. 按下鍵盤上的[F5]按鈕開始執行 以滑鼠在視窗上click • 試著以滑鼠在視窗背景圖上Click,每Click一下應該顯示一次系統日期及時間 每Click一下就會顯示一次系統日期及時間

  19. 順序 事件程序 1 Form_Initialize 2 Form_Load 3 Form_Resize 4 Form_Activate 5 Form_Gotfocus 6 Form_Paint • 表單常用的事件程序 當表單顯示在螢幕上時,它所觸發事件程序如下表所示。其中比較常用的只有兩個: • Form_Load • Form_Activate

  20. Form_Load事件程序 • Form_Load事件會發生在程式被載入記憶體後、尚未顯示在螢幕前 • 通常會在Form_Load事件程序中做模組等級的變數或物件初始值設定工作 • 除非表單的AutoRedraw=True,否則在Form_Load中輸出(例如:Print)的資料將無法正確顯示 • Form_Activate事件程序 • Form_Active事件發生在一個視窗變成Active(現用視窗)時 • 如果只為了測試的目的,可以將Print方法寫在這個事件程序中 • 一般視窗程式很少直接將結果輸出至表單上。如果結果是以文字方式呈現,則多半會輸出至標籤(Label)控制項上;如果是圖形,則會輸出至影像(Image)或圖形(Picture)控制項上

  21. 4-2命令鈕(Command Button) • 放置命令鈕 • 在代表命令鈕的圖示上Double-click • 或以拖放(Drag-and-Drop)的方式 在表單中的命令鈕 在工具箱中的命令鈕圖示

  22. 命令鈕常用的屬性 • Caption:按鈕上的文字 • Cancel: • 命令鈕的Cancel屬性為True時,在表單處於作用中(Active)的狀態下,按下鍵盤上的[ESC]就會執行其click事件程序 • 在同一個表單中,只能有一個命令鈕的Cancel屬性可以被設為True • Default: • 命令鈕的Default屬性為True時,在表單處於作用中(Active)的狀態下,而且表單上沒有其他命令鈕獲得輸入焦點(Focus,或稱為駐點),按[Enter]鍵就會執行其Click事件程序 • 在同一個表單上只能有一個命令鈕的Default屬性被設定為True。 • Enabled:預設值為True。當這個屬性設定為False時,命令鈕會以淡色(或模糊)的方式來顯示,此時命令鈕不能接受使用者以滑鼠或是鍵盤輸入訊息

  23. 命令鈕實作 • 範例 • 表單上有兩個命令鈕,上面的文字分別寫著[顯示(D)]及[結束(X)],如下圖所示 • 滑鼠移動到按鈕上時,按鈕都會顯示出簡單的”提示”

  24. 以滑鼠按下[顯示(D)]按鈕時,表單上會顯示出”按下命令鈕”以滑鼠按下[顯示(D)]按鈕時,表單上會顯示出”按下命令鈕” • 以滑鼠按下[結束(X)]按鈕,或者按下鍵盤上的[ESC],程式及結束執行 按下[顯示(D)],將字串顯示於表單上 按下[結束(X)],或鍵盤上的[ESC],則結束程式執行

  25. 說明 • 表單中放置了兩個命令鈕,分別為cmdDisplay及cmdEnd。 • 用滑鼠在命令鈕上Click時,表單上要顯示出字串;因此必須在cmdDisplay的Click事件程序中撰寫顯示字串在表單上的程式碼—print “按下命令鈕”。 • 要結束程式,用滑鼠在命令鈕cmdEnd上Click,或是按下鍵盤的[ESC]按鍵。換句話說,要在cmdEnd_Click事件程序中填入End敘述,而且要把cmdEnd的Cancel屬性設為True。 • 為了能讓命令鈕顯示出提示(Hint)方塊,因此必須在兩個命令鈕的ToolTipText中填入適當的字串。

  26. 步驟 • 先在表單上放置兩個命令鈕 cmdDisplay cmdEnd

  27. 屬性欄 屬性欄 屬性欄 屬性值 屬性值 屬性值 Name Name Name frmButtonTest cmdDisplay cmdEnd Caption Caption BorderStyle 1-單線固定 結束(&X) 顯示(&D) Default Cancel True True Caption 命令鈕測試 ToolTipText ToolTipText 結束程式執行 在表單上顯示字串 • 以下是表單及命令鈕物件相關的屬性設定值 表單Form1 • 命令鈕cmdDisplay • 命令鈕cmdEnd

  28. 請分別在cmdDisplay及cmdEnd的click事件程序中填入程式碼:請分別在cmdDisplay及cmdEnd的click事件程序中填入程式碼: Private Sub cmdDisplay_Click() Print "按下命令鈕" End Sub Private Sub cmdEnd_Click() End End Sub • 完成後,按下[F5]測試執行

  29. 命令鈕常用的事件程序 • Click事件程序當然是最主要的 • GotFocus事件程序 • 輸入焦點轉移到某一個控制項時,該控制項的GotFocus事件程序就會被引發 • 如果在Form上有任何可見的(Visible=True)控制項,那麼Form的GotFocus事件程序就不會被引發 • LostFocus事件程序 • 將輸入焦點轉移到某一個控制項上時,原來擁有輸入焦點的控制項就會引發LostFocus事件程序

  30. 命令鈕常用的方法 • SetFocus方法 • 語法:ObjectName.SetFocus • 命令鈕經過SetFocus方法後,即可取得輸入的焦點(Focus),也就是說使用者按[Space]鍵,將會執行這個命令鈕的Click事件程序

  31. 特別說明 Visual Basic的基本敘述 • End敘述 • 在Visual Basic程式中專門用來結束程式執行,幾乎所有Visual Basic程式都會有它的存在。 • 註解 • 註解是專門給人看的,以方便日後修改及維護。 • 在Visual Basic中,註解必須以Rem或 ’開頭,其後跟隨任何文字,例如:Rem 這是一列註解文字‘ 這是另一列註解文字 • 其中Rem必須放在每一列開始的地方,而’可以放在程式的任何地方

  32. 符 號 作 用 + 加法運算 - 減法運算 表示負數 * 乘法運算 / 除法運算 \ 整數除法運算 mod 產生除法運算後的餘數 ^ 次方運算 • 4-3運算式 • 算術運算子(Arithmetic Operator)

  33. 執行後的結果 • 字串運算子 • +、&運算子 • “+”與“&”為連接字串的運算子,功能完全一樣s1 = “This is”+“ a Test”‘結果為“This is a Test“s2 = ”學貫”&“行銷公司”’結果為“學貫行銷公司” • 固定長度字串變數並不太適合用來作字串連接運算 • 建議儘可能用“&”作為字串連接符號

  34. 格 式 樣版字串 結果為True的被搜尋字串 意 義 結果為False的被搜尋字串 ? 忽略單一字元 m*j "mj"、"msj"、"mmxj"、"mMJj" "mm"、"mjm" * 忽略零到多個字元 Xbook* "Xbook Corp."、"Xbook" "學貫(Xbook)" # 忽略單一阿拉伯數字字元 s?t "sat"、"sit" "seat"、"st"、”shit” [字元] 是否含有中刮號中列舉的字元 No.## "No.01"、"No.99" "No.1"、"No.a1" [!字元] 是否不含中刮號中列舉的字元 [ABC] "A"、"B"、"C" "a"、"b"、"D" [!ABC] "D"、"a"、"b" "A"、"B"、"C" • Like運算子 • Like是作為字串比較的運算子,比對字串時可以用萬用字元(Wild Card)來做為比對的樣版 • 格式 • 被搜尋的字串 Like樣版(Partten)字串

  35. [A-Z] 表示大寫字母A到Z的區間 [A-Z0-9] 表示大寫字母A到Z,以及阿拉伯數字0到9的區間 • 如果必須在樣版字串中表示一到多個連續的區間,則可以用下列的表示法 • 樣版字串中的特殊字元(例如:“[”、“?”、“#”、“*”),必須用中括號將其框住,例如:b = "A*B=C" Like "?[*]?=?" '結果為True

  36. 運算式實作 • 範例 • 計算下列式子的X值 • 以Visual Basic的語法寫出根公式,即可將結果算出 • 下面的就是利用根公式將X算出來的畫面 按下關閉鈕可以關閉視窗、結束程式執行

  37. 說明 • 表單中並不需要放置任何的控制項,只要將運算結果在Form_Activate事件程序中、以Print方法輸出即可。 • 運算結果會因覆蓋等原因被消去,可將表單的AutoRedraw屬性設為True來避免。 • 要結束程式執行,以滑鼠在表單右上方的關閉鈕上Click即可,不需要另外撰寫程式。

  38. 步驟 • 進入Visual Basic整合開發環境後,直接在表單上Double-click,開啟程式碼視窗 • 拉下右邊的下拉式清單方塊,選擇Activate事件程序

  39. 在Form_Activate事件程序中填入以下的程式碼 Private Sub Form_Activate() Dim a As Integer, b As Integer, c As Integer Print "當X^2+X-6=0,X=?“ a = 1 b = 1 c = -6 Print "X= " & (-b + (b ^ 2 - 4 * a * c) ^ 0.5) / (2 * a) Print "X= " & (-b - (b ^ 2 - 4 * a * c) ^ 0.5) / (2 * a) End Sub

  40. 4-4座標系統 • CurrentX、CurrentY屬性欄 • Form的座標系統是以左上角為原點(0,0) • 越往右邊則CurrentX值越大,越往下方CurrentY值越大 工作區的左上角為原點(0,0) 越往右CurrentX值遞大 越往下CurrentY值越大

  41. 程式一開始執行時,CurrentX及CurrentY的值是(0,0) • 以Print等方法將資料列印在螢幕上後,CurrentX及CurrentY的值就會隨之改變,紀錄著下次要輸出資料的位置 • CurrentX及CurrentY在設計階段並不會出現在屬性視窗中,但是可以在執行時讀取或設定

  42. 特別說明 Cls方法 • Form上提供了另一個清除已輸出資料的方法—Cls • 呼叫Cls之後,會將Form上的資料清除乾淨,然後將CurrentX及CurrentY重新移回原點(0,0)

  43. 指訂座標輸出實作 • 範例 • 在表單上輸出兩個字串,先在表單中間輸出一個,再回到表單原點輸出另一個字串,如下圖所示 2.再回到(0,0)的地方輸出一個字串 1.先在(500,500)的地方輸出一個字串

  44. 說明 • 先在座標(500,500)的地方顯示一個字串”目前座標起點(500,500)” • 再將CurrentX及CurrentY移回原點(0,0),輸出另一個字串”目前座標起點(0,0)“

  45. 步驟 • 進入Visual Basic整合開發環境後,直接在表單上Double-click,開啟程式碼視窗 • 拉下右邊的下拉式清單方塊,選擇Activate事件程序 • 在Form_Activate事件程序中填入以下的程式碼Private Sub Form_Activate() CurrentX = 500 : CurrentY = 500 Print “目前座標起點(500,500)” CurrentX = 0 : CurrentY = 0 Print “目前座標起點(0,0)”End Sub

  46. 座標單位 • TWIP • CurrentX與CurrentY在預設是以TWIP為單位 • TWIP是一個邏輯單位,每一個TWIP相當於1/1440英吋(1/567公分) • 使用邏輯單位的好處是可以降低硬體的影響--裝置獨立(Device Indepandance) • POINT • 一個POINT相當於20個TWIP,也就是1/72英吋 • 字型(Font)大小的單位就是Point • TWIP與Pixel間的轉換 • Screen物件中的TwipsPerPixelX及TwipsPerPixelY屬性欄記錄著這Pixel實體單位與Twip邏輯單位的對應關係 • Printer物件中也有TwipsPerPixelX與TwipsPerPixelsY兩個屬性欄

  47. ScaleMode 值 所代表的座標系統單位 0 使用者自訂 1 Twip 2 點(Point) = 20Twips 3 像素(Pixel) 4 字元(Character) 5 英吋(Inch) = 72Points = 1440Twips 6 公釐(Millimeter) 7 公分(Centimeter) = 567Twips • 改變 • 透過ScaleMode屬性欄來修改座標系統 • 當ScaleMode=0,且設定ScaleHeight = 100表示將目前表單工作區(Client Area)的橫座標切割成100等分,以一個等分當作一個單位。 同樣的,ScaleWidth就是關於縱座標方面的設定

  48. 4-5選擇字型 • 選擇字型:FontName屬性欄 • 只要在FontName屬性欄中填入字型的名稱,就會採用該字型來輸出 • 範例 • 在表單以三種不同的中文字型字串,如下圖所示

  49. 說明 • 用三種不同字型,將同一字串在Form_Activate事件程序中,以Print方法列印出來 • 步驟 • 在表單上Double-click,開啟程式碼視窗 • 拉下右邊的下拉式清單方塊,選擇Activate事件程序 • 在Form_Activate事件程序中填入以下的程式碼Private Sub Form_Activate() Dim sTest As String sTest = “中文字形示範”FontName = “新細明體”Print sTest FontName = “標楷體”Print sTest FontName = “細明體”Print sTest End Sub

  50. 字型的大小:FontSize屬性欄 • FontSize屬性欄控制輸出字型的大小,字型大小是以Point為單位 • FontSize屬性欄中,最大可以設到2048 Points 字型大小

More Related