免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Visual Basic 6.0簡(jiǎn)明教程
VisualBasic 6.0簡(jiǎn)明教程


一、Visual Basic 6.0 概況

  Visual Basic 6.0簡(jiǎn)稱VB6,是Visual Studio 6.0開發(fā)產(chǎn)品系列中的一員,該產(chǎn)品系列的成員有VC6、VFoxpro6、VinterDev、VJ++6等,基本上涵蓋了Windows軟件開發(fā)的方 方面面。其中VB更是其中用戶喜愛的開發(fā)工具,它既是一種編程語言,同時(shí)也是一個(gè)強(qiáng)大的集成開發(fā)環(huán)境。作為語言,它的語法簡(jiǎn)單、容易入門,作為開發(fā)環(huán)境, 功能強(qiáng)大,操作便捷、自然;其面向?qū)ο蟮拈_發(fā)模型和思路能夠充分解放程序員的想象力。
  在VB5的基礎(chǔ)上,Visual Basic 6.0又增加(增強(qiáng))了許多特性,如:函數(shù)可以返回?cái)?shù)組、本地代碼編譯(運(yùn)行速度更快)、ActiveX編程;編寫DHTML應(yīng)用程序、服務(wù)器端的IIS 程序;升級(jí)了ComCtl32.ocx 和 ComCt232.ocx等通用控件;集成的和MS-SQL連接和調(diào)試的能力;……相對(duì)于VB5,VB6增加(增強(qiáng))了很多向?qū)?,例如:制作?yīng)用程序安裝 向?qū)?、?shù)據(jù)對(duì)象向?qū)?、?shù)據(jù)窗體向?qū)?、外接程序設(shè)計(jì)器、類生成器實(shí)用程序等等。充分利用這些特性,會(huì)讓你得心應(yīng)手,事半功倍。
  本文旨在讓沒有接 觸過VB的朋友能快速入門、以最新版本VB6幫助他們?cè)诒M可能短的時(shí)間內(nèi)學(xué)會(huì)使用VB編程;同時(shí)讓已經(jīng)入門的朋友能在新版本中得到進(jìn)一步提高。

  二、Visual Basic 6.0 IDE(集成開發(fā)環(huán)境)

  VB6的開發(fā)環(huán)境和VB5基本類似。程序一運(yùn)行,就進(jìn)入IDE環(huán)境。我們經(jīng)常要與IDE打交道,無論是設(shè)計(jì)窗體、控件、還是編寫代碼、調(diào)試程 序,都要通過它來達(dá)到。請(qǐng)一定要熟練的掌握IDE的操作要領(lǐng)。
  下面對(duì)VB6的IDE界面給予簡(jiǎn)單的介紹,具體的操作請(qǐng)您自行反復(fù)嘗試、練習(xí), 而這也是熟悉VB,掌握VB的不二法門。
  (1)[新建工程]: 在[文件]主菜單下的命令,用于建立一個(gè)新的VB工程。在工具條的最右端也有相應(yīng)的按鈕。
  (2)[生成工程...] : 根據(jù)工程的名稱不同,本菜單欄將出現(xiàn)相應(yīng)的提示,本功能用于編譯工程,并且可以由用戶指定編譯選項(xiàng),如編譯成P代碼還是本地代碼,是否優(yōu)化代碼等。
(3)[視圖] : 在各視圖間切換,如工程視圖、屬性窗、監(jiān)視窗、工具箱、工具欄等。
  (4)[工程] : 菜單會(huì)根據(jù)工程類型的不同而有不同的變化。其作用主要是對(duì)工程添加各種類型的組件,如窗體、模塊之類。
  (5)[格式]:用于對(duì)窗體上的控件進(jìn) 行對(duì)齊、改變大小、鎖定控件位置等操作。在美化屏幕布局時(shí)很有用處。
  (6)[調(diào)試]:用于調(diào)試程序時(shí),可以增加斷點(diǎn)、單步執(zhí)行等。
(7)[運(yùn)行]:就不用說了。
  (8)[設(shè)置]:在[工具]下拉式菜單下的設(shè)置功能,用于定制您的IDE環(huán)境,比如字體、是否允許即時(shí)語法檢 查、是否對(duì)齊網(wǎng)格等,請(qǐng)仔細(xì)研究它。
  另外,VB6提供了很多向?qū)?,它們極大的提高了效率,請(qǐng)?jiān)谑褂弥凶屑?xì)體會(huì)。  三、Visual Basic 6.0中的關(guān)鍵概念
  1.工程(Project)的概念和作用
  在開發(fā)應(yīng)用程序時(shí),要使用工程來管理構(gòu)成應(yīng)用程序的所有 不同的文件。一個(gè)工程包括:跟蹤所有部件的工程文件 (.vbp)、窗體文件、窗體上控件的屬性數(shù)據(jù)、類模塊文件、標(biāo)準(zhǔn)模塊文件、ActiveX 控件文件等等 。
  工程文件就是與該工程有關(guān)的全部文件和對(duì)象的清單,也是所設(shè)置的環(huán)境選項(xiàng)方面的信息。每次保存工程時(shí),這些信息都要被更新。 所有這些文件和對(duì)象也可供其它工程共享。
  當(dāng)完成工程的全部文件之后,即可將此工程編譯成可執(zhí)行文件 (.exe):從“文件”菜單,選取“制作 project.exe”命令即可。
  2.窗體(Form)的概念和作用
  窗體是用戶與 計(jì)算機(jī)交流的最主要界面,界面上可以包含多種控件,用以實(shí)現(xiàn)用戶的操作構(gòu)想以及向用戶返回操作結(jié)果。
  3.控件(Control)的概念和作用
控件一般出現(xiàn)在窗體上,用于接受用戶的輸入(如 Text控件)或者向用戶顯示某一項(xiàng)信息。由于窗體上可以出現(xiàn)多個(gè)控件,所以程序員通過組合各種類型和數(shù)量的控件來完整的展現(xiàn)一個(gè)和現(xiàn)實(shí)世界相關(guān)的對(duì)象, 比如:在一個(gè)窗體上顯示一張銷售訂單的各項(xiàng)信息。
  VB的強(qiáng)大就體現(xiàn)在支持大量的控件,目前大量的第三方控件,從數(shù)據(jù)庫支持、圖形處理、到 I/O接口處理、加密解密處理等幾乎無所不包。
  通常,VB程序員通過精心的選擇控件,或者采用VB6的新特性:設(shè)計(jì)控件,并將其在窗體上合適 的布局,來表達(dá)自己的審美趣味和界面設(shè)計(jì)的能力。界面設(shè)計(jì)是影響用戶對(duì)軟件評(píng)價(jià)的主要方面,也是一個(gè)軟件能否成功的重要因素。
  4.對(duì)象 (Object) 、屬性(Property)、事件(Event)
  “對(duì)象”直觀的理解就是,每件事物都是一個(gè)對(duì)象,大到銀河系、樓房、顯示 器、小到一粒微不足道的塵埃。在VB世界里,窗體、控件、磁盤、乃至程序本身都是對(duì)象。
  對(duì)象是分層次的,正如現(xiàn)實(shí)世界一樣,大的對(duì)象由小的對(duì) 象組成,如:窗體對(duì)象由文本控件、標(biāo)簽控件、Picture控件等組成。
  對(duì)象通過屬性來描述和區(qū)分,比如:窗體對(duì)象有高度、寬度、名稱等屬 性,由于不同的窗體的屬性不同,所以可以區(qū)分他們。程序可以讀取或設(shè)置屬性的值,來考察或操縱對(duì)象。如:可以將窗體對(duì)象的寬度屬性增加以擴(kuò)大窗體在屏幕上 的可視寬度。
  為了讓程序能夠跟蹤對(duì)象的變化,當(dāng)對(duì)象接受到外界輸入或其本身需要做出某種動(dòng)作時(shí),通過“事件”來通知應(yīng)用程序。比如:當(dāng)光標(biāo)在 窗體上移動(dòng)時(shí),窗體產(chǎn)生 Mouse_Move 事件來反映這種輸入。而程序可以根據(jù)需要捕獲這個(gè)事件,從而做出相應(yīng)的反映,比如,程序可以在光標(biāo)移動(dòng)事件發(fā)生時(shí),更改某個(gè) Label 控件上顯示的光標(biāo)坐標(biāo)。
  對(duì)象的屬性或事件可用VB代碼來引用。引用語法是“對(duì)象名+小數(shù)點(diǎn)+屬性”或者“對(duì)象名+小數(shù)點(diǎn)+事件”。例如,引用 窗體 frmMain 的 Caption 屬性的語法為:“frmMain.Caption”。
  5.變量的概念和作用
  變量是用 來存儲(chǔ)數(shù)據(jù)的所在處;它們有名字和數(shù)據(jù)類型。變量的數(shù)據(jù)類型決定了如何將代表這些值的位存儲(chǔ)到計(jì)算機(jī)的內(nèi)存中。在聲明變量時(shí)也可指定它的數(shù)據(jù)類型。所有變 量都具有數(shù)據(jù)類型,以決定能夠存儲(chǔ)哪種數(shù)據(jù)。
  根據(jù)缺省規(guī)定,如果在聲明中沒有說明數(shù)據(jù)類型,則令變量的數(shù)據(jù)類型為 Variant。Variant 數(shù)據(jù)類型很象一條變色龍— 它可在不同場(chǎng)合代表不同數(shù)據(jù)類型。當(dāng)指定變量為 Variant 變量時(shí),不必在數(shù)據(jù)類型之間進(jìn)行轉(zhuǎn)換,Visual Basic 會(huì)自動(dòng)完成各種必要的轉(zhuǎn)換。
  但是,如果知道變量確實(shí)總是存儲(chǔ)特定類型的數(shù) 據(jù),并且還聲明了這種特定類型的變量,則 Visual Basic 會(huì)以更高的效率處理這個(gè)數(shù)據(jù)。例如,存儲(chǔ)人名的變量最好表示成 String 數(shù)據(jù)類型,因?yàn)槊挚偸怯勺址M成。
  6.Visual Basic6中的其它概念或術(shù)語
  關(guān)鍵字:VB中使用的單詞或短語,不允許 程序員用作變量、函數(shù)或過程等的名字,例如:Address Of、Dir、Len、Select 等等;
  模塊:模塊有三種:窗體模塊、標(biāo)準(zhǔn) 模塊、類模塊;
  VB中的概念和術(shù)語很多,請(qǐng)讀者在實(shí)踐中多讀書、多思考,慢慢熟悉、積累。

  四、Visual Basic語言

  1.?dāng)?shù)據(jù)類型
  VB支持的數(shù)據(jù)類型很多,有:數(shù)值類型(Integer、Double、Single等)、字符類型 (String)、日期類型(Date)、Byte、Variant等。
  2.運(yùn)算符
  VB支持的運(yùn)算符有加(+)減(-)乘(*) 除(/),邏輯比較運(yùn)算符大于(>)、小于(<)、等于(=)以及它們的組合等等。
  3.變量的定義及其作用域
  使用 Dim 語句定義變量,根據(jù)該語句所處的位置,變量有不同的作用域:全局的或局部的。其格式為:
  Dim <變量名稱> As <變量類型>
  使用 Public 來替代 Dim 語句可以使得變量全局可見,而使用 Private 定義變量則使得變量?jī)H被當(dāng)前的函數(shù)或過程看見。
  如果需要讓變量在整個(gè)程序的生命周期中生存,可以在聲明變量時(shí)加上 Static 關(guān)鍵字來達(dá)到這個(gè)目的。
  4.Visual Basic的語句
 ?。?)賦值語句:
  格式:變量 = <值> 或者 <表達(dá)式>
 ?。?)調(diào)用語句:
  函數(shù)調(diào)用: 變量 = 函數(shù)名(參數(shù)表)
  過程調(diào)用:過程名 參數(shù)表
或者 Call 過程名(參數(shù)表)
 ?。?)分支語句:
  If 條件為真 Then
      語句塊 1#Else
      否則執(zhí)行 語句塊2 End If
 ?。?)分支選擇 Select:
  Select Case 值或表達(dá)式
   Case 值1
    語句塊1
   Case 值2
    語句塊2
   . . .
Case Else
    語句塊3
   End Select
 ?。?)循環(huán)語句 Do While
  Do While 條件
       . . .
      Exit Do ' 跳出循環(huán)
      . . .
Loop    ' 繼續(xù)下一輪循環(huán)
 ?。?)Goto 語句
 ?。?)Visual Basic常用的函數(shù)有:
 ?、贁?shù)值 類:Sin()、Cos()、Sqrt()、Exp()、Fv()、Syd()等;
 ?、谌掌陬悾河蠳ow()、DateSerial()、 DateAdd()、DatePart()、Day()、Year()、Month()、Time()、TimeValue、WeekDay()等;
③字符串類:有Len()、Left()、Right()、Mid()、以及新函數(shù)LenB()、LeftB()、RightB()、MidB()、和 StrConv()、CStr()、InStr()、Lcase()、Ucase()等;
 ?、芷渌S煤瘮?shù):常用的函數(shù)有 Abs()、Dir()、CurDir()、DoEvents、Format()、MsgBox()、InputBox()、Now()、 VarType()等。
  5.Visual Basic 6.0對(duì)象命名規(guī)范
  對(duì)VB中的變量、函數(shù)、過程、控件、窗體進(jìn)行規(guī)范的、 有意義的命名,可以減少很多編程時(shí)的混亂。微軟公司有推薦的命名準(zhǔn)則,希望廣大VB程序員以此為參照,不要讓默認(rèn)的對(duì)象名稱如Form1、Text1、 RichEdit1等干巴巴的名字出現(xiàn)在程序里。
  變量或過程名的主體應(yīng)該使用大小寫混合形式,并且應(yīng)該足夠長(zhǎng)以描述它的作用。而且,函數(shù)名應(yīng) 該以一個(gè)動(dòng)詞起首,如 InitNameArray 或 CloseDialog。對(duì)于頻繁使用的或長(zhǎng)的項(xiàng),推薦使用標(biāo)準(zhǔn)縮略語以使名稱的長(zhǎng)度合理化。當(dāng)使用縮略語時(shí),要確保它們?cè)谡麄€(gè)應(yīng)用程序中的一致性。在一 個(gè)工程中,如果一會(huì)兒使用 Cnt, 一會(huì)兒使用 Count,將導(dǎo)致不必要的混淆。
  首先請(qǐng)給予對(duì)象一個(gè)有描述性的名字,比如不要讓一個(gè)輸入 姓名的Text控件名稱為 Text1,而是命名為 txtName;一個(gè)口令輸入框?yàn)?txtPassWord等等。
  根據(jù)對(duì)象的數(shù)據(jù)類型, 應(yīng)該為對(duì)象名稱加上一個(gè)表示其數(shù)據(jù)類型的前綴。
  具體應(yīng)用時(shí)可參照下表進(jìn)行,它們也是微軟推薦使用的命名規(guī)范:
  數(shù)據(jù)類型 前綴   例子
  Booleanbln     bln    Found
  Bytebyt byt    RasterData
  String       Str    StrUserName
  Current Cur    CurOrderNum
  為了標(biāo)識(shí)出對(duì)象的作用域,可以給變量加上一個(gè)范圍前綴。比如,全局變量加“g”、模塊級(jí)變量加 “m”、本地過程級(jí)什么也不加等。例如:“gstrUserName”表示全局級(jí)的字符型的變量,其主體名為“UserName”,我們基本上可以知道這 個(gè)變量的絕大部分內(nèi)涵。

  五、編程概要

  隨著您逐步了解,大概迫不及待的想一試身手。好,現(xiàn)在就讓我們真刀實(shí)槍的進(jìn)入VB6 IDE,開始編程的第一步吧。

  1.工程建立
  當(dāng)您打開VB6時(shí),就可以選取待創(chuàng)建工程的類型了,一般選取“標(biāo)準(zhǔn)EXE”類型(圖1)。
  2.建立窗體和 控件
  你可以按添加窗體快捷按鈕添加窗體。當(dāng)窗體出現(xiàn)在屏幕上后,別忘記在“屬性窗口”中給它起一個(gè)比較合適的名字,比如“frmMain”。 隨后您就可以在窗體上創(chuàng)建左面工具箱中的控件的新實(shí)例了。創(chuàng)建的方法有兩種,一種是雙擊工具箱中的控件,則相應(yīng)的控件實(shí)例自動(dòng)出現(xiàn)在窗體的中間位置,也可 以按下工具箱中的控件圖標(biāo),然后在窗體中用鼠標(biāo)圈一個(gè)矩形,這個(gè)矩形就代表控件實(shí)例所占據(jù)的控件。當(dāng)控件建立完畢,請(qǐng)仔細(xì)布局。
  窗體的常用屬 性一般有:
  (1)Caption:窗口的標(biāo)題;
  (2)Name:窗體的名字,您應(yīng)給它一個(gè)有意義的名字;
