PDA

View Full Version : làm quen với activex


xacchetloanluongson
21-06-2004, 10:21
ActiveX là gì? Lợi ích của việc sử dụng ActiveX!

Cùng với sự phát triển của công nghệ thông tin, các phần mềm máy tính (software) ngày càng trở nên phong phú và đa dạng, và được ứng dụng trong mọi lĩnh vực hoạt động của con người. Mặc dù có thể được xây dựng bằng những công cụ khác nhau và thực hiện những chức năng cũng khác nhau, nhưng nhiều phần mềm lại thường chia sẻ và dùng chung dữ liệu.

Mặt khác, nhu cầu của người sử dụng phần mềm cũng ngày càng đa dạng hơn. Các văn bản kết hợp với hình ảnh minh họa, bảng tính thường đi cùng các biểu đồ, đồ thị, trang trình diễn kèm âm thanh, hoạt hình...

Trước đây, việc trao đổi dữ liệu, liên kết giữa các phần mềm với nhau thường gặp nhiều khó khăn bởi mỗi phần mềm đều đòi hỏi những khuôn thức dữ liệu khác nhau. Công nghệ lập trình hướng đối tượng giúp người lập trình có thể dễ dàng tận dụng các đối tượng đã xây dựng, nhưng các đối tượng thường chỉ phát huy tác dụng trong một ngôn ngữ nhất định. Do đó việc chia sẻ chức năng, dữ liệu giữa các ứng dụng là hầu như không thể thực hiện được. Một ứng dụng độc lập khó có thể có đầy đủ những tính năng cần thiết theo yêu cầu của người dùng, mà nó cần phải tận dụng những tính năng có sẵn, đã được phát triển và hoàn thiện. Những tính năng này có thể nằm trong hệ điều hành hoặc nằm trong các phần mềm khác. Công nghệ OLE (Object Linking Embeding) đã ra đời nhằm mục đích trên. Các OLE (OLE control), được sử dụng trong Visual Basic (VB) cũng như trong bộ MS-Office, đã thành công lớn và được sử dụng rộng rãi.

Khi Internet phát triển và đạt được quy mô lớn như hiện nay, OLE trở nên không còn thích hợp đối với những ứng dụng trên Internet và intranet, nơi mà các bộ điều khiển cần phải có kích thước nhỏ và tốc độ vận hành cao, dễ dàng nạp qua đường truyền tốc độ thấp.

ActiveX là một hệ thống tiêu chuẩn dùng để xây dựng các thành phần (component) trong môi trường Windows. Các thành phần này không những có khả năng vận hành một cách độc lập mà còn có thể được khai thác bởi các thành phần khác. Đây là những thành phần được viết bằng nhiều ngôn ngữ khác nhau và rất đa dạng, có thể là các ActiveX Control (điều khiển độc lập ) để nhúng vào chương trình khác từ lúc thiết kế chương trình, có thể là các ActiveX DLL (thư viện liên kết động) mà các chương trình khác tham chiếu đến,v.v...

ActiveX được thiết kế đặc biệt thích hợp với những ứng dụng Internet và các phần mềm tuân theo COM (Component Object Model), là chuẩn công nghiệp do Microsoft khởi xướng.

ActiveX là một đối tượng, nhưng không phải bất cứ đối tượng nào cũng là ActiveX mà nó phải tuân theo hai tiêu chuẩn chính: đó là đối tượng COM và có khả năng tự đăng ký. Nói một cách đơn giản: ta có thể hiểu ActiveX là những đoạn chương trình độc lập thực hiện một chức năng nào đó mà có thể được gọi bởi những ứng dụng bất kỳ khác.

Khi xây dựng một ứng dụng, chúng ta nên sử dụng những ActiveX với chức năng phù hợp để tiết kiệm thời gian và công sức nhờ tận dụng được thành quả lao động của người khác, đã tạo nên bằng ActiveX. Với những sáng kiến hay, những ý đồ mới mà chúng ta muốn phổ biến rộng rãi cho nhiều người thì cách đơn giản và tiện lợi nhất là đưa ý tưởng đó thành ActiveX. Các ActiveX này, có thể được mọi người có thể sử dụng khi xây dựng ứng dụng. Các đối tượng của ActiveX rất phong phú, tuy nhiên chúng ta chỉ cùng nhau tìm hiểu về ActiveX Control, loại đối tượng phổ biến nhất và có nhiều ứng dụng rộng rãi trong mọi lĩnh vực.

