程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> VisualBasic編碼

VisualBasic編碼

編輯:VB綜合教程

開始編碼之前
  
  在VisualBasic中創建應用程序的最重要的(又往往為人忽視的)部分是設計階段。需要為應用程序設計一個用戶界面,這是顯然的;但需要設計代碼的結構就不那麼顯然了。構造應用程序的方法不同,可造成應用程序的性能及代碼的可維護性、可使用性不同。  VisualBasic應用程序的代碼是用分層方式組織的。典型應用程序包括若干模塊:應用程序中每個窗體的窗體模塊、共享代碼的可選標准模塊以及可選的類模塊。每個模塊包含若干含有代碼的過程:event過程、Sub子過程或Function過程,以及Property過程。  判定什麼過程屬於什麼模塊,這與創建的應用程序的類型有一定關系。因為VisualBasic是基於對象的,所以,利用應用程序代表的對象來考慮應用程序將是有益的。在這一章,示例應用程序Vcr.vbp的設計建立在盒式錄像機和電視機組成的對象基礎之上。VCR應用程序包含兩個窗體模塊、一個標准模塊和兩個類模塊。可用“對象浏覽器”來檢查工程的結構(圖5.2)。
  
  VCR應用程序的主窗體(frmVCR)是VCR與電視屏幕組合的可視圖像(圖5.3)。它包括幾個對象,這些對象以現實世界中的圖景為模型。一組命令按鈕(cmdPlay、cmdRecord等等)模仿的是操作VCR的按鈕。軟件VCR還包括時鐘(lblTime)、通道指示器(lblChannel)、功能指示器(shpPlay、shpRecord等等)以及顯像管(picTV)。Vcr.frm窗體模塊包括所有這些對象的事件過程。
  
  在很多情況中都存在著多個對象共享的重復過程。例如,“按下”“放像”、“倒帶”或“錄像”按鈕時就要求“暫停”和“停止”按鈕有效。最好創建一個共享的子過程,所有按鈕都可調用它,而不要在每個按鈕的Click事件過程中重復這段代碼。如果將來要修改這些子程序,則只在一個地方修改就可進行全部修改。標准模塊Vcr.bas包含各種共享過程。
  VCR的某些部分是不可視的,比如磁帶的輸送機置或錄制電視節目的邏輯便是如此。同樣,軟件VCR的一些功能沒有可視圖像。這些部分和功能是作為兩個類模塊Recorder.cls和Tape.cls實現的。clsRecorder模塊包含啟動“錄像”進程的代碼;而clsTape模塊則包含控制“磁帶”方向和速度的代碼。這些模塊中所定義的類與窗體中的任何對象都沒有直接關系。因為它們是獨立的代碼模塊,所以不作任何修改就可輕輕松松重建一個錄音程序。
  除了設計代碼結構之外,建立命名約定也是很重要的。按照缺省規定,VisualBasic將工程的第一個窗體命名為Form1,第二個窗體為Form2,依此類推。如果應用程序中有幾個窗體,則最好賦予它們有含義的名字,以免在編寫或編輯代碼時出現混淆情況。在附錄B“VisualBasic編碼約定”中列舉了一些VisualBasic建議的命名約定。
  在進一步了解對象和學習編寫代碼時,可參考VCR示例應用程序,查找有關各種編碼技巧的例子。
  
  代碼編寫機制
  在著手編寫代碼之前,了解VisualBasic編寫代碼的機制是很重要的。和任何編程語言一樣,VisualBasic有自身的組織、編輯和格式化代碼規則。
  
  代碼模塊
  VisualBasic的代碼存儲在模塊中。模塊有三種類型:窗體、標准和類。簡單的應用程序可以只有一個窗體,應用程序的所有代碼都駐留在窗體模塊中。而當應用程序龐大復雜時,就要另加窗體。最終可能會發現在幾個窗體中都有要執行的公共代碼。因為不希望在兩個窗體中重復代碼,所以要創建一個獨立模塊,它包含實現公共代碼的過程。獨立模塊應為標准模塊。此後可以建立一個包含共享過程的模塊庫。
  每個標准模塊、類模塊和窗體模塊都可包含:
   聲明。可將常數、類型、變量和動態鏈接庫(DLL)過程的聲明放在窗體、類或標准模塊的模塊級。
   過程。Sub、Function或者Property過程包含可以作為單元來執行的代碼片段。本章後面的“過程概述”一節中將討論這些內容。
  
  窗體模塊
  窗體模塊(文件擴展名為.FRM)是大多數VisualBasic應用程序的基礎。窗體模塊可以包含處理事件的過程、通用過程以及變量、常數、類型和外部過程的窗體級聲明。如果要在文本編輯器中觀察窗體模塊,則還會看到窗體及其控件的描述,包括它們的屬性設置值。寫入窗體模塊的代碼是該窗體所屬的具體應用程序專用的;它也可以引用該應用程序內的其它窗體或對象。
  
  標准模塊
  標准模塊(文件擴展名為.BAS)是應用程序內其它模塊訪問的過程和聲明的容器。它們可以包含變量、常數、類型、外部過程和全局過程的全局(在整個應用程序范圍內有效的)聲明或模塊級聲明。寫入標准模塊的代碼不必綁在特定的應用程序上;如果能夠注意不用名稱引用窗體和控件,則在許多不同的應用程序中可以重用標准模塊。
  
  類模塊
  在VisualBasic中類模塊(文件擴展名為.CLS)是面向對象編程的基礎。可在類模塊中編寫代碼建立新對象。這些新對象可以包含自定義的屬性和方法。實際上,窗體正是這樣一種類模塊,在其上可安放控件,可顯示窗體窗口。
  詳細信息關於在類模塊中編寫代碼的更詳細的信息,請參閱第九章“用對象編程”。
  注意VisualBasic的專業版和企業版也包含ActiveX文檔、ActiveX設計器和用戶控件。它們引入了具有不同文件擴展名的新模塊類型。從編寫代碼的角度來看,這些模塊應視同為窗體模塊。
  
  使用“代碼編輯器”
  VisualBasic“代碼編輯器”是一個窗口,大多數代碼都在此窗口上編寫。它像一個高度專門化的字處理軟件,有許多便於編寫VisualBasic代碼的功能。圖5.4所示為“代碼編輯器”窗口。
  因為要操作模塊中的VisualBasic代碼,所以要為每一個從“工程資源管理器”中選擇的模塊打開一個獨立的“代碼編輯器”窗口。在每個模塊中,對於模塊中所包含的每個對象,將模塊中的代碼再細分出與對象對應的獨立部分。用“對象列表框”實現各部分間的切換。在窗體模塊中,該列表包含一個通用段,一個屬於窗體自身的段以及窗體所包含的每一控件的段。對於類模塊,列表包括一個通用段和一個類段;對於標准模塊,只有一個通用段被顯示。
  每一段代碼都可包含幾個用“過程列表框”訪問的不同過程。對窗體或控件的每一個事件過程,窗體模塊的過程列表都包含一個獨立的段。例如,Label控件的過程列表就包含Change事件段、Click事件段和DblClick事件段等等。類模塊只列舉類本身的事件過程——初始化和終止。標准模塊不列舉任何事件過程,因為標准模塊不支持事件。
  
  模塊通用段的過程列表只包含唯一段——聲明段,其中放置模塊級的變量、常數和DLL聲明。當在模塊中添加子過程或函數過程時,那些過程被添加到聲明段下方的“過程列表框”中。
  代碼的兩種不同視圖都可用於“代碼編輯器”窗口。可以一次只查看一個過程,也可以查看模塊中的所有過程,這些過程彼此之間用線隔開(如圖5.4所示)。為了在兩個視圖之間進行切換,利用編輯器窗口左下角的“查看選擇”按鈕。
  
  自動完成編碼
  VisualBasic能自動填充語句、屬性和參數,這些性能使編寫代碼更加方便。在輸入代碼時,編輯器列舉適當的選擇、語句或函數原型或值。通過“工具”菜單上的“選項”命令訪問“選項”對話框,在“選項”對話框的“編輯器”選項卡上可用這樣的選項,由它們決定是允許還是禁止各代碼的設置值。
  在代碼中輸入一控件名時,“自動列出成員特性”會亮出這個控件的下拉式屬性表(圖5.5)。鍵入屬性名的前幾個字母,就會從表中選中該名字,按Tab鍵將完成這次輸入。當不能確認給定的控件有什麼樣的屬性時,這個選項是非常有幫助的。即使選擇了禁止“自動列出成員特性”,仍可使用CTRL J組合鍵得到這種性能。
  
  “自動快速信息”功能顯示語句和函數的語法(圖5.6)。當輸入合法的VisualBasic語句或函數名之後,語法立即顯示在當前行的下面,並用黑體字顯示它的第一個參數。在輸入第一個參數值之後,第二個參數又出現了,同樣也是黑體字。“自動快速信息”也可以用CTRL I組合鍵得到。
  
  書簽
  在代碼編輯器中書簽可用來標記代碼的某些行,以便您以後可以很容易地返回這些行。書簽開關的切換以及定位到已有書簽的命令可以在編輯、書簽菜單項或編輯工具欄中得到。
  詳細信息關於如何使用組合鍵使用“代碼編輯器”窗口的各種功能的更詳細信息,請參閱“代碼窗口的快捷鍵”。
  
  編碼基礎
  這一部分介紹代碼編寫機制,包括如何中斷和合並代碼行、如何添加注釋、如何使用數字以及VisualBasic命名約定。
  
  將單行語句分成多行
  可以在“代碼”窗口中用續行符(一個空格後面跟一個下劃線)將長語句分成多行。由於使用續行符,無論在計算機上還是打印出來的代碼都變得易讀。下面用續行符(_)將代碼分成若干行:
  Data1.RecordSource=_
  "SELECT*FROMTitles,Publishers"_
  &"WHEREPublishers.PubId=Titles.PubID"_
  &"ANDPublishers.State='CA'"
  在同一行內,續行符後面不能加注釋。至於在什麼地方可以使用續行符,還是有某些限制的。
  
  將多個語句合並到同一行上
  通常,一行之中有一個VisualBasic語句,而沒有語句終結符,但是也可以將兩個或多個語句放在同一行,只是要用冒號(:)將它們分開。
  Text1.Text="Hello":Red=255:Text1.BackColor=
  Red
  但是,為了便於閱讀代碼,最好還是一行放一個語句。
  詳細信息關於詳細信息,請參閱附錄A“VisualBasic的規范、限制和文件格式”。
  
  在代碼中添加注釋
  閱讀本手冊的例子時常會遇到注釋符(')。這個符號告訴VisualBasic,忽略該符號後面的內容。這些內容是代碼段中的注釋,既是為了方便開發者,也是為了方便以後可能檢查源代碼的其他程序員。例如:
  '這是從屏幕左邊
  '開始的注釋。
  Text1.Text="Hi!"  '在文本框中放
       '歡迎詞。
  注釋可以和語句在同一行,並寫在語句的後面,也可占據一整行。上述代碼對這兩種情況都作了示范。記住,不能在同一行上將注釋接在續行符之後。
  注意您可以通過選中兩行或多行代碼並在“編輯”工具欄上通過選擇“注釋塊”或“刪除注釋塊”按鈕來對該代碼塊添加或刪除注釋符號。
  
  理解數字系統
  在本文檔中大多數的數值都是十進制的(基數為10)。但有時用十六進制數(基數為16)或八進制數(基數為8)更方便。VisualBasic用前綴&H表示十六進制數,而用&O表示八進制數。下表說明同一個數的十進制、八進制和十六進制表示。
  
  通常不必掌握十六進制或八進制數制,因為計算機可以用任何數制的數工作。但是,對某些任務來說,有的數系就比其它數系更合適,例如利用十六進制數設置屏幕和控件的顏色。
  
  VisualBasic的命名約定
  在編寫VisualBasic代碼時,要聲明和命名許多元素(Sub和Function過程、變量、常數等等)。在VisualBasic代碼中聲明的過程、變量和常數的名字,必須遵循這些規則:
  1.它們必須以字母開頭。
  2.它們不可以包含嵌入的句號或者類型聲明字符(規定數據類型的特殊字符)。
  3.它們不能超過255個字符。控件、窗體、類和模塊的名字不能超過40個字符。
  4.它們不能和受到限制的關鍵字同名。
  受到限制的關鍵字是VisualBasic使用的詞,是語言的組成部分。其中包括預定義語句(比如If和Loop)、函數(比如Len和Abs)和操作符(比如Or和Mod)。
  詳細信息關於關鍵字表的更詳細信息,請參閱《VisualBasic6.0語言參考手冊》。
  窗體和控件可以和受到限制的關鍵字同名。例如,可以將某個控件命名為Loop。但在代碼中不能用通常的方法引用該控件,因為VisualBasic會認為Loop意味著關鍵字。例如,下面的代碼就會出錯。
  Loop.Visible=True   '出錯。
  為了引用那些和受到限制的關鍵字同名的窗體或控件,就必須限定它們,或者將其用方括號[]括起來。例如,下面的代碼就不會出錯。
  MyForm.Loop.Visible=True   '用窗體名
        '將其限定。
  [Loop].Visible=True   '方括號
        '起了作用。
  在引用窗體和控件時都可以用這種方式使用方括號,但在聲明變量或定義過程期間,當變量名或過程名與受到限制的關鍵字相同時,這種方式是不能使用的。方括號還可以用來強制VisualBasic接受其它類型庫提供的名稱,這些名稱與受到限制的關鍵字沖突。
  注意因為鍵入方括號也是令人厭倦的事情,所以希望少用受到限制的關鍵字作窗體或控件名。但是,如果VisualBasic的新版本定義了與現有窗體或控件沖突的新關鍵字,那麼在為使用新版本而更新代碼時,可以使用這個技巧。_
  

->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved