11.1. 5.1. KHÁI NIM V LP TRÌNH HNG đ!I T"NG:
Thiết kế và lập trình hướng ựối tượng là một sự thay ựổi ựối với phong cách lập trình cũ, lập trình hướng thủ tục.Ở ựây thay vì nghĩ ựến các chức năng của chương trình ta chỉ cần nghĩ ựến các ựối tượng ựang tạo: là các thành phần ựộc lập của một ứng dụng cới chức năng riêng của nó. Mỗi một ựối tuợng ựều có một bộ thuộc tắnh mô tả ựối tượng; các phương thức là những ựoạn trình chứa trong ựiều khiển, cho ựiều khiển biết cách thức ựể thực hiện một ựoạn công việc nào ựó; và tập hợp những sự kiện ựó là những phản ứng của ựối tượng.
Trong Visual Foxpro, các form và control là các ựối tượng ựược dùng ựể xây dựng các ứng dụng
5.1.1. Thuộc tắnh của ựối tượng (Properties)
để chỉ ựến một thuộc tắnh của ựối tượng nào ta dùng cú pháp sau: <tên ựối tượng>.<thuộc tắnh> Vắ dụ: Myform.caption= ỘChương trình ứng dụngỢ Các thuộc tắnh thông dụng:
- Left: Vị trắ cạnh trái của ựối tượng so với vật chứa nó. - Top: Vị trắ trên của ựối tượng so với vật chứa nó. - Height: Chiều cao của ựối tượng.
- Width: Chiều rộng của ựối tượng. - Name: Tên ựể chỉ ựối tượng. - Enable: Giá trị logic:
True: có quyền làm việc.
False: Không có quyền làm việc. - Visible: Giá trị logic:
False: Không thấy ựược ựối tượng. 5.1.2. Phương thức của ựối tượng (Methods)
để gọi ựến phương thức của một ựối tượng, ta dùng cú pháp: <tên ựối tượng>.<phương thức>
Vắ dụ: Myform.show
Một số phương thức thường dùng: - Refresh: Làm tươi lại ựối tượng. - Show: Hiện ựối tượng.
- Hide: ẩn ựối tượng.
- Release: Giải phóng ựối tượng.
- SetFocus: Thiết lập Ộtầm ngắmỢ cho ựối tượng. 5.1.3. Sự kiện của ựối tượng
để chỉ ựến sự kiện của ựối tượng, ta dùng cú pháp sau: <tên ựối tượng>.<sự kiện>
Một số sự kiện thường dùng:
- Click: được gọi khi kắch chuột vào ựối tượng.
- DbClick: được gọi khi kắch ựúp chuột vào ựối tượng.
- MouseMove: được gọi khi di chuyển chuột trên bề mặt của ựối tượng. - KeyPress: được gọi khi nhấn một phắm kắch chuột vào ựối tượng.
- Got focus: được gọi khi ựưa ựối tượng vào tầm ngắm. - Lostfocus: được gọi khi ựưa ựối tượng ra khỏi tầm ngắm
11.2. 5.2. FORM
5.2.1. Giới thiệu
Form ựược dùng ựể làm giao diện nhập, hiển thị thông tin, nó cung cấp một tập hợp các ựối tượng ựể ựáp lại những thao tác của người dùng làm cho ứng dụng ra dáng chuyên nghiệp.
Vắ dụ: Giao diện của một Form nhập dữ liệu 5.2.2. Tạo form thông qua Wizard
Từ menu Tools, chọn wizard, chọn form, xuất hiện giao diện wizard selection, rồi thông qua hướng dẫn.
5.2.3. Tạo form thông qua thiết kế để tạo form thông qua thiết kế, từ cửa sổ lệnh ta thực hiện lệnh sau:
CREATE FORM <tên form> Khi ựó ta ựược màn hình thiết kế form như sau:
a. Quản lý form
Lưu Form: Từ menu file,
chọn save ựể lưu vào <tên form>, mặc ựịnh phần mở rộng là scx. Chạy form: Từ cửa sổ lệnh, thực hiện lệnh sau:
DO FORM <tên form>
đóng form (giải phóng khỏi bộ nhớ) RELEASE <tên form>
b. Tuy cập ựến các ựối tượng trên form
+ Muốn chỉ ựến một ựối tượng nào trên form, ta dùng:
<tên form>. <ựối tượng>: nếu <ựối tượng> không cùng với form ựang thao tác. <this form>.<ựối tượng>: nếu ựối tượng nằm trên form ựang thao tác.
+ Muốn thay ựổi giá trị các thuộc tắnh trên form, ta dùng:
<tên form>.<thuộc tắnh>= <giá trị>: nếu muốn thay ựổi thuộc tắnh của form không phải là form hiện hành.
<This form>.<thuộc tắnh>=<giá trị>: nếu muốn thay ựổi các thuộc tắnh của form hiện hành.
c. Các thuộc tắnh, phương thức, sự kiện thường dùng trên form.
Thuộc tắnh:
- BackColor: Màu nền
- BorderStyle: Dạng ựường viền - Caption: Tiêu ựề của form - FillColor: Màu ựể tô ựối tượng
- Fontname: Font chữ cho các ựối tượng chứa văn bản - Fontsize: Kắnh thước fontname
- Moveable: Cho phép di chuyển hay không ...
Tình huống
- MoveMouse: đáp ứng khi di chuyển chuột trên bề mặt form - Destroy: đáp ứng khi giải phóng form
5.3. Thanh công cụ Control Toolbar
Muốn ựưa ựối tượng trên thanh Control vào form: 4 bước - Kắch chuột vào ựối tượng cần ựưa
- Vẽ nó trên form ựể xác ựịnh vị trắ - Thiết lập các thuộc tắnh thắch hợp
- Viết mã lệnh cho các tình huống tương ứng Quy ước ựặt tên cho các ựối tượng
Loại ựối tượng Tên
Form Bắt ựầu bởi Frm
Command Bắt ựầu bởi cmd
Edit box Bắt ựầu bởi Edb
Grid Bắt ựầu bởi Grd
Image Bắt ựầu bởi Img
Label Bắt ựầu bởi Lbl
Textbox Bắt ựầu bởi Txt
Timer Bắt ựầu bởi Tmr
5.3.2. Một số ựối tượng trên Controls
a. Label : Dùng ựể thể hiện các chuỗi trên form. Các thuộc tắnh thường dùng:
- Caption: Chuỗi thể hiện
- Autosize: Giá trị logic, cho phép kắch thước của Label có tự ựộng chỉnh sửa theo ựộ dài của caption hay không.
Các thuộc tắnh thường dùng:
- Caption: tên xuất hiện trên nút lệnh - Picture: Hình xuất hiện trên nút lệnh
- Enable: giá trị Logic, cho phép chọn nút lệnh hay không Các Sự kiện thường dùng:
- Click: Khi kắch chuột vào nút lệnh thì sự kiện này ựược gọi.
c. TextBox: Dùng ựể xem, chỉnh sửa dữ liệu từ các trường trong bảng dữ liệu không phải kiểu memo.
Các thuộc tắnh thường dùng.
- ControlSource: Tên của trường hay biến mà giá trị của nó ựược hiện trong textbox
- Value: Giá trị hiện thời của textbox. Sự kiện thường dùng:
- Change: Khi có sự thay ựổi của thuộc tắnh value - KeyPress: Khi có phắm bất kỳ ựược ấn.
d. Editbox: Tương tự như textbox, ựược dùng ựể chỉnh sửa dữ liệu từ các trường memo. Các thuộc tắnh thường dùng.
- Control Source: Tên của trường mà giá trị của nó ựược thể hiện trong editbox. - ScrollBars: Có hiện thanh cuộn trong khung editbox hay không.
- ReadOnly: Cho phép có ựược chỉnh sửa nội dung hay không Sự kiện thường dùng:
- Change: Khi có sự thay ựổi của thuộc tắnh value. - Keypress: Khi có phắm bất kỳ ựược ấn.
Các thuộc tắnh thường dùng.
- Picture: Xác ựịnh file hình ảnh
- Stretch: Xác ựịnh cách thức thể hiện hình ảnh (phóng to, thu nhỏ, nguyên mẫu). f. Timer: Dùng ựể thiết lập các công việc thực hiện ựều ựặn sau một khoảng thời gian.
Các thuộc tắnh thường dùng.
- Enabled: Xác ựịnh xem Timer có hiệu lực hay không
- Interval: Quy ựịnh khoảng thời gian xác ựịnh cho tình huống timer. Sự kiện thường dùng:
- Timer: được kắch hoạt ựều ựặn sau một khoảng thời gian xác ựịnh ở thuộc tắnh Interval.
g. Grid: Dùng ựể thể hiện dữ liệu theo dạng bảng. Các thuộc tắnh thường dùng.
- Row Source: Xác ựịnh bảng dữ liệu cần thể hiện. - ColumnCount: Xác ựịnh số cột của Grid.
Chú ý:
Nếu Row Source không ựược chỉ ra thì lấy bảng dữ liệu hiện hành.
Nếu Column count không chỉ ra thì mặc ựịnh là tất cả các trường trong bảng dữ liệu (Column count=-1).
Control Source: được xác ựịnh cho từng cột, dùng ựể khai báo nguốn dữ liệu cho cột ựó.
- Allow Addnew: Cho phép thêm các bản ghi mới hay không. Chú ý:
Muốn thay ựổi các thuộc tắnh trên Grid thì chuyển Grid sang dạng edit bằng cách nhấn phắm phải chuột lên Rrid, chọn Properties. Grid ựang ở chế ựộ Edit có một ựường viền bao quanh.
Giả sử có bảng dữ liệu với cấu trúc:
MANV C 5
HOTEN C 30
Hãy thiết kế form ựẻ xem bảng dữ liệu trên.
Ta thiết kế form như sau
13. Các thuộc tắnh chắnh :
14. + TxtMANV các thuộc tắnh ControlSource là MANV
15. + TxtHOTEN các thuộc tắnh ControlSource là HOTEN
16. Mã lệnh của các ựối tượng trên Form là: + FrmXem.load use hoso + CmdDau.Click go top TxtMAN V TxtHOTE N CmdDa u CmdTruo c
CmdSau CmdCuoi CmdThoa
t FrmXem
thisform.refresh + CmdCuoi.Click go bottom thisform.refresh + CmdTruoc.Click if not bof() skip -1 endif thisform.refresh + CmdSau.Click if not eof() skip endif thisform.refresh + CmdThoat.Click use thisform.release