(3)Visible:設(shè)置窗體是否可見,取值有 True 和 False 兩種;
  (4)Enabled:是否接受用戶的輸入;
(5)BorderStyle:邊框的風(fēng)格,有無邊框、可變邊框、固定單線邊框、工具條式邊框等多種風(fēng)格;
  (6)Height、 Width、Top、Left:高度、寬度、左、右邊界位置屬性,用于表示或設(shè)置窗體的高度和寬度以及在屏幕上的位置;
(7)BackColor:用于定義窗體的顏色;
  (8)Picture:用于設(shè)置一個(gè)圖片文件作為窗體的背景;
(9)Moveable:是否允許窗體移動(dòng);
  (10)MinButton、MaxButton:控制最小化、最大化按鈕。
(11)MousePointer、MouseIcon:用于設(shè)置當(dāng)光標(biāo)進(jìn)入本窗體時(shí)顯示的系統(tǒng)庫存圖像(MousePointer)、或者自定義圖像 (MouseIcon);
  (12)Font:設(shè)置顯示在窗體上的(默認(rèn))字體;
  所創(chuàng)建的窗體上可以創(chuàng)建各種各樣的控件。在工具箱 中提供了系統(tǒng)常用控件。常用控件有:  Label控件:靜態(tài)文本控件;
  TextBox:文本輸入控件;
  Frame:框架控件, 是一個(gè)控件的容器,可在其上放置控件;
  CommandButton:命令按鈕;
  CheckBox:檢查框,有選中、未選中二個(gè)狀 態(tài);
  OptionButton: 選項(xiàng)按鈕,有選中、未選中、灰色等;
  ComboBox:下拉式列表框;
ListBox:列表框;
  HscrollBar:水平滾動(dòng)條;
  VscrollBar:垂直滾動(dòng)條;
  Timer:時(shí)鐘 控件;
  DriverListBox:驅(qū)動(dòng)器列表框??娠@示機(jī)器上所有驅(qū)動(dòng)器;
  DirListBox:目錄清單列表框。列出定制驅(qū) 動(dòng)器上所有目錄;
  FileListBox:文件清單列表框。列出制定目錄下的所有文件;
  Sharp:圖形控件,可以顯示矩形、線 等圖形;
  Line:同Sharp類似,僅可以顯示線;
  Image:顯示圖像的控件;
  PictureBox:顯示圖像 的控件,若僅僅顯示,使用Image控件;
  Data:數(shù)據(jù)源控件;
  OLE:用于插入OLE對(duì)象的控件;
  為了添加其它 控件,請(qǐng)選擇 [工程]/[部件] 菜單項(xiàng)來添加其它控件到工具箱中。
  將上述控件插入窗體的方法是:先在工具箱中(左鍵)單擊相應(yīng)控件圖標(biāo), 隨后在窗體上目標(biāo)位置附近單擊左鍵,所選中的控件就出現(xiàn)在窗體上。
  用鼠標(biāo)按住控件不放并拖動(dòng),可以將控件移動(dòng)到其它合適的位置,也可以移動(dòng)鼠 標(biāo)光標(biāo)到控件邊界,當(dāng)光標(biāo)改變?yōu)殡p向箭頭時(shí),按下鼠標(biāo)左鍵并拖動(dòng),可以改變控鍵的大小。
  為了改變控件的屬性,可以單擊目標(biāo)控件一下,屬性窗口 中將出現(xiàn)其屬性清單。選中相應(yīng)的屬性值輸入框,就可以輸入新值或者可以通過下拉式列表選擇其它屬性值。
  為了給某個(gè)窗體或控件編寫事件代碼,需 要用鼠標(biāo)雙擊窗體空白區(qū)或控件區(qū),VB IDE將給出事件代碼編寫窗口。
  事件的響應(yīng)代碼是一個(gè)函數(shù),其命名規(guī)則是“對(duì)象名+下劃線+事件 名”。編寫代碼的方法見下一小節(jié)。
  常見的事件有:
  Click:光標(biāo)/鼠標(biāo)單擊事件;
  DblClick:鼠標(biāo)雙擊;
MouseMove:光標(biāo)移動(dòng);
  GotFocus:得到輸入焦點(diǎn);
  LostFocus:失去輸入焦點(diǎn);
KeyPress:擊鍵。
  3.編寫代碼
  VB “代碼編輯器” 是一個(gè)窗口,大多數(shù)代碼都在此窗口上編寫,它象一個(gè)高度專門化的字處理軟件,有許多便于編寫 Visual Basic 代碼的功能。因?yàn)橐僮髂K中的 Visual Basic 代碼,所以要為每一個(gè)從“工程資源管理器”中選擇的模塊打開一個(gè)獨(dú)立的“代碼編輯器”窗口。在每個(gè)模塊中,對(duì)于模塊中所包含的每個(gè)對(duì)象,將模塊中的代碼再 細(xì)分出與對(duì)象對(duì)應(yīng)的獨(dú)立部分。用“對(duì)象列表框”實(shí)現(xiàn)各部分間的切換。 在窗體模塊中,該列表包含一個(gè)通用段,一個(gè)屬于窗體自身的段以及窗體所包含的每一控件的段。對(duì)于類模塊,列表包括一個(gè)通用段和一個(gè)類段;對(duì)于標(biāo)準(zhǔn)模塊,只 有一個(gè)通用段被顯示。
  每一段代碼都可包含幾個(gè)用“過程列表框”訪問的不同過程。對(duì)窗體或控件的每一個(gè)事件過程,窗體模塊的過程列表都包含一個(gè) 獨(dú)立的段。例如,Label 控件的過程列表就包含 Change 事件段、Click 事件段和 DblClick 事件段等等。類模塊只列舉類本身的事件過程——初始化和終止。標(biāo)準(zhǔn)模塊不列舉任何事件過程,因?yàn)闃?biāo)準(zhǔn)模塊不支持事件。模塊通用段的過程列表只包含唯一段 ——聲明段,其中放置模塊級(jí)的變量、常數(shù)和 DLL 聲明。當(dāng)在模塊中添加子過程或函數(shù)過程時(shí),那些過程被添加到聲明段下方的“過程列表框”中。
