Tải bản đầy đủ (.doc) (2 trang)

Tài liệu Tạo OCX control trong VB docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (44.16 KB, 2 trang )

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:
• Loại tự thiết kế (User-drawn control): đây là loại control mà ta phải
thiết kế từ đầu đến đuôi. Chúng ta phải kiểm soát và chịu trách nhiệm
mọi hoạt động cũng như hình dáng của nó. Loại control này khó thực
hiện nhất vì tính phức tạp của nó.
• Loại control cải tiến (Enhancing existing control): Ðây là loại control
được cải tiến từ một control có sẵn trong VB và ta chỉ việc thừa kế phần
lớn các tính năng của control đó sau đó thêm các chứa năng mà control


nguyên thủy không có( Ví dụ như làm một Listbox có thanh kéo nằm
ngang (horizontal scroll bar). Ðây là loại dễ làm nhất.
• Loại control được xây dựng từ một số control có sẵn (Building with
constituent control): loại này có thể sử dụng các tính năng của các
control thành phần và đôi khi có chức năng tổng hợp mà các control
thành phần không có khi đứng một mình.
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):
• Design-Time behavior
• Run-Time behavior
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 .

×