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.. Lợi ích của
Trang 1Chươ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
Trang 2Visual 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
Trang 3Xử 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.objecttyp
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
Required; Variant (String) The type
or class of object
to create
Trang 4Chươ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 đó