Logo of Vovisoft

Làm thế nào để tạo một OCX control trong VB ?

Ðể đọc và hiểu bài viết này bạn phải học Visual Basic ít nhất vài tháng và hiểu khá rõ về cách sử dụng những intrinsic control (Command Button, ListBox...) cũng như những ActiveX controls(Listview, Treeview...). Nếu bạn đã học Visual Basic hơn 6 tháng và cảm thấy rất tự tin về khả năng lập trình của mình thì hãy đọc tiếp vì bài này không phải viết dành cho người mới bắt đầu học VB.

Như bạn đã biết, VB cho phép chúng ta viết các ứng dụng trên Windows dễ dàng nhờ các Controls có sẵn nằm trên toolbox. Có 2 loại controls là Intrinsic control( hay Built-in control) và ActiveX control. Intrinsic control là những control xuất hiện khi ta mở một standard Exe project, các control này đã có từ các version trước đây của VB. Còn ActiveX control là những control được xây dựng trên công nghệ ActiveX của Microsoft chúng ta có thể dễ dàng thấy chúng khi mở một VB Professional( hay Enterprise) Edition Control project. Ðó là những control như Listview, Treeview, Progressbar.... Các ActiveX control có extension là ".OCX" nên còn được gọi là OCX control.

Tuy có khá nhiều ActiveX controls đi chung với VB Professional version nhưng đôi khi các control đó không đủ các tính năng mà ta cần do đó VB cho phép ta tạo ra các custom control hay user control hay third-party control để thực hiện các chức năng mà ta muốn. Nếu bạn thấy hứng thú xin mời đọc tiếp. Ðây là bài đầu tiên trong loạt bài về ActiveX control nên chúng tôi sẽ cố gắng giải thích cũng như cung cấp những kiến thức căn bản về cách tạo một ActiveX control trong VB như thế nào.

khái niệm cần biết về ActiveX control

Có 3 loại ActiveX control chúng ta có thể tạo ra trong VB:

ActiveX control tương tự như Class ở chỗ nó có các Properties, Methods, Events nhưng khác ở chỗ nó có Graphical User Interface(giao diện với người sử dụng) mà Class thường không có. Bạn sẽ thấy ở một góc độ nào đó ActiveX control lại rất giống với Form control vì ta có thể thiết kế mọi thứ trên đó như đang thiết kế trên một form. Nhưng điểm khác nhau là ở chỗ nó không thể chạy được nếu không nằm trên một container nào đó. Container đó không nhất định là một Form mà còn có thể là Internet Explorer.

Khi bạn viết một chương trình trong VB tiến trình thiết kế thường diễn ra như sau: đặt các control lên trên form, viết code, cho chạy thử sau đó trở về thiết kế tiếp và lặp lại chu trình trên cho đến khi hoàn thành. Chúng ta có thể tóm tắt chu trình trên bằng hình vẽ sau:



Trong tiến trình trên chúng ta có thể đặt các ActiveX control lên form. Do đó một ActiveX control hoạt động ở 2 dạng (2 modes of operation):

Hãy thử hình dung một người programmer sử dụng control do ta thiết kế vào một ứng dụng nào đó. Khi anh ta đặt control lên form thì lúc đó control của chúng ta đang chạy ở Design-time mode của người programmer đó, còn khi chạy ứng dụng trên thì control của chúng ta đang chạy ở Run-time mode của anh ta. Xin nhấn mạnh ở đây là control của chúng ta luôn luôn đang chạy (at run-time mode) cho dù anh ta đang ở design hay run time mode chỉ có khác là behavior của cái control ở mỗi mode có thể khác nhau. Khi thiết kế một ActiveX control bạn phải luôn hiểu rõ điều này. Nói một cách khác bạn phải luôn nhớ rằng khi thiết kế ActiveX control ta luôn có 2 user đó là anh programmer và người user thật sự sử dụng ứng dụng do anh ta viết (end user) . Vì thế bạn sẽ là bên thứ ba (Third-party)



Tạo một control đơn giản dùng ActiveX Control Interface Wizard. 

  Học Microsoft Visual Basic 6.0