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

Một phần của tài liệu Lap trinh Visual Basic can ban phan4 (Trang 32 - 38)

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)

Thiết lập hàm mới bằng ngôn ngữ lập trình WINDOWS (Visual Basic for Application)

Visual Basic căn bản

Ngôn ngữ lập trình Windows Visual Basic là một trong những ngôn ngữ hiện đại nhất hiện nay. Đặc tính cơ bản là hướng đối tượng (Visual) nghĩa là người lập trình chỉ việc thao tác muốn công việc diễn ra như thế nào, Visual Basic sẽ tự viết cho ta phần lập trình.

Visual Basic được bắt đầu hình thành và phát triển từ Windows 3.XX chủ yếu là hỗ trợ chương trình EXCEL. Các chương trình khác chạy trong Windows như WORD, ACCESS lại có ngôn ngữ riêng như WORD BASIC, ACCESS BASIC... nói chung là họ Basic trong Windows. Ngoài ra Microsoft còn cung cấp thêm bộ chương trình Visual Basic riêng để lập trình móc nối. Khai thác Visual Basic sẽ khám phá ra rất nhiều những đặc tính tuyệt vời. Và càng tuyệt vời hơn khi Windows 95 và Windows 98 đã được Microsoft hỗ trợ Visual Basic trong toàn bộ các ứng dụng Windows: WINWORD, EXCEL, ACCESS. Ta đều có thể lập trình bằng Visual Basic thiết kế hàm và lệnh con mới cho chính cả 3 môi trường trên.

Có nhiều cách để đạt mục đích, tất nhiên làm tất cả mọi việc riêng cho mình từ đầu đến cuối cũng là điều tốt. Nhưng trước mắt có lẽ nhanh chóng và hợp lý hơn cả là ta tận dụng ngay các chương trình và thuật toán hiện đại nhất thế giới của Microsoft trong EXCEL để phục vụ cho công việc của mình, đồng thời có thể góp phần xây dựng bổ sung thêm những gì cho mình bằng chính Visual Basic.

Bạn có thể tham khảo các tài liệu về Visual Basic, phần dưới đây được lược soạn từ bản dịch Visual Basic For Application của Trung tâm Tin học ABC. Bạn có thể đọc chi tiết ở những trang chi tiết.

*Để thiết lập hàm mới bằng Visual Basic ta làm các bước sau: Gõ Alt + F11. Insert Module (Mô đun)

Hiện ra cửa sổ soạn thảo để ta đánh.

*Dòng 1 nếu không có ta đánh vào dòng:

Option Explicit

Dùng để báo cho Visual Basic biết là các biến sử dụng phải được khai báo. Các dòng tiếp theo:

FUNCTION Tên_hàm (Danh_sách_các_biến_truyền As Kiểu_biến) As Kiểu_biến_trả_về_của_hàm.

DIM Tên_biến_ghi_kết_quả (As Kiểu_biến) DIM Tên_các_biến_sử_dụng (As Kiểu_biến)

Nói riêng về biến:

Biến là một vùng các ô nhớ trong RAM ta phải đặt tên để tránh nhầm lẫn khi dùng đến nó. Tại một thời điểm trong biến chỉ có một giá trị, nếu biến không được truyền vào thì giá trị của biến ban đầu là không có gì hoặc là 0.

Trong quá trình lập trình muốn đặt vào biến một giá trị ta dùng công thức: Tên_biến = Giá trị cần đặt.

Ví dụ: Đặt biến NHIETDO bằng 100 độ. Thì dùng: NHIETDO = 100

Muốn thêm giá trị vào biến thì ta dùng công thức: Tên_biến = Tên_biến + Giá_trị_thêm

Ví dụ: Tăng biến NHIETDO thêm 50 độ nữa.

NHIETDO = NHIETDO +50

Có thể sử dụng phương pháp đặt giá trị mới của biến này thông qua một biến khác bằng cách sử dụng công thức:

