1.Visual Basic 的新功能

當你開始使用Visual Basic 6時,首先看到的是一個「新增專案」的對話方塊,如圖1-1。

在圖1-1中可以看到,除了標準執行檔之外,Visual Basic還能建立許多不同類型的元件(Component),包括ActiveX DLL、ActiveX控制項以及可以在Internet上面執行的ActiveX文件。


 

 圖1-1 Visual Basic 6的「新增專案」對話方塊

在本章中,我們要介紹許多Visual Basic 6主要的新特色以及從舊版Visual Basic改進而來的功能,而後面的章節則會以實例來介紹這些新特色。儘管本書涵蓋的領域相當廣泛,但是很可能你會對某一個主題想要知道得更多更詳細;在這種情況下,我們建議參考Visual Basic的技術文件、Visual Basic的線上手冊,以及Microsoft網站上的資訊。

本版加強之處
 

目前Visual Basic有三種32位元的版本,每一個版本都是它們前身版本的加強版;這三種版本都包含了以多媒體光碟存放且易於瀏覽的HTML「線上手冊」,這是一份完整的Visual Basic線上技術手冊。

Visual Basic 6普及版能讓程式設計師很容易地發展在Windows 95和Windows NT環境下執行的32位元應用程式。Visual Basic普及版包含了所有基本的控制項、方格控制項(Grid Control)、頁籤控制項(Tab Control),以及資料連結控制項(Data-bound Control)。

Visual Basic 6專業版除了包括普及版所有的功能之外,並增加了ActiveX控制項群組,其中包括Internet控制項和資料存取控制項。至於新增加的技術文件方面,專業版多了Component Tools Guide和Data Access Guide。

Visual Basic 6企業版包含了專業版所有的功能,再加上Automation Manager、Component Manager、資料庫管理工具、Microsoft Visual SourceSafe專案導向式軟體版本控制系統以及其他功能及特性。

整合式開發環境
 

Visual Basic 6的整合式開發環境(Integrated Development Environment,IDE)有兩大特色。第一個特色是IDE可以讓你選擇兩種環境模式──單一文件模式(Single Document Interface,SDI)或是多重文件模式(Multiple Document Interface,MDI);第二個特色是Visual Basic容許同時載入多個專案,將這些專案集成專案群組。

如果你曾經使用過早期版本的Visual Basic,那麼你應該很熟悉SDI模式的Visual Basic環境。在SDI模式下,如圖1-2,不同的視窗各自開啟顯示在螢幕上,Windows 95的桌面或其他已經開啟的應用程式則在這些Visual Basic的視窗後面。新的MDI模式則比較類似Windows Excel、Windows Access和Windows Visual C++ 等界面,有一個屬於整個應用程式的大視窗,大視窗裡可以開啟幾個小視窗,如圖1-3所示。現在MDI模式是Visual Basic環境的預設模式。


 

 圖1-2 SDI模式下的整合式開發環境


 

 圖1-3 MDI模式下的整合式開發環境

Visual Basic中也加強了「瀏覽物件」視窗(Object Browser)。從「瀏覽物件」視窗中,如圖1-4,你可以快速地切換到專案的「程式碼」視窗。利用「瀏覽物件」視窗內建的搜尋功能和其他功能,我們可以更容易找到專案中用到的元件或是可用在專案中的元件。


 

 圖1-4 功能增強後的「瀏覽物件」視窗