代碼的兩種不同視圖都可用于“代碼編輯器”窗口??梢砸淮沃徊榭匆粋€(gè)過程,也可以查看模塊中的所有過程,這些過程彼此之間用線隔開。為了在兩個(gè)視圖之間 進(jìn)行切換,利用編輯器窗口左下角的“查看選擇”按鈕。
  VB提供了自動(dòng)完成編碼的功能:VB 能自動(dòng)填充語句、屬性和參數(shù),這些性能使編寫代碼更加方便。在輸入代碼時(shí),編輯器列舉適當(dāng)?shù)倪x擇、語句或函數(shù)原型或值。通過“工具”菜單上的“選項(xiàng)”命令 訪問“選項(xiàng)”對(duì)話框,在“選項(xiàng)”對(duì)話框的“編輯器”選項(xiàng)卡上可用這樣的選項(xiàng),由它們決定是允許還是禁止各代碼的設(shè)置值。
  在代碼中輸入一控件名 時(shí),“自動(dòng)列出成員特性”會(huì)亮出這個(gè)控件的下拉式屬性表。鍵入屬性名的前幾個(gè)字母,就會(huì)從表中選中該名字,按 Tab 鍵將完成這次輸入。當(dāng)不能確認(rèn)給定的控件有什么樣的屬性時(shí),這個(gè)選項(xiàng)是非常有幫助的。即使選擇了禁止“自動(dòng)列出成員特性”,仍可使用 Ctrl + J 組合鍵得到這種性能。
  “自動(dòng)快速信息”功能顯示語句和函數(shù)的語法。當(dāng)輸入合法的 Visual Basic 語句或函數(shù)名之后,語法立即顯示在當(dāng)前行的下面,并用黑體字顯示它的第一個(gè)參數(shù)。在輸入第一個(gè)參數(shù)值之后,第二個(gè)參數(shù)又出現(xiàn)了,同樣也是黑體字。“自動(dòng)快 速信息”也可以用 Ctrl+I 組合鍵得到。
  4.標(biāo)準(zhǔn)模塊
  用于存儲(chǔ)一些全局性的函數(shù)或過程,以及一些全局常量、變量的聲明等。 比如程序中需要的一些計(jì)算方法,將其獨(dú)立到模塊中就比較容易維護(hù)。
  在工程資源管理器中右擊鼠標(biāo),選擇快捷菜單的[添加]/[添加模塊]即可添 加一個(gè)新的模塊。
  5.類模塊
  VB有限度的支持了類。不象SmallTalk、C++、Java等真正的面向?qū)ο笳Z言,VB對(duì)繼 承、多態(tài)的支持采用了一種變通的方式,即采用接口和界面等類似于COM模型的方式。其實(shí),之所以這么做,就是為了讓VB支持COM模型。
  所謂 類,就是對(duì)一系列相同對(duì)象的抽象描述。有點(diǎn)類似于數(shù)據(jù)類型,可以對(duì)類進(jìn)行實(shí)例化,也就是說明一個(gè)類對(duì)象。每個(gè)類必須存放在一個(gè)類模塊里。類可以擁有屬性、 方法、事件等,如同控件一樣。
  通過創(chuàng)建類模塊并賦以屬性和方法,就定義了類,接著就可以由該類創(chuàng)建任意數(shù)量的對(duì)象。對(duì)象模型給出了基于對(duì)象程 序的結(jié)構(gòu)。通過定義程序中對(duì)象之間的關(guān)系,對(duì)象模型能夠以一種使編程變得更容易的方式來組織對(duì)象。一般來說,對(duì)象模型表達(dá)了這樣一個(gè)事實(shí):即某些對(duì)象是 “更大的”,或者說比其它對(duì)象更重要一些——可以認(rèn)為這些對(duì)象是包含其它對(duì)象的對(duì)象,或者是由其它對(duì)象所組成的對(duì)象。例如,在編程時(shí),可能創(chuàng)建一個(gè) SmallBusiness 對(duì)象來作為程序的核心??赡芟胱屵@個(gè) SmallBusiness 對(duì)象包含與其關(guān)聯(lián)的其它類型的對(duì)象,比如 Employee 對(duì)象和 Customer 對(duì)象??赡芡瑫r(shí)也希望它包含一個(gè) Product 對(duì)象。這樣就和現(xiàn)實(shí)世界相一致起來。對(duì)象模型給出了基于對(duì)象程序的結(jié)構(gòu)。通過定義程序中所使用的對(duì)象之間的關(guān)系,對(duì)象模型能夠以一種使編程變得更容易的方 式來組織對(duì)象。
  一般來說,對(duì)象模型表達(dá)了這樣一個(gè)事實(shí):即某些對(duì)象是“更大的”,或者說比其它對(duì)象更重要一些——可以認(rèn)為這些對(duì)象是包含其它 對(duì)象的對(duì)象,或者是由其它對(duì)象所組成的對(duì)象。
  例如,在編程時(shí),可能創(chuàng)建一個(gè) SmallBusiness 對(duì)象來作為程序的核心。可能想讓這個(gè) SmallBusiness 對(duì)象包含與其關(guān)聯(lián)的其它類型的對(duì)象,比如 Employee 對(duì)象和 Customer 對(duì)象??赡芡瑫r(shí)也希望它包含一個(gè) Product 對(duì)象。理解類的含義是以后進(jìn)一步了解和實(shí)現(xiàn)ActiveX、COM等的基礎(chǔ),只有您清楚的理解了類,接下來就會(huì)事半功倍。

  六、應(yīng)用程序的調(diào)試、編譯和發(fā)布

  除非一個(gè)什么也不做的程序,一般都會(huì)出現(xiàn)這樣那樣的錯(cuò)誤。有簡(jiǎn)單的打字錯(cuò)誤,也可能拚錯(cuò)了某個(gè)關(guān)鍵字、甚至可能是編程的邏輯出現(xiàn)了偏差,導(dǎo)致程 序的結(jié)果無法理解,這時(shí)就需要調(diào)試了。VB6提供了集成的調(diào)試器,可以設(shè)置斷點(diǎn)、監(jiān)視表達(dá)式等方式。
  VB6采用了即時(shí)編譯技術(shù),就是在你編寫 代碼的同時(shí)檢查代碼的語法,如果有錯(cuò)誤后,就會(huì)及時(shí)提醒修改。所以一般情況下不會(huì)出現(xiàn)語法錯(cuò)誤。
  當(dāng)修改了程序的所有錯(cuò)誤后,就可以將其編譯為 EXE形式的可執(zhí)行程序。選擇菜單[文件]/[生成工程]即會(huì)出現(xiàn)一個(gè)對(duì)話框。單擊“選項(xiàng)”按鈕可以設(shè)置幾個(gè)工程的屬性,比如版本號(hào)、產(chǎn)品名稱、公司名 稱、是否編譯為本地代碼等。所設(shè)置的屬性將被存入EXE可執(zhí)行文件。為了發(fā)布您的程序,請(qǐng)?jiān)谙到y(tǒng)菜單條中選取 “Package&Deployment向?qū)?#8221;項(xiàng),進(jìn)入向?qū)Ш?,根?jù)畫面提示逐步操作即可。
  

  七、用VB6進(jìn)行數(shù)據(jù)庫編程


  在VB6中,微軟建議數(shù)據(jù)庫編程采用基于OLE DB的ADO模型,ADO模型是一個(gè)簡(jiǎn)單、一致的應(yīng)用程序編程接口 (API),使應(yīng)用程序能夠訪問和修改眾多類型的數(shù)據(jù)源。OLE DB 為任何數(shù)據(jù)源提供了高性能的訪問,這些數(shù)據(jù)源包括關(guān)系和非關(guān)系數(shù)據(jù)庫、電子郵件和文件系統(tǒng)、文本和圖形、自定義業(yè)務(wù)對(duì)象等等。ADO 在關(guān)鍵的 Internet 方案中使用最少的網(wǎng)絡(luò)流量,并且在前端和數(shù)據(jù)源之間使用最少的層數(shù),所有這些都是為了提供經(jīng)濟(jì)、高性能的接口。當(dāng)然,根據(jù)用途,仍然有使用DAO、RDO 的時(shí)候,例如:如果采用Access 97作為桌面數(shù)據(jù)庫,完全可以使用 DAO 模型。不過,還是讓我們緊跟潮流、學(xué)習(xí)ADO吧。
  1.與數(shù) 據(jù)庫相關(guān)的術(shù)語、對(duì)象
  (1)ADO (ActiveX 數(shù)據(jù)對(duì)象)
  這項(xiàng)新的數(shù)據(jù)訪問技術(shù)的特性包括:更簡(jiǎn)單的對(duì)象模型;與其它 Microsoft 和非 Microsoft 的技術(shù)更好的集成;為本地和遠(yuǎn)程數(shù)據(jù)提供的通用接口;可遠(yuǎn)程訪問的和斷開的記錄集;用戶可訪問的數(shù)據(jù)綁定接口;以及層次結(jié)構(gòu)的記錄集。
  (2) 數(shù)據(jù)環(huán)境
  是一個(gè)創(chuàng)建 ADO 對(duì)象的交互式的設(shè)計(jì)環(huán)境。可作為數(shù)據(jù)源供窗體或報(bào)表上的數(shù)據(jù)識(shí)別對(duì)象使用,或者在程序中作為顯露在數(shù)據(jù)環(huán)境對(duì)象之外的方法和屬性進(jìn)行訪問。數(shù)據(jù)環(huán)境設(shè)計(jì)器 支持 UserConnection,以及拖放、層次結(jié)構(gòu)、分組以及合計(jì)等。
  (3)ADO Data 控件
  這是一種新的、OLE DB 識(shí)別的數(shù)據(jù)源控件,其功能與內(nèi)部的 Data 控件和 Remote Data 控件十分相似,通過這種方式允許您用最少的代碼來創(chuàng)建數(shù)據(jù)庫應(yīng)用程序。
  (4)OLE DB 支持
  OLE DB 是一組 COM 接口,它為應(yīng)用程序訪問保存在不同信息源中的數(shù)據(jù)提供了統(tǒng)一的訪問方法,這些信息源可以是關(guān)系型的,也可以是非關(guān)系型的。這些接口支持大量可應(yīng)用于數(shù)據(jù)源 的 DBMS 功能,使數(shù)據(jù)源能夠共享其數(shù)據(jù)。ADO 是編程人員訪問 OLE DB 的方法。所有新的數(shù)據(jù)綁定控件、數(shù)據(jù)環(huán)境、和數(shù)據(jù)報(bào)表設(shè)計(jì)器都是 OLE DB 識(shí)別的。
  (5)可視化數(shù)據(jù)庫工具集成(查詢?cè)O(shè)計(jì)器和數(shù)據(jù)庫設(shè)計(jì)器)
  可視地創(chuàng)建和修改數(shù)據(jù)庫結(jié)構(gòu)和查詢:創(chuàng)建SQL Server 和 Oracle 數(shù)據(jù)庫表,利用拖放來創(chuàng)建視圖、自動(dòng)更改列的數(shù)據(jù)類型。
  (6)數(shù)據(jù)報(bào)表
  允許您利用拖放技術(shù)來 快速地從任何記錄集(包括層次結(jié)構(gòu)的記錄集)創(chuàng)建報(bào)表。
  (7)數(shù)據(jù)源
  創(chuàng)建用作數(shù)據(jù)源、以便綁定其它控件的用戶控件和類。
