久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Visual Basic 6.0簡(jiǎn)明教程

 nxhujiee 2010-06-16
Visual Basic 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ā)工具,它既是一種編程語(yǔ)言,,同時(shí)也是一個(gè)強(qiáng)大的集成開發(fā)環(huán)境,。作為語(yǔ)言,它的語(yǔ)法簡(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í)語(yǔ)法檢 查,、是否對(duì)齊網(wǎng)格等,,請(qǐng)仔細(xì)研究它。
  另外,,VB6提供了很多向?qū)?,它們極大的提高了效率,請(qǐng)?jiān)谑褂弥凶屑?xì)體會(huì),?! ∪isual 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ù)庫(kù)支持、圖形處理,、到 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代碼來引用。引用語(yǔ)法是“對(duì)象名+小數(shù)點(diǎn)+屬性”或者“對(duì)象名+小數(shù)點(diǎn)+事件”,。例如,,引用 窗體 frmMain 的 Caption 屬性的語(yǔ)法為:“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ù)語(yǔ)
  關(guān)鍵字:VB中使用的單詞或短語(yǔ),不允許 程序員用作變量,、函數(shù)或過程等的名字,,例如:Address Of、Dir,、Len,、Select 等等;
  模塊:模塊有三種:窗體模塊,、標(biāo)準(zhǔn) 模塊,、類模塊;
  VB中的概念和術(shù)語(yǔ)很多,,請(qǐng)讀者在實(shí)踐中多讀書,、多思考,,慢慢熟悉、積累,。

  四,、Visual Basic語(yǔ)言

  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 語(yǔ)句定義變量,根據(jù)該語(yǔ)句所處的位置,,變量有不同的作用域:全局的或局部的,。其格式為:
  Dim <變量名稱> As <變量類型>
  使用 Public 來替代 Dim 語(yǔ)句可以使得變量全局可見,而使用 Private 定義變量則使得變量?jī)H被當(dāng)前的函數(shù)或過程看見,。
  如果需要讓變量在整個(gè)程序的生命周期中生存,,可以在聲明變量時(shí)加上 Static 關(guān)鍵字來達(dá)到這個(gè)目的。
  4.Visual Basic的語(yǔ)句
 ?。?)賦值語(yǔ)句:
  格式:變量 = <值> 或者 <表達(dá)式>
 ?。?)調(diào)用語(yǔ)句:
  函數(shù)調(diào)用: 變量 = 函數(shù)名(參數(shù)表)
  過程調(diào)用:過程名 參數(shù)表
或者 Call 過程名(參數(shù)表)
  (3)分支語(yǔ)句:
  If 條件為真 Then
      語(yǔ)句塊 1#Else
      否則執(zhí)行 語(yǔ)句塊2 End If
 ?。?)分支選擇 Select:
  Select Case 值或表達(dá)式
   Case 值1
    語(yǔ)句塊1
   Case 值2
    語(yǔ)句塊2
   . . .
Case Else
    語(yǔ)句塊3
   End Select
 ?。?)循環(huán)語(yǔ)句 Do While
  Do While 條件
       . . .
      Exit Do ' 跳出循環(huán)
      . . .
Loop    ' 繼續(xù)下一輪循環(huán)
  (6)Goto 語(yǔ)句
 ?。?)Visual Basic常用的函數(shù)有:
 ?、贁?shù)值 類:Sin()、Cos(),、Sqrt(),、Exp()、Fv(),、Syd()等,;
  ②日期類:有Now()、DateSerial(),、 DateAdd(),、DatePart()、Day(),、Year()、Month(),、Time(),、TimeValue、WeekDay()等,;
