Lập trình FORM

Màu nền
Font chữ
Font size
Chiều cao dòng

CHƯƠNG 5: FORMS

5.1. KHÁI NIỆM VỀ LẬP TRÌNH HƯỚNG ĐỐ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 theo 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 với chức năng riêng của nó. Mỗi một đối tượ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 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:

True: Thấy được đối tượng;

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

- Change: Được gọi khi có sự thay đổi nội dung dữ liệu kiểu chuỗi của đối tượng.

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

- Load: Đáp ứng khi nạp form vào bộ nhớ

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.

b. Command Bottom: Dùng để thể hiện các nút lệnh trên form.

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.

e. Images: Dùng để đưa các hình ảnh trên form.

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.

5.4. Ví dụ

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 dữ liệu của bảng trên.

Ta thiết kế Form như sau:

Các thuộc tính chính :

+ TxtMANV các thuộc tính ControlSource là MANV

+ TxtHOTEN các thuộc tính ControlSource là HOTEN

Mã lệnh của các đối tượng trên Form là:

+ FrmXem.load

use hoso

+ CmdDau.Click

thisform.refresh

+ CmdCuoi.Click

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

Bạn đang đọc truyện trên: Truyen2U.Pro