(8)SQL 編輯器
  允許您向現(xiàn)有的 SQL Server 和 Oracle 數(shù)據(jù)庫添加新的存儲(chǔ)過程。也可以使用此編輯器來編寫觸發(fā)器。
  (9)DataGrid 控件
  一個(gè) DBGrid 的 OLE DB 識(shí)別版本,該控件可以快速生成一個(gè)應(yīng)用程序來查看和編輯記錄集。也支持新的 ADO Data 控件。
  (10)DataList 控件、DataCombo 控件
  這些控件是 DBList 和 DBCombo 控件的 OLE DB 版本。它們還支持新的 ADO Data 控件。
  
  2.ADO對(duì)象層次
  理解了上述概念和對(duì)象,再讓我們來看一看ADO的對(duì)象層次 (圖3)。組成這個(gè)層次的各個(gè)對(duì)象被廣泛的應(yīng)用在 IIS/ASP 應(yīng)用方面。當(dāng)我們需要對(duì)程序進(jìn)行精雕細(xì)刻時(shí),就必然需要“程序化”的控制它們——也就是要編寫代碼,記住了解對(duì)象層次以及每個(gè)對(duì)象的屬性、方法是非常必要 的。下面是ADO編程模型中重要對(duì)象的簡(jiǎn)單介紹:
  

  (1)命令(Command)
  通過已建立的連接發(fā)出的“命令”可以某種方式來操作數(shù)據(jù)源。一般情況下,命令可以在數(shù)據(jù)源中添加、刪 除或更新數(shù)據(jù),或者在表中以行的格式檢索數(shù)據(jù)。
  (2)參數(shù)(Parameter)
  通常,命令需要的變量部分即“參數(shù)”可以在命令 發(fā)布之前進(jìn)行更改。例如,可重復(fù)發(fā)出相同的數(shù)據(jù)檢索命令,但每一次均可更改指定的檢索信息。
  (3)記錄集(Recordset)
如果命令是在表中按信息行返回?cái)?shù)據(jù)的查詢(行返回查詢),則這些行將會(huì)存儲(chǔ)在本地。對(duì)象模型將該存儲(chǔ)體現(xiàn)為 Recordset 對(duì)象。但不存在僅代表單獨(dú)一個(gè) Recordset 行的對(duì)象。
  (4)對(duì)象模型以 Field 對(duì)象體現(xiàn)字段
  (5)錯(cuò)誤 (Error)
  錯(cuò)誤隨時(shí)可在應(yīng)用程序中發(fā)生,通常是由于無法建立連接、執(zhí)行命令或?qū)δ承顟B(tài)(例如,試圖使用沒有初始化的記錄集)的對(duì)象進(jìn)行 操作。
  (6)集合
  ADO 提供“集合”,這是一種可方便地包含其他特殊類型對(duì)象的對(duì)象類型。使用集合方法可按名稱(文本字符串)或序號(hào)(整型數(shù))對(duì)集合中的對(duì)象進(jìn)行檢索。
(7)事件
  ADO 將“事件”的概念引入編程模型。事件是對(duì)將要發(fā)生或已經(jīng)發(fā)生的某些操作的通知。一般情況下,可用事件高效地編寫包含幾個(gè)異步任務(wù)的應(yīng)用程序。
3.ADO應(yīng)用舉例
  為了在程序中能夠使用ADO對(duì)象,請(qǐng)選中菜單 [工程]/[部件],隨后勾選相應(yīng)的部件即可,如 ADO Data Control;如果想在代碼中操縱ADO對(duì)象,請(qǐng)選擇菜單 [工程]/[應(yīng)用],然后選中相應(yīng)的項(xiàng)目即可,如“Microsoft ActiveX Data Objects 2.0 Library”。
  利用VB6自帶的Nwind.mdb 數(shù)據(jù)庫,下面簡(jiǎn)單介紹如何建立一個(gè)用于輸入雇員信息的窗體:
  首先為工具箱添加控件 ADO Data Control(ADODC)、ADO DataGrid(DataGird),然后創(chuàng)建一個(gè)新窗體,建立一個(gè) ADODC 的新實(shí)例到窗體的上方,設(shè)置其關(guān)鍵屬性如下:
Name=“adodc1”
ConnectString=“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=Nwind.mdb”
RecordSource=“Employees”
  接下來創(chuàng)建一個(gè)DataGrid控件的實(shí)例,設(shè)置其屬性為:
DataSource=“adodc1”
  隨后將光標(biāo)移動(dòng)到 DataGrid 的上方,右擊鼠標(biāo),選擇“檢索字段”快捷菜單。此時(shí)您敲 F5 試試看,程序已經(jīng)工作了!
  如何設(shè)計(jì)一個(gè)打印員工清單的報(bào)表呢?不象VB5那樣提供一個(gè)附帶的第三方報(bào)表控件,VB6提供了集成的 DataReport,使用 DataReport 設(shè)計(jì)器設(shè)計(jì)報(bào)表非常方便。其步驟如下:  (1)選擇菜單“工程/添加ActiveX設(shè)計(jì)器/數(shù)據(jù)環(huán)境”, 屏幕上將出現(xiàn)一個(gè)設(shè)計(jì)器窗口。右擊Connection1 項(xiàng),更改其屬性,令其采用“Microsoft OLE DB Access Provider”及Nwind.mdb 數(shù)據(jù)庫,然后增加一個(gè)新命令“Command”,令其連接值為 Connection1,數(shù)據(jù)對(duì)象的類型為表,而值為“Employees”表。
  (2)選擇工程菜單,建立一個(gè)DataReport,設(shè)置其 屬性。

  (3)然后在設(shè)計(jì)畫面上右擊鼠標(biāo),檢索字段,接下來根據(jù)需要和美觀重新排列各字段的位置和大小、字體。
  (4)引用報(bào)表。為了在運(yùn)行 時(shí)打印報(bào)表,可以在窗體上添加一個(gè)按鈕,在其 Click 事件里用代碼來控制報(bào)表的打印。例如:
  Private Sub btnPrint_Click()
  DataReport1.PrintReport
  End Sub
  當(dāng)然,上述關(guān)于數(shù) 據(jù)庫的介紹才剛剛接觸了ADO的一點(diǎn)皮毛,如果想成為高手,還請(qǐng)多多練習(xí)。


  八、用Visual Basic 6.0進(jìn)行多媒體編程

  用VB6可以進(jìn)行多媒體編程嗎?當(dāng)然可以。VB的運(yùn)行效率雖然低于VC、Delphi,但是用于多媒體編程仍然是勝任的,尤其VB從5.0開始 提供了本地代碼編譯器,其運(yùn)行效率已經(jīng)突飛猛進(jìn),今非昔比。
  其實(shí)所謂多媒體,其“多”不過是聲音、圖像、觸摸屏等等技術(shù)的有機(jī)組合而已。以下 簡(jiǎn)單講解如何顯示圖像、播放AVI視頻動(dòng)畫等的方法:
  1.顯示圖像
  您看到了VB6工具箱上的 PictureBox 和 Image 控件圖標(biāo)了嗎?它們都可以用于顯示圖像,包括JPEG、BMP、GIF、WMF等多種流行的圖像文件格式。
  請(qǐng)建立一個(gè)窗體,建立 一個(gè) PictureBox 控件,將其 Picture 屬性設(shè)置為預(yù)顯示的文件的全稱路徑名。圖像就顯示出來了。
  為了控制其在運(yùn)行時(shí)刻的 變化,一般可以采用如下辦法:
  (1)改變其 Left、Top 值來移動(dòng)其位置,達(dá)到動(dòng)畫的效果;
  (2)通過創(chuàng)建兩個(gè) PictureBox 控件,一個(gè)可見,一個(gè)不可見,并調(diào)用其PaintPicture 方法來將不可見控件上的圖像逐步復(fù)制到可見的控件上。采用這種方法可以做到圖片的擦入擦出、百葉窗式的畫面切換等效果;
  (3)通過對(duì) PictureBox 的 DC 值操縱,可以動(dòng)畫調(diào)色板,達(dá)到淡入淡出的效果?,F(xiàn)在的程序一般不再如此處理,而是將 PictureBox 分割成很小的塊塊,然后隨機(jī)將其擦除或顯現(xiàn)來達(dá)到淡入淡出的效果;
  在實(shí)踐中,大家一定會(huì)發(fā)現(xiàn)實(shí)現(xiàn)各種漂亮效果的方法。請(qǐng)到時(shí)一定要給我來信啦 (BlueSkit@990.net)。
  2.播放AVI視頻
  播放AVI視頻可以采用Windows 9x提供的MCI 控件。媒體控制接口 (MCI) 可以用于播放或錄制音頻、視頻、波形文件等多種媒體信息。從概念上說,這種控件就是一組按鈕,它被用來向諸如聲卡、MIDI 序列發(fā)生器、CD-ROM 驅(qū)動(dòng)器、視頻 CD 播放器和視頻磁帶記錄器及播放器等設(shè)備發(fā)出 MCI 命令。
  使用 MCI 控件記錄音頻信號(hào)之前,應(yīng)打開一個(gè)新的文件。這樣就可以保證記錄聲音的數(shù)據(jù)文件格式與系統(tǒng)記錄格式完全兼容。在關(guān)閉 MCI 設(shè)備之前,還應(yīng)該發(fā)出 MCI Save 命令,把記錄的數(shù)據(jù)保存到文件中去。MCI 控件允許通過多種方法編程: 在運(yùn)行時(shí),控件是否可見;可以增加或完全重新定義控件中按鈕的功能等;也可通過MCI的方法或?qū)傩詠砜刂泼襟w的播放。
  下面的代碼演示了播放一 個(gè)AVI文件的過程。將這些代碼放到 Form_Load 過程,應(yīng)用程序就可以使用 MCI 控件來對(duì)文件 Test.AVI 進(jìn)行播放。在試運(yùn)行這個(gè)示例之前,首先應(yīng)創(chuàng)建一個(gè)包含 MCI 控件的窗體。
  Private Sub Form_Load ()
