Logo of VovisoftMastering Visual Basic 6

Chương 7 : Xử dụng COM Component

    COM là viết tắt của Component Object Model.  COM là một tổ hợp code dùng để làm một công việc chuyên nghiệp cho ứng dụng.  COM components có thể là internal component (bộ phận dùng cho bên trong ứng dụng, không cho vay mượn), được hoán chuyển thành dạng project và chỉ xử dụng trong nội bộ mà thôi.  COM components c̣n có thể là external components, được hoán chuyển thành dạng executable _ *.exe, hay dynamic link library _ *.dll. External COM components có thể cho Client application vay mượn.  Lợi ích của việc xử dụng COM components là các bạn không cần phải biết những rắc rối phiền phức về code, cũng như làm sao đối phó với sự cố...Việc bạn cần biết là chức năng của COM components đó là ǵ ? Có thể xử dụng ở hệ thống ứng dụng của bạn hay không ?...Thí dụ như bạn có một *.dll là cái đồng hồ.  Bạn không cần phải biết bên trong đồng hồ component là ǵ ?  Bạn chỉ cần biết làm sao để thêm vào trong ứng dụng của bạn cho đúng với yêu cầu của ứng dụng. Trong chương này, chúng ta sẽ lần lượt t́m hiểu làm sao mà xử dụng COM components.

Xử dụng external component trong Visual Basic yêu cầu 4 bước sau đây :

       1.     Making the component available to your application.  Làm cho component hiện hữu trong ứng dụng.

       2.     Declaring an object variable to hold an instance of the class you are reusing.  Xác định mối liên hệ giửa component và bộ phận mà bạn sẽ xử dụng.

       3.     Creating the object.

       4.     Using the object.

Chương 7 _Phần 1 _Đoạn 1 : Making the component available

Bước đầu tiên là bạn register the component.  Bởi v́ external components có thể ở dạng *.dll hay là *.exe, không thể tự nó chạy vào trong Computer system được, cho nên bạn phải tiến hành một chương tŕnh sau đây để register the component

Operating System                    Location                                                      Name  

Microsoft Windows 95            \Windows 95 directory\System                   Regsvr32.exe

Microsoft Windows NT            \Windows NT directory\System32            Regsvr32.exe

Thí dụ như các bạn có một component tên là Payroll.dll th́ xử dụng command này để đưa component này vào hệ thống máy :

Regsvr32.exe C:\StateUBookstore\payroll.dll

Bước kế tiếp là set references.  Theo các bước sau đây th́ các bạn sẽ có file này trong library và sẳn sàng để xử dụng.

       1.  On the Project menu, click References.

Visual Basic displays the References dialog box.

       2.  Click the reference to the type library you want to use, and then click OK.

Chương 7 _Phần 1_Đoạn 2 : Declare Object Variables

    Chúng ta nhận định Object mà chúng ta sẽ xử dụng trước khi chúng ta tạo thành một instance of a component (khi được chỉ định tới th́ bộ phận đó biết chuyện mà làm) cho client application.  Nhận định object variables có 2 thể loại là specific (nhất định một công việc nào đó) và generic (chung chung)

Specific Object Variables : Đa số trường hợp chúng ta chỉ định Object Variable cho một công việc nhất định.  Thí dụ như chúng ta declare (chỉ định _Theo nghỉa Programming) ie để nhắm vào một bô phận nhất định là Internet Explorer mà thôi.  Chúng ta làm việc này lúc Design time

Dim ie As InternetExplorer

Generic Object Variables : Chúng ta xử dụng Generic Object Variables khi thật sự là cần thiết mà thôi.  Visual Basic chỉ biết là Object ǵ lúc run time mà thôi, cho nên thể loại rất rắc rối.  Do đó chỉ xử dụng khi bạn cần viết một function mà nó làm việc cho vài objects khác nhau mà thôi.  Trong trường hợp này, bạn phài declare variable là As Object.

Dim objGeneric As Object

Bây giờ chúng ta hăy nói về Variable Types và Binding

Object Variable

Binding Type

Binding at

Implications

Specific

Early

Design Time