Nếu là người lập trình trong môi trường Windows, bạn sẽ phải thường xuyên làm việc với các ActiveX Control. Các điều khiển này tăng cường những tính năng cho chương trình của bạn và trong nhiều trường hợp, còn tăng cả tốc độ vận hành chương trình. Khi bạn xây dựng các trang Web thì ActiveX Control sẽ làm cho trang Web của bạn sống động với những tính năng phong phú.

Hầu như tất cả các ứng dụng 32 bit trong môi trường Windows95 đều có hỗ trợ ActiveX. Hãy xét ví dụ đưa thanh cuộn (scrol bar) vào một bảng tính Excel 97. Thanh cuộn này có trong điều khiển Microsoft Form, một tập hợp các điều khiển ActiveX sẵn có đi cùng bộ Office97. Sau khi mở một bảng tính bất kỳ, hiển thị thanh công cụ Control ToolBox. Mỗi nút trên thanh này là một điều khiển có thể sử dụng ngay. Muốn chọn thêm hoặc đăng ký các điều khiển ActiveX mới, hãy nhấn nút More Controls ở dưới cùng của thanh. Sau đó chọn điều khiển Microsoft Form 2.0 Scrol Bar và vẽ ở vị trí tùy thích trên bảng tính. Hãy đặt thuộc tính LinkedCell bằng A1 .

Khi bạn di chuyển con trỏ thì giá trị ô A1 của bảng tính cũng thay đổi theo. Ví dụ cho thấy bản chất của một điều khiển ActiveX. Bạn không thể tạo ra thanh cuộn như vậy bằng MS Excel nhưng lại tận dụng được một điều khiển có sẵn.

Ví dụ trên cho thấy một ActiveX Control được dùng để tạo ra một đối tượng (object) trong ứng dụng, và bạn có thể sử dụng đối tượng này giống hệt như các đối tượng khác thường gặp trong Windows. Bạn có thể thay đổi thuộc tính (property) của đối tượng ActiveX, điều khiển đối tượng thao tác bằng các cách thức (method) và sự kiện (event) của nó.

Bảng tính trên hoạt động tốt ở máy của bạn nhưng khi sao sang một máy tính khác thì chưa chắc nó đã hoạt động. Đó là do điều khiển trên chưa chắc đã được đăng ký tại máy đó. Đây là khía cạnh quan trọng của ActiveX: Một điều khiển ActiveX phải được đăng ký với Windows trước khi có thể sử dụng. Khi chạy các trình cài đặt thường là các ActiveX được tự động đăng ký luôn. Nếu bạn sao chương trình và muốn tự mình đăng ký thì có thể dùng lệnh REGSVR32 để đăng ký hoặc bỏ đăng ký cho một ActiveX nào đó. Ví dụ để đăng ký điều khiển thanh cuộn nói trên ở một máy hoàn toàn chưa có điều khiển này, ta có thể chép tập tin FM20.dll vào thư mục system và chạy dòng lệnh sau từ lệnh Run của Windows: regsvr32c: \windows\system \fm20.dll.

Lệnh trên sẽ đăng ký điều khiển với Windows Registry. Khi bạn không muốn có điều khiển đó trong hệ thống nữa thì có thể bỏ đăng ký đi bằng cách thêm tham số /u vào câu lệnh trên. Chỉ cần đăng ký một lần là mọi chương trình, mọi ứng dụng có sử dụng điều khiển ActiveX đó đều có thể truy cập đến điều khiển đó để khai thác các tính năng cần thiết. Bạn cũng có thể nhận thấy đây chính là một ưu điểm lớn: ActiveX chỉ cần duy trì một bản duy nhất thay vì phải sao chép làm nhiều bản cho từng ứng dụng có sử dụng nó. Tính năng này không chỉ tiết kiệm dung lượng đĩa mà còn rất thuận tiện cho việc bảo trì, nâng cấp ActiveX.