Set properties needed by MCI to open.
    MMControl1.Notify = FALSE
    MMControl1.Wait = TRUE
    MMControl1.Shareable = FALSE
MMControl1.DeviceType = “ MMMovie”
    MMControl1.FileName = “ C:\Test.AVI”
    '打開 MCI MMMovie 設(shè)備。
    MMControl1.Command = “Open”
  End Sub
  為了正確管理多媒體資源,在退出應(yīng)用程序之前,必須關(guān)閉已經(jīng)打開的 MCI 設(shè)備。將下面的語句放到 Form_Unload 過程:
  Private Sub Form_Unload (Cancel As Integer)
MMControl1.Command = “Close”
  End Sub
  通過MCI還可以完成很多很多事情,只要有相應(yīng)的 VCD/DVD驅(qū)動(dòng)程序,您甚至可以在自己的程序里播放VCD/DVD。
  3.字符動(dòng)畫
  WinAmp 的版權(quán)畫面是不是很“眩”?用VB實(shí)現(xiàn)非常簡(jiǎn)單。
  首先建立一個(gè)窗體,在此窗體上建立一個(gè) Frame 容器控件,根據(jù)需要,在此控件上建立若干個(gè) TextBox或 Label或 Image 控件,輸入您的版權(quán)信息或其它想表現(xiàn)的文字、圖案。
然后再建立一個(gè) Timer 控件,將Interval 設(shè)置為 10,然后在其 Timer 事件中操縱 Frame 的位置就可以有動(dòng)畫效果了:
Private Sub Timer1_Timer()
    Frame1.Top = Frame1.Top - 20
DoEvents
  End Sub
  不過,你應(yīng)該加入適當(dāng)?shù)呐袛嗪湾e(cuò)誤處理語句以免程序表現(xiàn)出火。

  九、用Visual Basic 6.0設(shè)計(jì)ActiveX/ActiveX Doc

  基于部件的開發(fā)是目前最流行的方法論。
  程序員可以把經(jīng)過測(cè)試的標(biāo)準(zhǔn)部件裝配成應(yīng)用程序,所以應(yīng)用部件開發(fā)方法可以縮短編程時(shí)間,并 開發(fā)出更強(qiáng)有力的產(chǎn)品。轉(zhuǎn)向部件軟件已成為軟件工業(yè)中最引人注目的一大趨勢(shì)。在Windows 平臺(tái)上的部件編程,主要是微軟公司致力的部件對(duì)象模型 (COM),包括 Automation 和 ActiveX 規(guī)范,使用戶所創(chuàng)建的軟件部件可以與購買的軟件部件一起順利運(yùn)行。
  VB6使得 實(shí)現(xiàn)ActiveX 部件的創(chuàng)建更加容易。Visual Basic 為快速創(chuàng)建、調(diào)試和部署軟件部件提供了 ActiveX 控件、ActiveX 文檔、代碼部件以及提供對(duì)象的應(yīng)用程序等向?qū)Щ蚬ぞ摺?br>  確定部件的類型可以這樣考慮:如果需要提供服務(wù)的部件是不可視的,就要建立一個(gè)代碼部 件,或者是ActiveX EXE或者是ActiveX DLL。 如果所需要建立的部件能夠與您的應(yīng)用程序運(yùn)行在同一個(gè)進(jìn)程中,則應(yīng)該建立一個(gè)ActiveX DLL。例如,能夠執(zhí)行復(fù)雜計(jì)算的部件就屬于這種情況。
如果您需要的是一個(gè)可視的部件,并且在設(shè)計(jì)時(shí)能夠被拖放到一個(gè)應(yīng)用程序中,那么應(yīng)該建立的是ActiveX控件。例如,一個(gè)能夠正確格式化并驗(yàn)證電話號(hào) 碼的“電話號(hào)碼”控件,就屬于這種情況;這樣的控件無疑在許多應(yīng)用程序中都是有用的。
  以下僅以VB6本身帶的例子(建立一個(gè)ActiveX DLL,向外提供一個(gè)將字符串順序顛倒的函數(shù))為例,作一簡(jiǎn)單講解:
  (1)首先新建工程,類型為“ActiveX DLL工程”。
(2)VB 將自動(dòng)為該工程自動(dòng)添加一個(gè)類模塊 Class1。
  (3)按 F4 鍵打開“屬性”窗口。雙擊“名稱”屬性并把它改成 Thing。以后在通過類創(chuàng)建對(duì)象時(shí)需要使用這個(gè)名稱。
  (4)Instancing 屬性的缺省值是 MultiUse,不必改變。
(5)在“工程”菜單中,單擊“Project1 屬性”打開“工程屬性”對(duì)話框。選擇“通用”選項(xiàng)卡,填寫以下信息,然后單擊“確定”。
工程名:ThingDemo ,同時(shí)用作部件的類型庫的名稱,如果兩個(gè)部件各自提供了一個(gè) Thing 類,那么需要對(duì)類名進(jìn)行完全的限定,以區(qū)分到底要使用哪一個(gè)部件的 Thing 類,例如 ThingDemo.Thing。
  啟動(dòng)對(duì) 象:Sub Main()。
  工程描述:描述出工程的功能或作用等
  (6)添加一個(gè)模塊,并在模塊中鍵入以下代碼:
Public gdatServerStarted As Date
  Sub Main()
  '部件開始時(shí)要執(zhí)行的代碼,
'對(duì)第一個(gè)對(duì)象的請(qǐng)求作出反應(yīng)。
  gdatServerStarted = Now
  Debug.Print “E xecuting Sub Main”
  End Sub'為對(duì)象提供唯一標(biāo)識(shí)符的函數(shù)。
  Public Function GetDebugID() As Long
  Static lngDebugID As Long
  lngDebugID = lngDebugID + 1
  GetDebugID = lngDebugID
  End Function
  (7)保存 工程。工程名為 ThingDemo。
  (8)接下來,要為類創(chuàng)建屬性,這需要在類模塊中添加公共變量和屬性過程。要為類創(chuàng)建方法,需要在類模 塊中添加 Public Sub 和 Public Function。下面的步驟為 Thing 類創(chuàng)建了兩個(gè)屬性和一個(gè)方法:
  Name 屬性是可以由客戶應(yīng)用程序檢索并設(shè)置的字符串。
  DebugID (只讀)屬性返回一個(gè)順序號(hào),表示 Thing 對(duì)象創(chuàng)建的次序。