Visual Basic có thể nhận biết các syntax để thực hiện công việc (task) trong các objects.

Generic

Late

Run Time

Visual Basic chỉ có thể nhận biết task lúc run time mà thôi.  Do đó cản trở nhiều về phía client application.

 

Chương 7 _Phần 1_Đoạn 3 : Creating Object for Component

    Một khi bạn có component từ bên ngoài application và đă nhận định object variable để giử an instance cho component, bạn có thể tạo thành object.  Có 3 cách để tạo thành object cho component lấy từ bên ngoài.  Đó là :

  1. Use the New keyword with a Set statement.

  2. Use the GetObject function.

  3. Use the CreateObject function.

    Xử dụng từ New với bộ Set để tạo thành Object : Một khi bạn đă đăng kư type library cho external component (bộ phận lấy từ bên ngoài) và xác định specific variable (early binding) th́ các bạn có thể xử dụng New keyword với Set statement mà h́nh thành Object.  Sau đây là thí dụ cách tạo thành một instance cho Internet Explorer application.

Sub StartIE() 

         Static ie As InternetExplorer

         Set ie = New InternetExplorer

         ie.Visible = True 

End Sub

    Xử dụng GetObject Function : Khi bạn muốn tạo thành một instance cho một object mà đă có rồi trong computer system, th́ hăy xử dụng GetObject function.  Sau đây là thí dụ về một object dùng để tŕnh bày tài liệu được viết trong Word và tên của hồ sơ là Contract.doc

Sub PreviewContract() 

         Static wdContract As Word.Document

         Set wdContract = GetObject("C:\Contract.doc", "Word.Document") 

         wdContract.Parent.Visible = True

         wdContract.PrintPreview 

End Sub

Xử dụng CreateObject Function : dùng cho Generic variable, bởi v́ bạn không biết object thuộc thể loại nào ? cho tới khi nó được gọi tới (late binding).  Các bạn xử dụng CreateObject function để instantiate (có thể xử dụng ngay lập tức) class.  Syntax (công thức) cho CreateObject function được viết như sau :

        CreateObject(class,[servername])

Sau đây là bản phân tích arguments (những vấn đề có liên quan) của CreateObject function:

Argument

Description

Class Argument Syntax          

Description of Argument Parts

class

Required; Variant (String). The application name and class of the object to create.

appname.objecttype

appname

Required; Variant (String). The name of the application providing the object.

servername

Optional; Variant (String). The name of the network server where the object will be created.

 

objecttype

Required; Variant (String). The type or class of object to create.

Chương 7 _Phần 1_Đoạn 4  : Using Object Component

    Xử dụng Component Properties và Component methods : Code cho bộ phận dẩn nhập vào trong application từ bên ngoài (external component) cũng giống như bộ phận bên trong của application vậy (internal component).  Thí dụ như để gọi Refresh method cho bộ phận Internet Explorer, chúng ta viết code cho click event như sau :

Private Sub cmdRefresh_Click()

    ie.Refresh

End Sub

    Tŕnh bày diển biến của Object : Tương tự như chương 3, xử dụng class module.  Bạn cần phải điều khiển event.  Thí dụ như bạn có một event là download trong bộ phận Internet Explorer, th́ mỗi lần người xử dụng download th́ bạn sẽ thấy thông báo là “Download begin...”  Bạn phải xử dụng WithEvents, sau đó mỗi lần event download tiến hành sẽ được thông báo.

Dim WithEvents ie As InternetExplorer

Private Sub ie_DownloadBegin()

lblStatus.Caption = "Download begun..."

End Sub

Chương 7 _Phần 2 : Using Internet Explorer

    Internet Explorer là một external COM component, bộ phận này rất cần thiết cho Client Apllication nếu các bạn làm việc với Web Application.  Tại sao ? Nếu không có Internet Explorer, làm sao bạn lên mạng lưới viễn thông để trao đổi tài liệu ?  Cho nên trong phần này, chúng ta sẽ cùng nhau làm một application có Internet Explorer trong đó.

 

(...c̣n nữa...mời Quí vị trở lại xem tiếp...)