③字符串類:有Len(),、Left()、Right(),、Mid(),、以及新函數(shù)LenB()、LeftB(),、RightB(),、MidB()、和 StrConv(),、CStr(),、InStr()、Lcase(),、Ucase()等,;
  ④其它常用函數(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)縮略語(yǔ)以使名稱的長(zhǎng)度合理化,。當(dāng)使用縮略語(yǔ)時(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)庫(kù)存圖像(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)填充語(yǔ)句、屬性和參數(shù),,這些性能使編寫代碼更加方便,。在輸入代碼時(shí),編輯器列舉適當(dāng)?shù)倪x擇,、語(yǔ)句或函數(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)快速信息”功能顯示語(yǔ)句和函數(shù)的語(yǔ)法。當(dāng)輸入合法的 Visual Basic 語(yǔ)句或函數(shù)名之后,,語(yǔ)法立即顯示在當(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(yǔ)言,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í)檢查代碼的語(yǔ)法,,如果有錯(cuò)誤后,,就會(huì)及時(shí)提醒修改。所以一般情況下不會(huì)出現(xiàn)語(yǔ)法錯(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ù)庫(kù)編程


  在VB6中,微軟建議數(shù)據(jù)庫(kù)編程采用基于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ù)庫(kù)、電子郵件和文件系統(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ù)庫(kù),完全可以使用 DAO 模型,。不過,,還是讓我們緊跟潮流、學(xué)習(xí)ADO吧,。
  1.與數(shù) 據(jù)庫(kù)相關(guān)的術(shù)語(yǔ),、對(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ù)庫(kù)應(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ù)庫(kù)工具集成(查詢?cè)O(shè)計(jì)器和數(shù)據(jù)庫(kù)設(shè)計(jì)器)
  可視地創(chuàng)建和修改數(shù)據(jù)庫(kù)結(jié)構(gòu)和查詢:創(chuàng)建SQL Server 和 Oracle 數(shù)據(jù)庫(kù)表,,利用拖放來創(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ù)庫(kù)添加新的存儲(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ù)庫(kù),下面簡(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ù)庫(kù),然后增加一個(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ù)庫(kù)的介紹才剛剛接觸了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í)一定要給我來信啦 ([email protected]),。
  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è)備。將下面的語(yǔ)句放到 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ò)誤處理語(yǔ)句以免程序表現(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)建的軟件部件可以與購(gòu)買的軟件部件一起順利運(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í)用作部件的類型庫(kù)的名稱,,如果兩個(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 頁(yè)面,或者可以在 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 頁(yè)面,,它可以完成很多工作,例如:
  ·從頁(yè)面獲取數(shù)據(jù)并使用這種方法查詢一個(gè)數(shù)據(jù)庫(kù),。
  ·更新頁(yè)面的外觀和行為,。
  ·在 響應(yīng)用戶請(qǐng)求時(shí)創(chuàng)建 HTML 元素并插入到一個(gè)頁(yè)面。
  動(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)生的頁(yè)面使用在 Internet Explorer 4.X中的動(dòng)態(tài) HTML 技術(shù),。動(dòng)態(tài) HTML 對(duì)象模型允許以一種新的方法與 HTML頁(yè)面進(jìn)行交互—例如,操縱它們的屬性,、方法和事件,,以及對(duì)頁(yè)面的布局進(jìn)行精細(xì)的控制。
      

  使用DTML對(duì)象模型,,可以訪問和操作應(yīng)用程序HTML頁(yè)面中的任何東西,。一個(gè)頁(yè)面中的HTML元素可以作為單獨(dú)的對(duì)象使用,這意味著可以通過 讀取和設(shè)置屬性以及調(diào)用方法來檢查和修改元素和它們的屬性,。元素中的文本可以通過元素的屬性和方法得到,。在以前,您必須使用 Java腳本/VB腳本等技術(shù)手段,,并且控制起來比較麻煩,,現(xiàn)在隨著DHTML的流行,你可以更加實(shí)時(shí),、容易的控制HTML頁(yè)面的顯示以及與用戶的交互 了,。而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頁(yè)面,,使用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 頁(yè)面感興趣的腳本開發(fā)者,,它提供了將腳本和 HTML 混合起來的獨(dú)特能力。IIS 應(yīng)用程序適合于構(gòu)造基于 Web 應(yīng)用程序而不是 Web 頁(yè)面的 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 頁(yè)面的信息。一個(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)鏈接庫(kù)(DLL)中的過程了,。通過 DLL,程序員可以訪問構(gòu)成 Microsoft Windows 操作系統(tǒng)主體的成千上萬(wàn)個(gè)過程,,以及其它語(yǔ)言編寫的各種例程,。
  DLL 是一種過程庫(kù),應(yīng)用程序可以在運(yùn)行時(shí)鏈接并使用它,,這種鏈接不同于編譯時(shí)的靜態(tài)鏈接,。這意味著DLL 庫(kù)的更新可以獨(dú)立地進(jìn)行,而且許多個(gè)應(yīng)用程序可以共享同一個(gè) DLL,。Windows 本身就是由若干個(gè) DLL 組成的,,其它應(yīng)用程序可以調(diào)用這些庫(kù)中的過程,完成窗口與圖形的顯示、內(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ù)、常量的精確語(yǔ)法定義可以用 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ù)的語(yǔ)法為:
  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ù)庫(kù)工具集成
  SQL 編輯器允許您從 VB開發(fā)環(huán)境內(nèi)部創(chuàng)建和編輯用SQL Server 和 Oracle 編寫的存儲(chǔ)過程和觸發(fā)器。大大方便了編寫C/S模式或3層結(jié)構(gòu)數(shù)據(jù)庫(kù)的應(yīng)用軟件,。查詢?cè)O(shè)計(jì)器和數(shù)據(jù)庫(kù)設(shè)計(jì)器允許您可視地創(chuàng)建并修改數(shù)據(jù)庫(kù)結(jié)構(gòu)描述和查詢: 創(chuàng)建 SQL Server 和 Oracle 數(shù)據(jù)庫(kù)表,、通過拖放來創(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ù)庫(kù)的一個(gè)自定義視圖,。UserControl 可以包含 TextBox,、CheckBox、DataGrid 或其他綁定到數(shù)據(jù)字段的控件,。
  4.文件系統(tǒng)對(duì)象
  一套經(jīng)過優(yōu)化的,、遍歷文件系統(tǒng)以及創(chuàng)建文本文件和目錄的例程。
  VB早 已不僅僅是一種語(yǔ)言,經(jīng)微軟公司的多年演繹,,它在編程,、Office系列軟件、Internet等很多領(lǐng)域施展身手,,作為微軟戰(zhàn)略的重要組成,,選擇并使用 VB是一種合乎潮流的選擇。


原作者: 龐一鳴


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多