ReverseName 方法顛倒 Name 屬性中字母的順序。
  (9)在類模塊中聲明
  Public Name As String
  (10)在 Thing 類模塊中創(chuàng)建一個(gè)只讀的屬性DebugID,請(qǐng)加入以下代碼:
  Private mlngDebugID As Long ' 加到聲明部分
  Public Property Get DebugID() As Long
DebugID = mlngDebugID
  End Property
  由于 DebugID 是只讀的屬性,因此客戶程序僅能讀取而不能修改它。引用的方法是 對(duì)象名.屬性,例如:
  Private Sub Command1_Click()
    Dim t As ThingDemo.Thing
    Set t = New ThingDemo.Thing
    MsgBox t.DebugID
  End Sub
  (11)創(chuàng)建 ReverseName 方法:
  在“工具”菜單中,單擊“添加過程”打開“添加過程”對(duì)話框。在“名稱”框中,輸入 ReverseName。單擊“子程序”和“公共的”,然后單擊“確定”。
  在 Thing 類模塊的新的 Sub 過程中輸入下列代碼:
Public Sub ReverseName()
  Dim intCt As Integer
  Dim strNew As String
  For intCt = 1 To Len(Name)
  strNew = Mid$(Name, intCt, 1) & strNew
  Next
  Name = strNew
  End Sub
  (12)類模塊有兩 個(gè)內(nèi)置的事件:Initialize 和 Terminate。Initialize 事件過程中的代碼在創(chuàng)建對(duì)象時(shí)首先執(zhí)行,領(lǐng)先于其它任何設(shè)置屬性或執(zhí)行方法的動(dòng)作。
  在對(duì)象的所有引用都被釋放以后要執(zhí)行 Terminate 事件中的代碼,然后對(duì)象就被破壞。
  在VB的例子中,加入了一些代碼來觀察對(duì)象被創(chuàng)建和銷毀的狀態(tài)提示代碼,在此忽略。
  (13) 至此,整個(gè)工程建立完畢,就可以測(cè)試乃至編譯了。
  (14)測(cè)試的方法很簡(jiǎn)單,再“添加”一個(gè)測(cè)試工程,然后將測(cè)試工程和上述的工程組成一個(gè) “工程組”。然后在“工程”菜單中,單擊“引用”打開“引用”對(duì)話框。選擇“ThingDemo”,然后單擊“確定”。這樣測(cè)試工程就可以使用 ThingDemo 了,包括屬性、方法、事件等。
  ActiveX EXE 的設(shè)計(jì)方法和ActiveX DLL一樣,只不過DLL運(yùn)行在調(diào)用者進(jìn)程,而EXE擁有自己的進(jìn)程,甚至可以被部署在網(wǎng)絡(luò)中的任意一臺(tái)機(jī)器上,只要他們支持 DCOM 即可。
ActiveX 控件與ActiveX DLL 有所不同,控件一般都是可視的,而DLL都是不可視的,可以接受用戶的輸入和向外部顯露某種信息。有了VB6,其設(shè)計(jì)方法卻并不復(fù)雜,讀者有了上述基礎(chǔ), 再稍微閱讀一下MSDN資料,就可以輕松設(shè)計(jì)自己的控件。

  十、用Visual Basic 6.0設(shè)計(jì)DHTML/ASP

  利用VB的Internet 編程特性,程序員可以制作運(yùn)行在客戶端或服務(wù)器端的應(yīng)用程序,在基于窗體的應(yīng)用程序內(nèi)部顯示 HTML 頁面,或者可以在 Web 上使用 ActiveX 組件。
  如果你是一個(gè)VB愛好者,并且最終用戶總是使用IE瀏覽器,這時(shí)你就可以利用 VB6提供的DHTML/IIS能力來設(shè)計(jì)您的B/S模式的應(yīng)用。如果你的用戶使用IE以外的瀏覽器,請(qǐng)不要使用ActiveX DOC/DHTML一類的技術(shù)。
  DHTML 應(yīng)用程序是一個(gè) VB程序,它在一個(gè)交互的、基于瀏覽器的應(yīng)用程序中使用一種動(dòng)態(tài)HTML和已編譯 Visual Basic 代碼組合。一個(gè) DHTML 應(yīng)用程序駐留在瀏覽器所在的機(jī)器上,它在那里解釋和響應(yīng)瀏覽器中最終用戶執(zhí)行的操作。
  一個(gè)DHTML 應(yīng)用程序可以是一個(gè)單一的 HTML 頁面,它可以完成很多工作,例如:
  ·從頁面獲取數(shù)據(jù)并使用這種方法查詢一個(gè)數(shù)據(jù)庫。
  ·更新頁面的外觀和行為。
  ·在 響應(yīng)用戶請(qǐng)求時(shí)創(chuàng)建 HTML 元素并插入到一個(gè)頁面。
  動(dòng)態(tài) HTML 是對(duì) HTML 的擴(kuò)充,可不依賴于腳本或服務(wù)器端的處理,就能夠動(dòng)態(tài)地更新它們的內(nèi)容以及與用戶進(jìn)行交互。當(dāng)創(chuàng)建一個(gè) DHTML 應(yīng)用程序時(shí),產(chǎn)生的頁面使用在 Internet Explorer 4.X中的動(dòng)態(tài) HTML 技術(shù)。動(dòng)態(tài) HTML 對(duì)象模型允許以一種新的方法與 HTML頁面進(jìn)行交互—例如,操縱它們的屬性、方法和事件,以及對(duì)頁面的布局進(jìn)行精細(xì)的控制。
      

  使用DTML對(duì)象模型,可以訪問和操作應(yīng)用程序HTML頁面中的任何東西。一個(gè)頁面中的HTML元素可以作為單獨(dú)的對(duì)象使用,這意味著可以通過 讀取和設(shè)置屬性以及調(diào)用方法來檢查和修改元素和它們的屬性。元素中的文本可以通過元素的屬性和方法得到。在以前,您必須使用 Java腳本/VB腳本等技術(shù)手段,并且控制起來比較麻煩,現(xiàn)在隨著DHTML的流行,你可以更加實(shí)時(shí)、容易的控制HTML頁面的顯示以及與用戶的交互 了。而VB6提供了這么好的工具,你自然要學(xué)習(xí)它提高設(shè)計(jì)能力啦!
  如同 Java腳本所“見”的對(duì)象層次,在VB6中的層次大同小異,如果你有Java腳本或VB腳本的編程經(jīng)驗(yàn),應(yīng)該對(duì)這些概念非常熟悉。
  對(duì)于VB 的目標(biāo),對(duì)象模型中的兩個(gè)主要對(duì)象是BaseWindow對(duì)象和Document對(duì)象。 BaseWindow對(duì)象表示瀏覽器的一個(gè)實(shí)例,它被用來顯示Document對(duì)象,其實(shí)就是您打開的某個(gè)真正的窗口。Document對(duì)象表示在瀏覽器 中查看的HTML頁面,使用Document對(duì)象的事件訪問動(dòng)態(tài)HTML對(duì)象模型并且在瀏覽器中處理用戶的操作。通過對(duì)這兩個(gè)對(duì)象及其包含的子對(duì)象的操 縱,就等于操縱了HTML的方方面面。
  另外,動(dòng)態(tài)HTML還支持很多事件,例如:
  ·onkeydown:當(dāng)一個(gè)鍵被按下時(shí)激發(fā)。
  ·onkeypress: 當(dāng)用戶的鍵盤輸入被轉(zhuǎn)換為一個(gè)字符時(shí)激發(fā)。
  ·keyup: 鍵被釋放。
·onclick: 用戶單擊事件,或按ENTER也可激發(fā)這個(gè)事件。
  ·doubleclick: 用戶雙擊事件。
·Visual Basic事件: DHTML相同的事件注釋。
  ·onfocus: 輸入焦點(diǎn)進(jìn)入控件時(shí)觸發(fā)此事件。
·onsubmit: 當(dāng)用戶在表格上選擇“提交”按鈕時(shí)激發(fā)。
  為了克服Internet應(yīng)用程序沒有狀態(tài)的問題,DHTML應(yīng)用程序提供了 一組函數(shù)來保存或恢復(fù)連接的狀態(tài),當(dāng)然,狀態(tài)信息被保存在 cookie 中。函數(shù)GetProperty和PutProperty分別保存和獲取數(shù)據(jù)。只要最終用戶的Web瀏覽器窗口是打開的,這些函數(shù)就保存著數(shù)據(jù)。
