VisualBasicCOM基礎講座之類的建立

字號:

在本節(jié)中,我們來實踐一下。首先創(chuàng)建一個COM對象,然后使用它,最后再想法改進。
     首先進行下面兩步:
     運行Visual Basic;選擇 "Standard EXE"工程類型;由于COM對象是基于類的,而類實際上是程序包,就像模塊中的代碼一樣。所以:
     選擇"Project"->"Add Class Module";當相應的對話框出現(xiàn)后,選擇"'Class Module",然后單擊"Open"按鈕。
     這樣,在桌面上顯示一個表單,以及包含在工程Project1中的Class1。
     下面再將空的類的類名更改:
     在類的屬性窗口中,將類的Name屬性改成CDog。
     需要說明的是,為了區(qū)別起見,每個對象名的前面都有相應的前綴,例如Text Box對象前是"txt"、Form前是"frm"、類前可以大寫字母"C"或小寫字母"cls",但這里使用前者。
     下面我們添加一些代碼來測試一下:
     在CDog類通用聲明部分中,添加變量的聲明:
    Public Name As String
     然后,打開Form1;
     在表單中添加一個命令按鈕;
     打開代碼窗口,為該命令按鈕添加下列代碼:
    Dim MyDog As CDog
     Set MyDog = New CDog
     MyDog.Name = "Billy Moore"
     MsgBox MyDog.Name
     Set MyDog = Nothing
     下面就來解釋上述代碼的含義:
    Dim MyDog As CDog
     該行語句是用來通知Visual Basic為CDog對象設置一個位空間,但這時還不能使用該對象,必須等到下條語句為止:
    Set MyDog = New CDog
     它是用來創(chuàng)建CDog的實例。這就意味著前面空的MyDog模板變成了現(xiàn)在可以使用的CDog對象。
    MyDog.Name = "Billy Moore"
     MsgBox MyDog.Name
     上述代碼的第一行是用來設置MyDog的Name變量,同時第二行語句是用來將該變量的內(nèi)容顯示在消息對話框中。最后:
    Set MyDog = Nothing
     用來將MyDog對象簡單的置空。
     按F5鍵運行并測試。
     怎么樣?但同時,我們可能不禁要問,標準模塊和類模塊究竟有什么不同?我們再來看看下面的示例:
     將命令按鈕的代碼變成:
    Dim MyDog As CDog
     Set MyDog = New CDog
     Dim MyDog2 As CDog
     Set MyDog2 = New CDog
     MyDog.Name = "Billy Moore"
     MsgBox MyDog.Name
     MyDog2.Name = "Sadie Moore"
     MsgBox MyDog2.Name
     Set MyDog = Nothing
     Set MyDog2 = Nothing
     與最前面的代碼不同的是,這里的代碼實際上是定義兩個對象MyDog和MyDog2,這兩個對象是基于CDog的相互獨立的兩個對象。
     按F5鍵運行并測試。
     結果怎樣?這一次是不是有兩個對話框出現(xiàn)?一個顯示"Billy Moore",另一個顯示"Sadie Moore"。
    上述定義的每個對象中除了Name外,沒有任何實際的屬性,因此下面過程就來添加:
     打開前面的Class1;
     聲明下面的公共變量:
    Public Age As Integer
     打開前面的Form1;
     將命令按鈕的代碼變成:
    Dim MyDog As CDog
     Set MyDog = New CDog
     Dim MyDog2 As CDog
     Set MyDog2 = New CDog
     MyDog.Name = "Billy Moore"
     MyDog.Age = 4
     MsgBox MyDog.Name & " is " & MyDog.Age & " years old"
     MyDog2.Name = "Sadie Moore"
     MyDog2.Age = 7
     MsgBox MyDog2.Name & " is " & MyDog2.Age & " years old"
     Set MyDog = Nothing
     Set MyDog2 = Nothing
     這些代碼和前面差不多,只不過這里使用了Age變量。
     按F5鍵運行并測試。
     應該出現(xiàn)顯示name和age內(nèi)容的兩個消息對話框。
     現(xiàn)在再試著將其中一個對象的age值設置成1,000或者30,000??纯唇Y果如何?程序照樣正常運行,這是因為定義的整型變量值可達32,767,但是實際中的狗(Dog)是不會有30,000歲的。
     那么,這種情況應該怎樣處理呢?