Biến_cần_đặt_mới = Biến_căn_cứ (phép_tính với biến)

Ví dụ đặt biến NHIETDO luôn lớn hơn biến NHIETDO_NGOAITROI 10 độ. NHIETDO = NHIETDO_NGOAITROI + 10

Lúc này giá trị của biến đã là giá trị mới. Giá trị cũ của biến bị xoá đi.

Nếu muốn ghi lại giá trị cũ ta phải dùng một biến khác để ghi lại, sau đó đến khi nào cần sử dụng giá trị cũ thì trả lại

Ví dụ: Đưa vào biến ghi lại giá trị của biến nhiệt độ lúc 10 giờ. LUC10GIO = NHIETDO

...

Các phần lập trình khác ...

(Trả lại giá trị của biến NHIETDO bằng giá trị đã ghi lại để phục vụ cho phần tính toán tiếp theo.)

NHIETDO = LUC10GIO

Bình thường ta không cần đánh thêm as Kiểu biến khi đó tốc độ xử lý của máy sẽ chậm nếu những hàm phức tạp. Ta đánh thêm as Kiểu biến để tăng tốc độ xử lý.

- Nếu biến là các số nguyên chọn Kiểu_biến là Integer - Nếu biến là chuỗi ký tự chọn Kiểu_biến là String - Nếu biến là ngày tháng chọn Kiểu_biến là Date

- Nếu biến chỉ có một trong 2 giá trị chọn kiểu biến là Boolean - Có thể không đặt kiểu biến với những trường hợp khác.

Tất nhiên không chỉ có từng ấy kiểu biến! Bạn có thể tham khảo để rõ hơn. Sau đó tiến hành tính toán và gán giá trị cho các biến, tùy theo từng trường hợp mà ghi vào biến kết quả. Có thể dùng cấu trúc phân nhánh như IF THEN ELSE SELECT CASE, cấu trúc vòng lặp như DO WHILE , FOR NEXT , FOR EACH IN để đặt điều kiện đưa vào biến cần ghi Kết quả. Không nên dùng thẳng luôn tên hàm dễ gây nhầm lẫn.

Dòng cuối cùng thường gán: Tên_hàm = Biến_ghi_kết_quả END FUNCTION

Khi thiết kế trong Visual Basic người ta phải sử dụng dữ liệu kiểu Anh Mỹ. Tức là dùng dấu chấm thay cho dấy phảy.

Hàm TODAY() của EXCEL thì trong Visual Basic được thay bằng Date.

Hàm MOD, AND, OR của EXCEL thì trong Visual Basic thay bằng phép tính MOD, AND, OR.

Ví dụ: Thiết kê hàm CANHHUYEN để tính cạnh huyền khi đã biết 2 cạnh góc vuông.

(Ta biết công thức Pitago (cạnh huyền)^2 = (Cạnh 1)^2 + (Cạnh 2)^2) FUNCTION CANHHUYEN (CANH1, CANH2)

DIM BINHPHUONG_C_HUYEN, KQ

BINHPHUONG_C_HUYEN = CANH1^2 + CANH2^2 Kq = BINHPHUONG_C_HUYEN ^(1/2)

CANHHUYEN = Kq END FUNCTION

Ví dụ 2: Thiết kế hàm có tên là THAMNIEN sao cho khi thi hành ta chỉ việc gõ

= THAMNIEN (E5) (E5 là ô ghi ngày thoát ly công tác) là biết được thâm niên người đó tính đến ngày hôm nay.

Option explicit

Function THAMNIEN (NgayTL as Date) as Integer Dim SoNgay, KetQua

Songay = DATE - NgayTL

KetQua = INT (Songay/365.25) THAMNIEN = KetQua

End Function

Một phần của tài liệu Lap trinh Visual Basic can ban phan4 (Trang 32 - 38)

Tải bản đầy đủ (DOC)

(48 trang)
w