下面再談?wù)処IS應(yīng)用程序:IIS 應(yīng)用程序是一個(gè) VB 應(yīng)用程序,它在一個(gè)動(dòng)態(tài)的、基于瀏覽器的應(yīng)用程序中使用 HTML和已編譯VB代碼的組合。IIS 應(yīng)用程序駐留在一個(gè) Web 服務(wù)器上,它接受來自瀏覽器的請(qǐng)求,運(yùn)行與請(qǐng)求相關(guān)聯(lián)的代碼并返回響應(yīng)到瀏覽器。通過 IIS 應(yīng)用程序的這些應(yīng)用,您可以根據(jù)用戶在瀏覽器上進(jìn)行的操作執(zhí)行復(fù)雜的處理。IIS 應(yīng)用程序可以使用 VB 代碼來執(zhí)行以前用腳本、CGI 處理和其他 Internet 應(yīng)用程序開發(fā)方法完成的大多數(shù)相同的處理。
  IIS 應(yīng)用程序是根據(jù)微軟IIS(Internet服務(wù)器)而命名的,而 IIS是Web 服務(wù)器,用于運(yùn)行您的程序。IIS 應(yīng)用程序可以在 Internet/Intranet 中的任何瀏覽器上運(yùn)行,因此它很容易得到廣泛的支持。
  IIS 應(yīng)用程序在表面上和 ASP 相似。但是,每一種都有自己獨(dú)特的優(yōu)點(diǎn)。ASP適合于對(duì)制作 Web 頁面感興趣的腳本開發(fā)者,它提供了將腳本和 HTML 混合起來的獨(dú)特能力。IIS 應(yīng)用程序適合于構(gòu)造基于 Web 應(yīng)用程序而不是 Web 頁面的 Visual Basic 開發(fā)者。IIS 應(yīng)用程序允許復(fù)雜的事務(wù)處理,并且?guī)缀跞魏蔚臑g覽器或平臺(tái)都可以很容易地訪問它。
  所謂的IIS 應(yīng)用程序是以一個(gè).asp (Active Server Pages)文件為宿主的,并且利用 ASP 對(duì)象模型中的幾個(gè)對(duì)象。Webclass 使用這些對(duì)象來訪問和操作來自一個(gè) HTML 頁面的信息。一個(gè) Webclass 可以使用ASP的對(duì)象。
  Webclass 是一個(gè)駐留在 Web 服務(wù)器上并響應(yīng)瀏覽器輸入的 Visual Basic 部件。當(dāng)創(chuàng)建一個(gè) IIS 應(yīng)用程序時(shí),您使用 IIS 應(yīng)用程序設(shè)計(jì)器創(chuàng)建它的Webclass。Webclass 一般包含Webitem和向客戶交付這些 Webitem 的代碼。
  ASP對(duì)象則包括如:
  ·Request:從瀏覽器的最終用 戶接受請(qǐng)求。
  ·Response:向?yàn)g覽器發(fā)送信息以便向用戶顯示它。
  ·Session:維護(hù)有關(guān)當(dāng)前用戶會(huì)話的信息并保存和獲 取狀態(tài)信息。
  ·Application:多個(gè) Webclass 實(shí)例共享的管理狀態(tài)。
  ·Server:創(chuàng)建其他的對(duì)象并確定服 務(wù)器特定的屬性,這些屬性可能影響 Webclass 的處理。
  鑒于 DHTML/IIS應(yīng)用程序的概念和實(shí)現(xiàn)無法在較短的篇幅內(nèi)說清楚,因此僅僅對(duì)概念部分給予簡(jiǎn)要說明。


  十一、Visual Basic 6.0調(diào)用Win 32 API

  VB6的功能非常強(qiáng)大,但是仍然有一些未包含的功能,此時(shí)就需要直接調(diào)用動(dòng)態(tài)鏈接庫(DLL)中的過程了。通過 DLL,程序員可以訪問構(gòu)成 Microsoft Windows 操作系統(tǒng)主體的成千上萬個(gè)過程,以及其它語言編寫的各種例程。
  DLL 是一種過程庫,應(yīng)用程序可以在運(yùn)行時(shí)鏈接并使用它,這種鏈接不同于編譯時(shí)的靜態(tài)鏈接。這意味著DLL 庫的更新可以獨(dú)立地進(jìn)行,而且許多個(gè)應(yīng)用程序可以共享同一個(gè) DLL。Windows 本身就是由若干個(gè) DLL 組成的,其它應(yīng)用程序可以調(diào)用這些庫中的過程,完成窗口與圖形的顯示、內(nèi)存管理或其他任務(wù)。這些過程有時(shí)被稱為 Windows API(應(yīng)用程序接口)。
  為了調(diào)用DLL 過程,必須首先在模塊中聲明,例如聲明 SetWindowTextA的格式為:
Private Declare Function SetWindowText Lib “user32” _
  Alias “SetWindowTextA” (ByVal hwnd As Long, _
  ByVal lpString As String) As Long
  過程、函數(shù)、常量的精確語法定義可以用 API Viewer 應(yīng)用程序找到,在 Win32api.txt 文件中也可以找到它。如果將 Declare 放在 Form 或者 Class 模塊內(nèi),那么必須在它的前面加上 Private 關(guān)鍵字。同一個(gè) DLL 過程在一個(gè)工程中只需聲明一次;然后可以任意調(diào)用。
  調(diào)用 DLL 過程如同調(diào)用VB本身提供的函數(shù)一樣,在感覺上沒有什么不同。例如調(diào)用上述函數(shù)的語法為:
  Private Sub Form_Load()
SetWindowText Form1.hWnd, “Hello World”
  End Sub
  在運(yùn)行這段代碼時(shí),函數(shù) 首先使用 hWnd 屬性確定要修改標(biāo)題欄的窗口(Form1.hWnd),然后將標(biāo)題欄修改為“Hello World”。

  十二、Visual Basic 6.0的其它激動(dòng)人心的特性或功能

  1.存儲(chǔ)過程編輯器、可視化數(shù)據(jù)庫工具集成
  SQL 編輯器允許您從 VB開發(fā)環(huán)境內(nèi)部創(chuàng)建和編輯用SQL Server 和 Oracle 編寫的存儲(chǔ)過程和觸發(fā)器。大大方便了編寫C/S模式或3層結(jié)構(gòu)數(shù)據(jù)庫的應(yīng)用軟件。查詢?cè)O(shè)計(jì)器和數(shù)據(jù)庫設(shè)計(jì)器允許您可視地創(chuàng)建并修改數(shù)據(jù)庫結(jié)構(gòu)描述和查詢: 創(chuàng)建 SQL Server 和 Oracle 數(shù)據(jù)庫表、通過拖放來創(chuàng)建視圖、以及自動(dòng)更改列的數(shù)據(jù)類型。
  VB6的這一新特性極大的提高了 程序員的生產(chǎn)率。
  2.Coolbar 控件
  有很多朋友想設(shè)計(jì)一個(gè)和Office97的工具條類似的東西,現(xiàn)在好了,不要使用第三 方控件,就可以輕松達(dá)到這個(gè)目的。
  3.DataRepeater 控件
  VB程序員再也用不著羨慕Delphi提供的類似功能了。
現(xiàn)在VB6提供了DataRepaeater控件,它與 Access 的連續(xù)窗體類似,將 UserControl 插入DataRepeater 中就可以創(chuàng)建數(shù)據(jù)庫的一個(gè)自定義視圖。UserControl 可以包含 TextBox、CheckBox、DataGrid 或其他綁定到數(shù)據(jù)字段的控件。
  4.文件系統(tǒng)對(duì)象
  一套經(jīng)過優(yōu)化的、遍歷文件系統(tǒng)以及創(chuàng)建文本文件和目錄的例程。
  VB早 已不僅僅是一種語言,經(jīng)微軟公司的多年演繹,它在編程、Office系列軟件、Internet等很多領(lǐng)域施展身手,作為微軟戰(zhàn)略的重要組成,選擇并使用 VB是一種合乎潮流的選擇。


原作者: 龐一鳴


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VB基礎(chǔ)教程
VB中模塊與窗體有何區(qū)別與聯(lián)系。 - 系統(tǒng)宅的個(gè)人空間 - 編程街
第一章 Visual Basic概述
VB集成環(huán)境習(xí)題
學(xué)校檔案管理系統(tǒng)
從VB 6.0到VB.NET的轉(zhuǎn)換
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服