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à gì ?
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à gì ?
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 trì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 gì 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 để trì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
Trì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 đó.