Visual Foxpro - Bài 8: Thiết kế Form
Lập trình trên Windows có nhiều khác biệt so với lập trình trên DOS (như lập trình bằng PASCAL), các điểm khác biệt chính là: Sử dụng nhiều đối tượng trực quan trong thiết kế giao diện; Logic chương trình diễn ra theo sự kiện .
Đối tượng (điều khiển - Control): Các công cụ lập trình trên Windows thường cung cấp sẵn các đối tượng điều kiển như: Cửa sổ (FORM), Nút lệnh (Command Button), Ô text (Textbox), Lưới (GRID) . và nhiều đối tượng điều khiển khác thường dùng cho việc thiết kế giao diện.
ụng phương thức Refresh để làm tươi dữ liệu, phương thức Move để di chuyển vị trí ... Các phương thức được thiết lập sẵn nhằm thực thi một công việc cụ thể. II. thiết kế form 1. Tạo mới một FORM sử dụng Wizard Các bước thực hiện Mở Project cần làm, trong Project Manager chọn Tab Documents Chọn Form Chọn New Chọn Form Wizard, khi đó giao diện chọn kiểu Form Wizard xuất hiện như hình sau: Chọn kiểu Form Wizard: Form Wizard - Tạo Form từ một bảng đơn, hoặc One-To-Many Form Wizard - Tạo Form từ 2 bảng có quan hệ (1-nhiều) với nhau. Ví dụ 1: Tạo Form từ bảng đơn - Form cập nhật danh mục khoá (DMKHOA) Bước 0 - Bước 5 ở trên chọn Form Wizard, chọn OK Step 1 - Select Fields: Chọn Database, Tables và Fields (Sử dụng lệnh >, >> để chọn các trường cần thiết), Trong ví dụ này chọn bảng DMKHOA, chọn tất cả các trường. Khi đã chọn xong các trường, chọn Next để qua bước 2. Step 2 - Choose Form Style: Chọn kiểu form, kiểu nút lệnh Style: Kiểu Form. Khi chọn một kiểu nào đó, phần ảnh bên trái hiển thị dạng form tương ứng với kiểu đó. Button type: Kiểu nút lệnh. Text - Nút lệnh dạng chữ (Text), Picture - Nút lệnh dạng ảnh, No button - Không có button. Custom - Tuỳ chọn. Nên chọn là Text hoặc Picture. Chọn Next để tiếp tục Step 3 - Sort Records Chọn trường để sắp xếp: Chọn1 trong các trường để sắp xếp hoặc có thể bỏ qua. Step 4 - Finish Nhập vào tiêu đề cho form rồi chọn Finish. Tiếp đến nhập vào tên form rồi chọn Save để ghi lại. Ví dụ 2: Tạo Form từ 2 bảng - Form cập nhật danh mục Lớp (DMLOP) Bước 0 - Bước 5 ở trên chọn One-To-Many Form Wizard, chọn OK Step 1 - Select Parent Table Fields: Chọn trường cho bảng cha, rồi chọn Next. (Trong ví dụ này chúng ta dùng 2 bảng là DMKHOA - bảng cha, và DMLOP - bảng con). Step 2 - Select Child Table Fields: Chọn trường cho bảng con, chọn Next để tiếp tục. Step 3 - Relate Tables: Xác định quan hệ giữa 2 bảng, trường hợp đã thiết lập quan hệ bền vững giữa các bảng thì quan hệ này sẽ được xác lập ngay (như hình vẽ). Chọn Next để tiếp tục. Step 4 - Choose Form Style : Chọn kiểu Form, Chọn Next để tiếp tục (xem phần trước). Step 5 - Sort Records: Chọn trường để sắp xếp. Chọn Next để tiếp tục (xem phần trước). Step 6 - Finish: Kết thúc (xem phần trước). 2. Tạo mới một FORM sử dụng Form Designer Các bước thực hiện Mở Project cần làm, trong Project Manager chọn Tab Documents. Chọn Form Chọn New Chọn New Form. Khi đó giao diện Form Designer xuất hiện như hình sau: Trong đó: Phía trên là thanh toolbar Form Designer, bên phải là thanh toolbar Form Controls. Chúng ta sẽ tìm hiểu các chức năng này trong các phần sau. Một số thuộc tính của FORM Form là đối tượng quan trọng trong thiết kế giao diện trên WIndows, cũng như các đối tượng khác Form có các thuộc tính riêng của nó. Có hai cách để thiết lập các thuộc tính của form: 1. là sử dụng cửa sổ Properties và 2. là sử dụng lệnh để thiết lập (có những thuộc tính chỉ cho phép thiết lập ở chế độ thứ 2). Hiển thị cửa sổ Properties: Kích phải chuột vào phần nền của Form đang thiết kế, khi đó một Pop-up menu xuất hiện và ta chọn chức năng Properties. Pop-up menu và cửa sổ Properties xuất hiện như hình sau: Sau đây chúng ta tìm hiểu một số thuộc tính thông dụng của Form. AlwaysOnTop: Ngăn cản các cửa sổ khác đè lên. Thuộc tính này có thể nhận 1 trong hai giá trị là: (1) .T. - Form luôn nằm trên đối tượng khác; (2) .F. - Cửa sổ khác có thể đè lên (mặc định). AutoCenter: Chỉ ra khi xuất hiện vị trí của Form có ở giữa màn hình hay không. Thuộc tính này có thể nhận 1 trong 2 giá trị: (1) .T. - Form tự động được canh giữa; (2) .F. - Vị trí của Form phụ thuộc vào thuộc tính Top, Left (mặc định). BackColor: Mầu nền của Form. Trong khi thiết kế có thể dùng hộp mầu để chọn hoặc khi chạy chương trình có thể sử dụng hàm RBG() để xác định mầu. BorderStyle: Dạng đường viền của Form. Thuộc tính này có thể nhận một trong các giá trị: (1) 0 - Không có đường viền (No Border); (2) 1 - Dạng đơn, cố định (Fixed Single); (3) 2 - Theo dạng cửa sổ hộp thoại (Fixed Dialog); (4) 3 - Có thể thay đổi kích thước (Sizable - Mặc định). Caption: Tiêu đề của Form. Thuộc tính này nhận giá trị là một xâu kí tự, mặc định caption là tên form. Closable: Cho phép sử dụng lệnh Close trong hộp Control - menu hoặc nút Close góc trên bên phải form. Thuộc tính này có thể nhận các giá trị: (1) .T. - Cho phép đóng cửa sổ bằng lệnh Close (Mặc định); (2) .F. - Không cho phép sử dụng lệnh Close. ControlBox: Hiển thị hoặc không hộp Control menu box góc trên bên trái form. Thuộc tính này nhận các giá trị: (1) .T. - Hiển thị contrrol menu box; (2) - Không hiển thị control menu box. Enabled: Cho phép có hiệu lực hay vô hiệu khả năng đáp ứng sự kiện của các control trên form (và cả form). Thuộc tính này nhận các giá trị: (1) .T. - có hiệu lực; (2) .F. - Vô hiệu lực. FontName: Xác định font chữ dùng để hiển thị các đối tượng text trên form. Khi thiết kế có thể dùng hộp thoại chọn forn để chọn các font chữ hiện có trong máy tính. Trong chương trình thuộc tính này nhận xâu text thể hiện tên của font chữ nào đó, ví dụ “.vnTime”, “.vnArial”. FontSize: Kích thước font chữ. Height: Chiều cao form. Left: Vị trí cạnh trái của form Maxbutton, MinButton: Hiển thị hay không các nút lệnh Maximize, Minimize. Thuộc tính này nhận các giá trị: (1) .T. - Hiển thị (mặc định); (2) .F. Không hiển thị. Name: Tên (định danh) Form, Tên form là xâu kí tự không chứa dấu cách, và ký tự đặc biệt. Top: Vị trí cạnh trên của Form. Width: Độ rộng của form. WindowState: Xác định trạng thái form khi chạy. Thuộc tính này có thể nhận các giá trị: (1) 0 - Bình thường (Normal), tức là vị trí, kích thước của form như thiết kế (mặc định); (2) 1 - Thu thành biểu tượng trên task bar (Minimize); (3) 2 - Phóng to hết cỡ màn hình (Maximize). Một số tình huống (Event) thường dùng của Form Activate: Tình huống này sảy ra khi form được “kích hoạt” (active). Ví dụ: Khi kích hoạt form DMKHOA (đã tạo bằng Form Wizard trước đó) cần đưa về bản ghi (khoá) cuối cùng. Cách thực hiện: Trong cửa sổ Project Manager chọn mục Documents. Chọn mục Form và mở rộng. Chọn form DMKHOA Chọn Modify, khi đó giao diện Form Designer xuất hiện Trong Form Designer nháy đúp chuột trái vào nền Form, khi đó giao diện lập trình trong form xuất hiện như hình sau: Object: hiển thị tên đối tượng (trong tình huống này là Form1 - Tên của form DMHANG). Kích chuột trái vào mũi tên xuống (bên cạnh) để chọn Object nếu cần. Procedure: Hiện thị tình huống (event) có thể đáp ứng của đối tượng (Objêct) đã chọn ở ô bên cạnh. Kích chuột trái vào mũi tên xuống (bên cạnh) để chọn tình huống nếu cần, trong ví dụ này tình huống cần chọn là Activate. Viết lệnh: Khi đã chọn đúng đối tượng và tình huống cần thiết thì cửa sổ bên dưới cho phép soạn thảo lệnh nhằm đáp ứng tình huống đặt ra. Trong ví dụ này chúng ta cần đưa về bản ghi cuối nên nhập vào lệnh: thisform.butTONSET1.cmdEnd.click Trong đó: Thisform: là tên thay thế của form hiện thời butTONSET1: Tên lớp chứa các nút lệnh cmdEnd: Tên nút lệnh Buttom Click: Tình huống click của đối tượng cmdEnd Click: Tình huống này sảy ra khi người sử dụng click phím trái chuột trên form. Ví dụ khi click chuột trái lên form DMKHOA -> Hiển thị thông báo “Ban vua click chuot trai len form!”. Thực hiện tương tự như trên nhưng chọn Event là click và viết lệnh: MESSAGEBOX("Ban vua click chuot trai tren form!") Dbclick: Tình huống này sảy ra khi người sử dụng nháy đúp chuột trái trên form. Ví dụ khi Dbclick chuột trái lên form DMKHOA -> Hiển thị thông báo “Ban vua Double click chuot trai len form!”. Thực hiện tương tự như trên nhưng chọn Event là Dbclick và viết lệnh: MESSAGEBOX("Ban vua Double click chuot trai tren form!") Deactivate: Tình huống này sảy ra khi form bị thôi kích hoạt (ngược với kích hoạt). Ví dụ hiển thị một thông báo khi thôi kích hoạt 1 form. Destroy: Tình huống này sảy ra khi form được hủy bỏ (destroy). Ví dụ: Hiển thị thông báo “Destroy” khi tình huống này xảy ra. Thực hiện tương tự như trên nhưng chọn Event là Destroy và viết lệnh: MESSAGEBOX("Destroy!") Init: Tình huống này sảy ra khi form được khởi tạo. Ví dụ: Hiển thị thông báo “Init” khi tình huống này xảy ra. Thực hiện tương tự như trên nhưng chọn Event là Init và viết lệnh: MESSAGEBOX("Init!") Load: Tình huống này sảy ra trước khi form được khởi tạo. Ví dụ: Hiển thị thông báo “Load” khi tình huống này xảy ra. Thực hiện tương tự như trên nhưng chọn Event là Destroy và viết lệnh: MESSAGEBOX("Load!") Một số phương thức (Methods) thường dùng của Form Circle(r, x,y): Cho phép vẽ lên form 1 vòng tròn bán kính r, tâm tại x,y. Cls: Xóa sạch nền form. Hide: ẩn form Line(x1,y1,x2,y2): Vẽ đoạn thẳng từ x1,y1 đến x2,y2 Point(x,y): Trả về số hiệu mầu tại điểm x,y Print(cText): In một dòng text ra màn hình Pset(x,y): Vẽ điểm x,y Release: Xóa form hiện thời. Show: Hiển thị form. 3. Thi hành (chạy) một FORM Thực thi một Form bằng 1 trong hai cách: Cách 1: Từ cửa sổ Project Manager, chọn Documents, chọn Form rồi chọn Form cần thi hành rồi nhấn Run. Cách 2: Thực hiện qua lệnh Do FORM như sau: DO FORM III. Các thành phần liên quan đến công cụ form designer 1. Thanh công cụ Color Palette (Tự tìm hiểu) 2. Thanh công cụ Layout (Tự tìm hiểu) 3. Thanh công cụ Toolbar (Tự tìm hiểu) 4. Data Environment Data Environment là đối tượng dùng để chứa các bảng dữ liệu hay View mà form cần sử dụng. Data Environment tự động mở các bảng và view khi Form được khởi động và cũng tự đóng chúng khi kết thúc làm việc với form. Sử dụng Data Environment giúp chúng ta dễ dàng thiết kế các giao diện với bảng hoặc view. Thiết lập Data Environment: Mở Form cần làm việc ở chế độ Form Designer Trong Menu View chọn mục Data Environment ... khi đó giao diện Data Environment xuất hiện như hình sau: Click chuột phải lên vùng trống trong Data Environment rồi chọn lệnh Add để thêm các bảng, view vào Data Environment. Bài tập Bước đầu thiết kế các form nhập liệu như đã nêu trong bài tập môn học - bài 1.
File đính kèm:
- Visual Foxpro - Bài 8 Thiết kế Form.doc