Bây giờ, chúng ta cùng xây dựng một trang Web đơn giản có chứa một điều khiển ActiveX đi cùng bộ Office97 là Calendar Control. Đây là một chương trình lịch. Nếu có các công cụ biên soạn Web như FrontPage hoặc Active Control Pad thì bạn có thể thực hiện công việc rất dễ dàng bằng cách chọn Insert ActiveX Control và chọn Calendar Control. Nếu không, bạn có thể mở NotePad để bổ sung điều khiển này vào như sau :


QUOTE
<html>

<font face=".vnTime"><b>

Day la dieu khien lich Calendar Control:

</b></font>

<p>

<object classid="CLSID: 8E27C92B-1264-101C-8A2F-040224009C02" width="288" height="192">

</html>



Thẻ <HTML> báo cho trình duyệt đây là trang HTML, còn thẻ <OBJECT> nhập ActiveX của chúng ta. Sau đó hãy ghi lại với tên Vidu.htm và xem bằng trình duyệt của bạn.

Ví dụ trên cho thấy rõ về ClassID (lớp đối tượng), thông số quan trọng của mỗi ActiveX Control và cách thức hoạt động của nó khi ta xem một trang Web. Mỗi ActiveX Control có một mã số ClassID riêng đặc trưng cho nó. Thông số này được lưu trong Registry của Windows. Khi chạy một chương trình hoặc xem trang Web có chứa điều khiển ActiveX thì Windows sẽ kiểm tra trong Registry để nạp chính xác ActiveX cần thiết vào bộ nhớ. Bạn có thể lo rằng khi máy tính của bạn không có một điều khiển ActiveX nào đó thì nó sẽ không vận hành được. Điều này không đúng vì khi mở một trang Web, trình duyệt sẽ kiểm tra xem máy tính của bạn có điều khiển đó hay chưa, nếu chưa thì nó sẽ nạp về và tự động đăng ký với Windows. Các điều khiển ActiveX nạp về thường được lưu trong thư mục Downloaded Program của thư mục Windows. Nếu có nhiều trang Web cùng sử dụng một điều khiển nào đó thì điều khiển này chỉ được nạp về một lần duy nhất và dùng cho mọi trang.

Việc kết hợp ActiveX (AX) vào các trang Web đã mở rộng khả năng cho người lập trình. Với AcrtiveX, trang Web trở nên tinh vi và đa năng hơn nhiều so với trang Web không sử dụng ActiveX. ActiveX cho khả năng xây dựng những trang Web chuyên nghiệp một cách không hạn chế. Tuy nhiên, nó cũng có thể bị lợi dụng để phá hoại hệ thống. Các trình duyệt có cơ chế bảo mật để phòng ngừa vấn đề đó.

Một ActiveX muốn được phổ biến rộng rãi cần phải có chữ ký điện tử (digital signing). Chữ ký điện tử chỉ nhằm mục đích chỉ ra nguồn gốc của ActiveX mà thôi. Khi duyệt Internet, nếu bạn xem một trang có chứa ActiveX thì sẽ được cảnh báo và phải quyết định xem có nạp điều khiển đó về máy tính của mình hay không. Nếu ActiveX đó có chữ ký điện tử thì các thông tin về tác giả của nó sẽ được hiển thị và bạn có thể an tâm nạp về làm việc. Nếu không thì bạn không nên nạp về, trừ khi biết chắc chắn ActiveX đó hoàn toàn an toàn. Nếu bạn xây dựng được một ActiveX và muốn sử dụng nó trong Web Site của mình, bạn nên đăng ký để có được chữ ký điện tử cho ActiveX này. ActiveX là đối tượng COM và có thể được xây dựng từ nhiều ngôn ngữ lập trình khác nhau, thường dùng nhất là Visual C++ hoặc VB5.

Tóm lại, ActiveX rất phong phú, thuận tiện cho người sử dụng và lập trình khai thác.