第2章 建立Visual Basic應用程式 2-1 如何設計Visual Basic應用程式 2-2 建立主控台應用程式 2-3 建立Windows應用程式 2-4 Visual Basic應用程式架構 2-5 Visual Basic語言的寫作風格 2-6 表單與程式碼編輯器的使用 2-7 在Windows執行應用程式 2-8 列印程式碼
2-1 如何設計Visual Basic應用程式 2-1-1 程式設計的基礎 2-1-2 演算法 2-1-3 使用Visual Basic開發應用程式
2-1-1 程式設計的基礎-說明 程式設計是將需要解決的問題轉換成程式碼,程式碼不只能夠在電腦上正確的執行,而且可以驗證程式執行的正確性。基本上,程式設計的主要過程可以分成五個階段,如下圖所示:
2-1-1 程式設計的基礎-需求 需求(Requirements) 程式設計的需求是在了解問題本身,以確切獲得程式需要輸入的資料和其預期產生的結果,如下圖所示:
2-1-1 程式設計的基礎-設計 設計(Design) 在了解程式設計的需求後,我們就可以開始找尋解決問題的方法和策略,簡單的說,設計階段是找出解決問題的步驟,如下圖所示:
2-1-1 程式設計的基礎-分析 分析(Analysis) 在解決需求時只有一種解決方法嗎?例如:如果有100個變數,我們可以宣告100個變數儲存資料,或是使用第8章的陣列(一種資料結構)來儲存。 分析階段是將所有可能解決問題的演算法都寫下來,然後分析比較哪一種方法比較好,選擇最好的演算法來撰寫程式。
2-1-1 程式設計的基礎-撰寫程式碼 撰寫程式碼(Coding) 現在我們就可以開始使用程式語言撰寫程式碼,以本書為例是使用Visual Basic 2005語言。 在實際撰寫程式時,可能發現另一種方法比較好,因為設計歸設計,有時在實際撰寫程式時才會發現其優劣,如果是良好的設計方法,就算改為其他方法也不會太困難。
2-1-1 程式設計的基礎-驗證 驗證(Verification) 驗證是證明程式執行的結果符合需求的輸出資料,在這個階段可以再細分成三個小階段,如下所示: 證明:執行程式時需要證明它的執行結果是正確的,程式符合所有輸入資料的組合,程式規格也都符合演算法的需求。 測試:程式需要測試各種可能情況、條件和輸入資料,以測試程式執行無誤。如果有錯誤產生,就需要除錯來解決問題。 除錯:如果程式無法輸出正確結果,除錯是在找出錯誤的地方。我們不但需要找出錯誤,還需要決定找出更正錯誤的方法。
2-1-2 演算法-定義 在程式設計的設計階段寫出的解決問題步驟、策略或方法就是「演算法」(Algorithms),其基本定義如下: 演算法是完成目標工作的一組指令,這組指令的步驟是有限的。除此之外,演算法還必須滿足一些條件,如下所示: 輸入(Input):沒有或數個外界的輸入資料。 輸出(Output):至少有一個輸出結果。 明確性(Definiteness):每一個指令步驟都十分明確,沒有模稜兩可。 有限性(Finiteness):這組指令一定會結束。 有效性(Effectiveness):每一個步驟都可行,可以追蹤其結果。
2-1-2 演算法-表示方式 一般語言文字:直接使用文字描述來說明執行的步驟。 虛擬碼(Pseudo Code):一種趨近程式語言的描述方法,它並沒有固定語法,其每一列約可轉換成一列程式碼。 流程圖(Flow Chart):使用結構化的圖表描述執行過程,以各種不同形狀的圖形表示不同的操作,使用箭頭線標示執行方向。
2-1-3 使用Visual Basic開發應用程式 Step 1 新增專案:Visual Basic應用程式是一個專案,建立Visual Basic應用程式的第一步就是建立Visual Basic專案。 Step 2 建立表單介面:在建立好專案後,預設新增From1.vb表單類別檔,請依照規劃的介面,從「工具箱」視窗拖拉所需控制項到表單,就可以建立表單使用介面。 Step 3 設定控制項屬性:在表單新增控制項後,接著可以在「屬性」視窗調整表單或控制項的大小、字型、色彩和外觀等屬性值。 Step 4 撰寫程式碼:主控台應用程式是撰寫主程式Main()程序的程式碼;Windows應用程式請依照控制項觸發的事件,建立所需的事件處理程序。 Step 5:編譯與執行:在VBE編譯與執行Visual Basic專案的應用程式,如果有編譯錯誤,請重複上述步驟在更改程式碼後,或使用VBE除錯功能來找出錯誤。
2-2 建立主控台應用程式-說明 主控台應用程式是早期BASICA、GWBASIC和QuickBasic在MS-DOS作業系統以文字模式執行的應用程式。Windows作業系統是在「命令提示字元」視窗執行的應用程式,如下圖所示:
2-2 建立主控台應用程式-步驟一 步驟一:新增主控台應用程式專案 在VBE整合開發環境只需新增專案,就可以編輯、編譯和執行Visual Basic主控台應用程式。
2-2 建立主控台應用程式-步驟二 步驟二:編輯程式碼檔案 當建立好Ch2-2專案和新增Module1.vb模組的程式碼檔案,主控台應用程式的進入點是模組的主程式Main()程序,請繼續上面步驟在主程式輸入程式碼,如下所示:
2-2 建立主控台應用程式-步驟三 步驟三:編譯和執行主控台應用程式 在專案的模組檔案輸入程式碼後,就可以建置和編譯專案的程式檔案。請執行「偵錯/開始偵錯」指令或按F5鍵,即可編譯和建置專案,在完成後如果沒有錯誤,可以看到執行結果的「命令提示字元」視窗。
2-3 建立Windows應用程式- Windows應用程式 Windows應用程式是在Windows作業系統下執行的圖形使用介面GUI(Graphic User-interface)應用程式,它是使用視窗、功能表、對話方塊、按鈕等圖形控制項組成的應用程式。 例如:Office軟體、記事本、小畫家或VBE本身都是一種Windows應用程式。
2-3 建立Windows應用程式-事件驅動程式設計(Event-driven Programming)
2-3 建立Windows應用程式-步驟一 步驟一:新增Windows應用程式專案 在Visual Basic新增Windows應用程式專案,就是建立Windows應用程式,它可以產生From1.vb表單類別。
2-3 建立Windows應用程式-步驟二 步驟二:在表單新增控制項 VBE是一種「視覺化程式開發工具」(Visual Builder Tool,VBT),我們只需在「工具箱」視窗選取控制項,就可以在表單上新增GUI元件。
2-3 建立Windows應用程式-步驟三 步驟三:設定控制項屬性 在表單新增控制項後,就可以選取控制項,在「屬性」視窗設定控制項屬性。
2-3 建立Windows應用程式-步驟四 步驟四:新增其他控制項 接著重複步驟二和三新增Text和Button按鈕控制項,並且設定相關屬性。
2-3 建立Windows應用程式-步驟五 步驟五:在控制項新增事件處理程序 目前表單一共新增Label1、TextBox1和Button1三個控制項。接著,我們就可以新增按鈕控制項的事件處理程序。
2-3 建立Windows應用程式-步驟六 步驟六:編譯與執行Windows應用程式 請執行「偵錯/開始偵錯」指令或按F5鍵,在編譯和建置專案完成後,如果沒有錯誤,就可以看到執行結果的Windows應用程式視窗。
2-4 Visual Basic應用程式架構 2-4-1 Visual Basic的程式架構 2-4-2 輸出與輸入
2-4-1 Visual Basic的程式架構-說明 Visual Basic應用程式的程式碼是儲存在附檔名.vb的檔案,主要可以分為兩種:模組(Modules)和類別(Classes)檔,Visual Basic的程式碼就是置於這兩種檔案之中。 在Visual Basic的主控台應用程式是一個擁有主程式Main()程序的模組;Windows應用程式的表單則是一個Form類別的宣告。
2-4-1 Visual Basic的程式架構-模組(Module) Visual Basic的模組是延續舊版VB6的程式架構,大部分主控台應用程式的程式碼都是位於模組。在新增Visual Basic專案後,預設的檔案名稱為Module1.vb,其程式架構如下所示: Module Module1 Sub Main() …… End Sub End Module
2-4-1 Visual Basic的程式架構-類別(說明) 類別(Class)是一個藍圖用來建立物件(Object),它是物件導向程式設計的觀念,在此之前讀者可以將類別視為是Windows應用程式標準程式架構。在新增Visual Basic專案後,預設建立的檔案名稱是Form1.vb,如下圖所示:
2-4-1 Visual Basic的程式架構-類別(架構) 程式碼是置於Class/End Class關鍵字之間,如下所示: Public Class Form1 Private Sub Button1_Click(…) _ Handles Button1.Click …… End Sub End Class
2-4-1 Visual Basic的程式架構-類別(表單程式碼) VBE表單設計視窗自動產生的表單程式碼是位在Form1.Designer.vb類別檔,其架構如下所示: Partial Class Form1 Inherits System.Windows.Forms.Form …… End Class 上述Partial部分類別宣告,程式內容是建立控制項的程式碼。它是使用Inherits關鍵字繼承自System.Windows.Forms.Form類別。
2-4-2 輸出與輸入-主控台應用程式 在主控台應用程式的輸出與輸入是使用System.Console類別的方法,它是主控台應用程式的標準輸入、輸出,在程式碼可以省略System。
2-4-2 輸出與輸入- Windows應用程式 Windows應用程式的輸出與輸入是控制項物件,在第2-3節的範例程式是以標籤和文字方塊控制項來輸出執行結果。 Windows應用程式的基本輸出與輸入是本書討論重點,詳細的說明請參閱第4章。
2-5 Visual Basic語言的寫作風格-說明 Visual Basic語言的寫作風格就是撰寫Visual Basic程式碼的規則。 事實上,Visual Basic程式碼是由程式敘述組成,數個程式敘述組合成程式區塊,每一個區塊擁有數列程式敘述或註解文字,一列程式敘述是一個運算式、變數和關鍵字組成的程式碼。
2-5 Visual Basic語言的寫作風格- 程式敘述(Statements) Dim balance As Integer = 1000 interest = balance * rate Console.WriteLine("第一個Visual Basic應用程式") 每一個程式碼列可以是使用半形冒號":"分隔的程式敘述,如下所示: balance=10000: rate=0.04: interest=balance*rate
2-5 Visual Basic語言的寫作風格- 程式區塊(Blocks) 程式區塊是由多個程式敘述組成,它是位在Sub/End Sub、Function/End Funciton和If/End If等擁有End關鍵字間的程式碼,如下所示: Sub Main End Sub
2-5 Visual Basic語言的寫作風格-End程式敘述結束程式 Visual Basic應用程式的進入點是主程式Main()或啟動物件,如果使用程式碼來結束Visual Basic程式則是使用End程式敘述,當程式執行到此程式敘述,就會馬上結束應用程式的執行。
2-5 Visual Basic語言的寫作風格- 程式註解(Comments) 程式註解是程式設計上很重要的部分,良好註解不但能夠輕易了解程式目的,在維護上也可以提供更多的資訊。Visual Basic程式註解是以REM指令或"'"符號開始的列,或程式列此符號後的內容,如下所示: REM 變數的宣告 ' 大家好 Dim size1,size2 As Integer ' 變數的宣告
2-5 Visual Basic語言的寫作風格- 太長的程式碼 Dim size1,size2,size3,size4,size5 _ ,size6,size7,size8,size9 As Integer
2-5 Visual Basic語言的寫作風格- 列印和顯示的符號常數 Visual Basic符號常數屬於輸出時的控制字元,在Visual Basic提供對應功能的ControlChars列舉常數,如下表所示:
2-6 表單與程式碼編輯器的使用 2-6-1 切換檔案與輸入程式碼 2-6-2 IntelliSense智慧程式碼輸入 2-6-3 表單編輯視窗的控制項對齊
2-6-1 切換檔案與輸入程式碼 當我們在VBE程式碼編輯視窗輸入程式碼後,程式碼會自動縮排和以不同色彩來標示程式敘述。在上方的檔案名稱標籤,可以切換編輯的程式碼檔案或表單設計視窗,如下圖所示:
2-6-2 IntelliSense智慧程式碼輸入-說明 VBE程式碼編輯視窗提供IntelliSense智慧程式碼輸入功能,可以在輸入程式碼時,顯示物件屬性、方法和語法說明提示等提示訊息的小視窗,來幫助我們建立Visual Basic程式。
2-6-2 IntelliSense智慧程式碼輸入-顯示物件屬性或方法清單 在程式碼編輯視窗輸入物件時,IntelliSense可以顯示其屬性、方法和列舉常數清單。例如:在Button2_Click()事件處理程序輸入Button1控制項物件的程式碼,如下圖所示:
2-6-2 IntelliSense智慧程式碼輸入-函數或方法的語法提示說明
2-6-2 IntelliSense智慧程式碼輸入-使用程式碼片斷 為了方便Visual Basic程式碼輸入,VBE提供現成的程式碼片斷,我們只需選擇和插入後,就可以快速完成程式碼的編輯。請在編輯視窗按?+Tab鍵來插入程式碼片斷,如下圖所示:
2-6-3 表單編輯視窗的控制項對齊-控制項的水平對齊 快照線可以水平對齊2個控制項,或是以文字內容底部為基準來進行水平對齊。
2-6-3 表單編輯視窗的控制項對齊-控制項的垂直對齊 同樣的方式,快照線也可以幫助我們垂直對齊多個控制項。例如:垂直對齊2個Label標籤控制項,首先將Label1移至定位,如下圖所示:
2-7 在Windows執行應用程式-說明 在VBE建置和編譯Visual Basic專案後,在專案資料夾的「bin\Debug」子資料夾會有此專案編譯成的執行檔,副檔名為.exe,換句話說,我們可以直接在Windows作業系統執行EXE執行檔。 執行主控台應用程式 執行Windows應用程式
2-7 在Windows執行應用程式-執行主控台應用程式 在VBE建置和編譯第2-2節的Ch2-2專案後,就可以直接在Windows作業系統開啟「命令提示字元」視窗來執行編譯成的執行檔,檔名是專案名稱,即Ch2-2.exe,如下所示:
2-7 在Windows執行應用程式-執行執行Windows應用程式 在VBE建置和編譯第2-3節的Ch2-3專案後,就可以直接在Windows作業系統執行編譯成的執行檔,檔名是專案名稱Ch2-3.exe,如下所示:
2-8 列印程式碼 VBE提供列印功能,可以列印程式碼編輯視窗的程式碼,例如:列印Ch2-3專案的From1.vb檔案,其步驟如下所示: 1. 請啟動VBE開啟Ch2-3專案,然後按二下開啟Form1.vb且切換至程式碼編輯視窗。 2. 執行「檔案/列印」指令,可以看到「列印」對話方塊。 3. 請開啟印表機的電源,在選好印表機和列印份數,預設為1份,按【確定】鈕,稍等一下,如果印表機連線沒有問題,就可以從印表機送出列印結果的程式碼報表。