Visual Basic的程式碼視窗多了一些令人意想不到的新功能──自動列出成員(Auto List Members)和自動使用快速諮詢(Auto Quick Info)功能。當你在「程式碼」視窗中打字時,Visual Basic的自動列出成員功能提供了一個下拉式清單來幫助你拼出正確的關鍵字;如果你輸入的是一個物件,那麼下拉式清單中會列出與這個物件相關的屬性(Property)和物件方法((thod)供你選擇。圖1-5所顯示的是自動列出成員功能的範例。

另一個Visual Basic程式碼視窗的新功能是自動使用快速諮詢功能。在「程式碼」視窗中輸入陳述式或函式時,這個功能會自動提供有關該陳述式或函式語法的資訊,如圖1-6。


 

 圖1-5 自動列出成員功能的範例


 

 圖1-6 自動使用快速諮詢功能的範例

Visual Basic 6還有其他許多改良加強的功能及特性,諸如:功能增強的偵錯視窗、工具列、新的專案視窗、改進的調色盤、輔助程式編寫的邊界指示器(Margin Indicator),可以迅速連上Microsoft網站的功能表選項,以及加入或移除某個程式段落中所有註解行的功能。

另外,一些輔助專案發展的工具也包含在Visual Basic 6中,企業版所包含的「應用程式效能瀏覽器」就是其中一例。「應用程式效能瀏覽器」可協助你對主從式架構應用程式進行設計、計劃及程式效能調整。它可以執行"what-if"測試,模擬多人使用的程式在不同網路架構下所能達到的效能(Performance),它所考量的因素包括:網路頻寬、資料要求頻率、資料傳輸需求以及伺服器能力等等。「應用程式效能瀏覽器」以Visual Basic寫成,它的原始程式碼在安裝Visual Basic時就被包括在Visual Basic中,你可自行研究或修改它。

機器碼編譯器
 

機器碼編譯器是Visual Basic 6一個極重要的新功能,它不僅掃除了許多程式設計師所認定Visual Basic是玩具語言的刻板印象,更重要的是它使得Visual Basic有能力去做一些過去Visual Basic做不到的事。例如,過去Visual Basic並不適合發展高速動畫模擬的遊戲軟體、三維圖形轉換和射線追蹤演算法等,但現在Visual Basic已經可以勝任這些工作。圖1-7顯示「專案屬性」對話方塊中「編譯」頁籤下的「編譯成機器碼」選項(要叫用這個對話方塊,請在「專案」功能表中選取專案的「屬性」選項)。


 

 圖1-7 「專案屬性」對話方塊中的「編譯」頁籤

Visual Basic 6所使用的編譯技術與Visual C++ 的編譯技術相同,因此你可以在Visual C++ 的環境下對已編譯過的Visual Basic程式碼進行偵錯。

ActiveX技術
 

ActiveX技術是一個新興的熱門話題,它建立於元件物件模型(Component Object Model,COM)的基礎之上。Visual Basic現在讓你能建立ActiveX控制項、ActiveX元件、ActiveX動態連結程式庫(Dynamic Link Library,DLL)以及提供ActiveX物件給其他應用程式使用的應用程式...... 等等,即使是Visual Basic本身以及Visual Basic的IDE環境,都是由ActiveX元件所組成的。所有你所使用的元件以及所有你能用Visual Basic建立的元件,都是靠ActiveX技術建立起來的。

全新的Internet功能
 

Internet和Intranet技術在Microsoft的長期目標中,扮演了一個極重要的角色。為了使Visual Basic能立刻投入Internet和Intranet上面的應用,Microsoft在完整的Visual Basic 5問世之前開發了Visual Basic控制項建立版(Control Creation Editionof Visual Basic),放在Microsoft的網站上供使用者下載。這個版本的Visual Basic提供了建立ActiveX控制項的能力,使其建造的ActiveX控制項能與Microsoft Internet Explorer攜手合作。

現在,Visual Basic 6包含了這個特殊版Visual Basic的所有功能,並增加了許多關於Internet的特性。Visual Basic 6所具備的Internet能力,使得程式設計師們能夠建立一些在標準網頁瀏覽器上可以執行的應用程式,而這些應用程式的能力遠遠地超越了HTML文件所無法突破的限制。

Visual Basic 6可以讓你建立自己的ActiveX文件。ActiveX文件建立的方式與一般表單建立的方式大同小異,但ActiveX文件被設計來放在ActiveX文件收納器中(如Microsoft Internet Explorer),讓上網的使用者瀏覽使用。這些ActiveX文件支援超連結(Hyperlink)的瀏覽,能夠以功能表與瀏覽器溝通,支援說明功能表合併以及其他威力強大的功能;不過,其最重要的功能當屬它能夠建立一個完整的應用程式,而由ActiveX文件所建立的應用程式可以在Internet上和Intranet上執行。

全新的控制項與功能增強的控制項
 

一般而言,ActiveX控制項在Visual Basic 6中是最熱門的新觀念,ActiveX控制項可以在Internet上使用,也可以只在一部電腦上使用。你可以在ActiveX控制項中結合多個現有的控制項成為一個單一的控制項,也可以從零開始建立起自己的ActiveX控制項。Visual Basic 6多了一些新的ActiveX控制項,現在我們先把所有Visual Basic 6版本所共有的ActiveX控制項列述於下:

  • 新的ADO資料控制項(ActiveX Data Object Data Control)可以連接任何格式資料庫來源,並輸出至所有資料物件中。不需要寫大量的程式碼,而且允許在程式執行中改變來源端之資料庫種類。
     
  • DataGrid控制項,類似於之前的DBGrid控制項,支援Unicode格式,並且能夠很容易地瀏覽和修改資料錄集合(Recordset)。
     
  • DataList和DataCombo控制項 ─ 舊的DBList和DBCombo控制項的加強版 ─ 可以動態地改變資料來源。
     
  • 新的Hierarchical FlexGrid控制項是FlexGrid控制項的更新版,可以顯示階層式的資料錄集合。
     
  • 新的ImageCombo控制項類似於ComboBox,多了存放影像元素的功能。
     
  • Image List控制項現在已經支援GIF格式。
     

    接下來我們要列出Visual Basic 6.0專業版和企業版共有的新控制項和加強的功能。

  • CoolBar控制項可以讓你建立時髦的工具列。
     
  • DTPicker控制項提供下拉式的月曆界面,讓使用者選擇及輸入時間和日期。
     
  • DataRepeater控制項提供了一個全新的方式來幫助設計者組織資料顯示的界面,這個控制項可以收納TextBox、CheckBox和其他資料連結控制項,以提供類似於Accesss表單的資料庫顯示界面。
     
  • FlatScrollBar控制項提供了二維平面的滑鈕控制項。
     
  • ListView在這一版裡有所加強,允許它的ListSubItem物件集合存放次層項目。
     
  • MonthView控制項提供了一個月的月曆界面。
     
  • MSChart控制項被加強後已經可以允許直接連結資料來源。
     
  • 加強版的ProgressBar控制項現在支援平滑捲動效果以及水平和垂直的擺設。
     
  • Script控制項讓使用者可以對你的應用程式撰寫腳本(Script),腳本可以由VBScript、Microsoft JScript或其他腳本函式所寫成。
     
  • Slider控制項現在支援ToolTips (工具提示)和協同視窗(Buddy Window)。
     
  • TabStrip控制項現在支援幾個新的功能,諸如控制項的擺置、平面按鈕、多重選擇等等。
     
  • TreeView控制項現在支援整列選取和核取方塊。
     

Visual Basic 6持續著先前版本改進的腳步。例如,你會發現幾乎所有的可視控制項現在都有了工具提示的功能(請看圖1-8)。另外,愈來愈多的控制項都提供了資料連結功能、Internet相關功能以及Drag-and-Drop功能。


 

 圖1-8 ToolTipText屬性現在已經成了大部分控制項的標準屬性

Visual Basic對圖形資料的支援功能一直讓筆者很喜歡,現在在Internet上面四處可見的圖形影像格式JPEG和GIF都可以由Visual Basic支援,如圖1-9。


 

 圖1-9 Visual Basic支援JPEG和GIF圖形影像格式

物件導向功能
 

Visual Basic 4首度引進了物件類別模組(Class Module),讓你可以用Visual Basic產生和使用物件,而Visual Basic 5則加強了物件類別模組的功能,並且在Visual Basic語言本身增加了許多物件導向程式設計(Object-oriented Programming,OOP)的能力。Visual Basic 6並沒有增加許多新的物件導向功能。然而,先前版本的Visual Basic所奠下的物件導向基礎必將會在Visual Basic 6中扮演重要的角色。

物件導向程式設計帶來了一大堆的新名詞,如同名異式(Polymorphism)、Friend函式、資料封裝(Encapsulation)、界面(Interface)、集合物件(Collection)...... 等等,如果對你而言這些名詞並不是很清楚的話,不要慌張,我們將在本書中詳細地解說這些觀念,並且會提供實例來幫助你徹底了解這個重要的部分。

現在我們馬上要提到的新功能是Visual Basic產生全域物件(Global Object)的功能。全域物件讓你在建立一些方法和屬性時,不需經過對已定義的物件作實體化(Instancing)的動作。這些全域物件可以讓你加入新指令及新功能,使這些加入的指令及功能用起來猶如Visual Basic語言的一部分,因而有效地延展了Visual Basic的能力。

語言的加強部分
 

Visual Basic有許多新函式及加強的功能可以用來簡化程式設計的工作,例如,它提供了五個新的字串處理的函式,減輕了程式設計師們對字串處理的負擔。這些函式包括:Filter、InStrRev、Join、Replace和Split。

除了字串函式之外,還有一個很重要的數學函式必須提出來介紹─Round函式。Round函式可以對數字捨位到指定的小數位數。這種工作本來以前就做得到,但是Round函式簡化了處理程序並且做得更快。在 第五章"物件導向程式設計"的Loan 範例程式中,我們會用Round函式將金額資料捨位到"分"。

另一個可以任你施展各種程式技巧的新函式是CallByName函式。只要引用以字串儲存的屬性名稱或物件方法名稱,CallByName函式便可以存取使用物件屬性與物件方法。

FileSystemObject物件提供了一個全新的方式讓Visual Basic應用程式處理檔案。FileSystemObject以物件導向式的方式來處理檔案、目錄、磁碟以及它們的屬性。這種處理方式源自於C++ 的世界,有其顯著的優點,同時對於一些檔案系統方面的程式設計工作也提供了有效的解決方案。

Visual Basic經過改版後,已經解除了舊版的一些限制。使用者自訂型別(User-Defined Type,UDT)現在已經可以被當作公共屬性和物件方法的引數或傳回值;而可變長度的陣列(或稱SAFEARRAY)現在也可以放在等號的左邊。

資料存取
 

新的ADO資料存取物模式比先前的版本更為簡單而可靠,與其他的Microsoft資料存取工具的整合性也變得更好了。不管是存取本地端資料庫還是遠端資料庫,ADO的界面都一樣,而且它也支援階層式的資料錄集合 (Recordset)。

為了支援新的ADO物件模式,Visual Basic現在提供了新的ADO資料控制項。這個控制項可以密切地和ADO物件模式合作卻又不需要你寫下大量的程式碼。

在Visual Basic 6中,資料來源端與資料使用端之間的連結方式比以前更豐富,任何物件都能與任何資料庫連結。另一方面,Binding Manager則可以幫助可視物件與非可視物件之間的連結。

DataReport控制項集合是一組很好用的報表產生工具。這個集合中包括六個控制項,主要的用途在做資料計算和報表的格式化。

使用者控制項也可以當作資料來源,以便讓其他控制項能與之連結。

新的「資料檢視」視窗讓你可以瀏覽目前專案中所有的資料連結。

新的「資料表單精靈」可以自動產生Visual Basic表單,這些表單上含有已經與資料庫連結的控制項和一些管理資料庫的程序。

還有一些新的以及加強版的控制項可以提供更好的方法來檢視或是修改資料庫的資料錄集合。這些控制項包括:DataGrid、DataRepeater和Hierarchical FlexGrid控制項。

Internet
 

在現今的應用程式發展相關課題中,Internet所扮演的角色逐漸加重。有鑑於此,Visual Basic 6提供了許多支援Internet應用程式的功能。

你可以用新的DHTML設計師物件產生網頁,這個物件讓你可以用Drag-and-Drop的方法在網頁上擺設控制項,也可以讓你撰寫程式碼以支援這些控制項。

企業版的Visual Basic可以建立能產生Dynamic HTML(DHTML) 的伺服器端應用程式 (Server-Side Application)。「封裝暨部署精靈」 ( 之前稱為應用程式安裝精靈 ) 可以把應用程式的相關檔案加以包裝,以便利用磁片、光碟、網路磁碟機或是Web來散佈這些安裝所需的檔案。