Bài 09 - s d ng các control
ử ụ
I. gi i thi u ớ ệ
• Các đ i t c s d ng trong vi c thi ố ượ ng đi u khi n (Control) đ ể ề ượ ử ụ ệ ế ế ệ t k giao di n
trên Form, Report, Label (Trong bài này chúng ta ch xét đ n các Control dùng ế ỉ
c thi FORM và các control. trên FORM). Ví d giao di n sau đ ụ ệ ượ t k t ế ế ừ
Hình 1
• M i lo i đ i t ng th ng đ c thi ạ ố ượ ỗ ườ ượ ế ế ụ ố t k cho m t m c đích nh t đ nh. Ví d đ i ấ ị ụ ộ
ng Label (nhãn) đ ng TextBox đ t ượ ượ c dùng đ hi n th m t chú thích, đ i t ị ộ ể ể ố ượ ượ c
dùng đ cho phép nh p li u, đ i t ng Command Button đ th hi n các nút ố ượ ể ệ ậ ể ệ ể
i dùng có th s d ng v i m c đích khác. l nh... Tuy nhiên ng ệ ườ ể ử ụ ụ ớ
• Các Control đ c xác đ nh qua các Properties (thu c tính), Methods (Ph ượ ị ộ ngươ
th c) và Events (s ki n - t ng t nh FORM). ứ ự ệ ươ ự ư
t k (Form • Thanh công c ụ Form Controls: Khi đang m Form ở ở ch đ thi ế ộ ế ế
Designer), Visual Foxpro hi n th thanh công c Form Controls nh hình sau: ụ ư ể ị
Có th hi n th / n Form Control b ng cách trong menu ể ể ị ẩ ằ View ch n ọ Form Control
Toolbar
• Đ a m t Control vào Form : T thanh công c Form Controls “nh p” đ i t ư ộ ố ượ ng ừ ụ ấ
c n dùng và “th ” vào Form. Ví d ả ầ ụ
II. Các đ i t ng th ng dùng ố ượ ườ
1. Label:
• S d ng cho: hi n th nhãn, chú thích, ví d ử ụ ể ị ọ ụ các ô text sau các label Khóa, L p, H c ớ
kỳ, Năm h cọ ... trong Hình 1 đ ượ c dùng đ nh p khóa, l p, h c kỳ và năm h c. ớ ể ậ ọ ọ
• Các Properties th ng dùng: ườ
ph n text hi n th c a label. Thu c tính này có th ề ị ủ ể ầ ộ ể 1) Alignment: Canh l
nh n các giá tr : (1) 0 - Left Canh trái, đây là giá tr m c đ nh; (2) 1-Right ị ặ ậ ị ị
Canh ph i; (3) 2 - Center canh gi a. ữ ả
c phù h p cho vi c hi n th thu c tính ự ộ ổ ướ ệ ể ợ ộ ị 2) Autosize: T đ ng thay đ i kích th
Caption c a nó. ủ
ủ ặ ầ ế ế ộ t k có th dùng h p ể 3) BackColor: Đ t m u n n c a Label. Trong khi thi ề
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. ầ ị
t l p tính ch t n n. Thu c tính này có th nh n m t trong ế ậ ấ ề ể ậ ộ ộ 4) BackStyle: Thi
các giá tr : (1) 0 - Transparent xác đ nh tính ch t trong su t c a n n (có ị ố ủ ề ấ ị
ng “phía sau”); (2) 1 - Opaque không cho quan sát th nhìn th y m i đ i t ấ ọ ố ượ ể
các đ i t ng phía sau. ố ượ
t k p thu c tính biên c a đ i t ng. Thu c tính này có ế ậ ố ượ ủ ộ ộ 5) BorderStyle: Thi
th nh n các giá tr : 0 (none) - Không có đ ng biên; 1 (Fixed single) - ể ậ ị ườ
Đ ng biên đ n. ườ ơ
ư ộ ể ậ ộ ị ỗ 6) Caption: Text hi n th nh m t nhãn, chú thích. Thu c tính này nh n chu i
text b t kỳ. ấ
ặ 7) FontName: Đ t Font ch . ữ
ữ ặ ế ế ọ t k có th dùng h p m u đ ch n ể ể ầ ộ 8) ForeColor: Đ t m u ch . Trong khi thi ầ
ho c khi ch y ch ng trình có th s d ng hàm RBG() đ xác đ nh. ặ ạ ươ ể ử ụ ể ị
ề 9) Height: Chi u cao
Left: V trí c nh trái ạ ị 10)
Name: Tên c a đ i t ng trình) ố ượ ủ ng (dùng đ s d ng trong ch ể ử ụ ươ 11)
Top: V trí c nh trên ạ ị 12)
Visible: Thi ế ậ t l p tính ch t Hi n/ n. Thu c tính này nh n 2 giá tr : (1) ộ ệ ẩ ấ ậ ị 13)
.T. - Hi n ; (2) .F. - n. ệ ẩ
Width: Đ r ng c a label. ộ ộ ủ 14)
• Label cũng có nhi u Methods và Events, tuy nhiên vì m c đích c a đ i t ng này là ố ượ ụ ủ ề
hi n th m t đo n text nên trong ph n này không gi i thi u các methods và events ị ộ ể ạ ầ ớ ệ
này.
2. TextBox, EditBox
• S d ng cho: Nh p m t dòng text, các s , ví d ộ ử ụ ậ ố ụ các nhãn Khóa, L p, H c kỳ, Năm ớ ọ
c dùng làm tiêu đ cho các ô d li u bên c nh. h cọ ... trong Hình 1 đ ượ ữ ệ ề ạ
• Các Properties th ng dùng: ườ
ầ 1) Alignment: Xem ph n II.1
ầ 2) BackColor: Xem ph n II.1
ầ 3) BackStyle: Xem ph n II.1
ầ 4) BorderColor: Xem ph n II.1
ầ 5) BorderStyle: Xem ph n II.1
ế ớ ườ ế ng ho c bi n ặ 6) ControlSource: Cho phép “g n k t” (bound) textbox v i 1 tr ắ
nào đó (thông th ng). Vi c “G n k t” đây đ ườ ng v i 1 tr ớ ườ ế ở ệ ắ ượ ế c hi u là n u ể
text trên textbox thay đ i thì tr ổ ườ ng ho c bi n “g n k t” v i nó cũng thay ế ế ặ ắ ớ
đ i theo. Ví d , thêm 1 textbox vào form và đ t thu c tính ụ ổ ặ ộ
controlSource=”Hososv.hoten” ->Run Form.
ề ầ ộ 7) DisabledBackColor: M u n n c a textbox khi thu c tính Enable=.F. ủ
ầ ộ 8) DisabledForeColor: M u c a text khi thu c tính Enable=.F. ủ
ệ ự ự ệ ứ ệ ả ủ 9) Enabled: Cho phép có hi u l c hay vô hi u kh năng đáp ng s ki n c a
textbox. Thu c tính này nh n các giá tr : .T. - có hi u l c; .F. - Vô hi u l c ệ ự ệ ự ậ ộ ị
FontName: Xem ph n II.1 ầ 10)
ForeColor: Xem ph n II.1 ầ 11)
Format: Đ nh d ng d li u hi n th . Visual Foxpro qui đ nh kí hi u s ị ữ ệ ể ệ ạ ị ị ử 12)
d ng cho Format c a textbox (tham kh o trong help c a Visual Foxpro 9 ụ ủ ủ ả
(Microsoft Visual Foxpro 9.0/Reference/Language Reference/Properties/
ậ Format Property). Ví d đ t Format là !A (! - Hi n th ch hoa, A - Ch nh p ụ ặ ữ ể ị ỉ
các ký t )ự
Height: Xem ph n II.1 ầ 13)
ệ InputMask: Đ nh d ng d li u nh p. Visual Foxpro qui đ nh kí hi u ậ ữ ệ ạ ị ị 14)
s d ng cho InputMask c a textbox (tham kh o trong help c a Visual ử ụ ủ ủ ả
Foxpro 9 (Microsoft Visual Foxpro 9.0/Reference/Language
Reference/Properties/ InputMask Property). Ví d đ t InputMask là ### (# - ụ ặ
nh p ch s ) cho phép nh p 3 ch s . ữ ố ữ ố ậ ậ
Left: Xem ph n II.1 ầ 15)
MaxLength: S ký t i đa có th nh p (n u MaxLength=0 thì s ký ố t ự ố ể ế ậ ố 16)
là b t kỳ, đây là giá tr m c đ nh). t ự ị ặ ấ ị
SelectOnEntry: Thi t l p ch đ đánh d u text khi đ i t ng này ế ậ ế ộ ố ượ ấ 17)
nh n quy n đi u khi n. Thu c tính này nh n các giá tr : .T. - Cho phép ch ề ề ể ậ ậ ộ ị ế
đ đánh d u; .F. Không cho phép. ấ ộ
TabIndex: Th t theo Index c a đ i t ng (khi s d ng phím Tab ứ ự ố ượ ủ ử ụ 18)
con tr s di chuy n theo th t Index t ỏ ẽ ứ ự ể ừ ấ th p đ n cao) ế
Top: Xem ph n II.1 ầ 19)
Value: Giá tr là xâu text hi n th trên đ i t ng này. ố ượ ể ị ị 20)
Visible: Xem ph n II.1 ầ 21)
Width: Xem ph n II.1 ầ 22)
• Các Methods và Event th ng dùng: ườ
i” l ươ ạ ữ ệ ộ i d li u hi n th trên textbox. Ví d , đ t thu c ụ ặ ể ị 1) Refresh (method): “Làm t
tính ControlSource = text1 (text1 là 1 bi n), sau đó gán cho text1 =”Visual ế
i d li u trên Text. i l Foxpro”, khi đó c n th c hi n Refresh đ làm t ự ệ ể ầ ươ ạ ữ ệ
ng này. ỏ ế ố ượ ư 2) SetFocus (method): Đ a con tr đ n đ i t
c khi chuy n quy n đi u khi n t ự ệ ả ướ ể ề ề ể ớ ố i đ i 3) Valid (Event): S ki n này s y ra tr
t ượ ng khác. Vì lý do nh v y nên s ki n này th ư ậ ự ệ ườ ng dùng đ ki m tra tính ể ể
h p l thì có th yêu c u ng ợ ệ ủ c a d li u, n u không h p l ế ữ ệ ợ ệ ể ầ ườ ử ụ ậ i s d ng nh p
i.ạ l
Ví d 1: Trong hình 1, xét ô text h c kỳ. Ta có h c kỳ ch nh n 2 giá tr là 1 ho c 2, đ ụ ậ ặ ọ ọ ỉ ị ể
đ m b o yêu c u này chúng ta s vi t đo n l nh đáp ng s ki n ẽ ế ả ả ầ ự ệ valid đ ki m. ạ ệ ể ể ứ
Giá thi c thi t l p các thu c tính ế ậ ộ
khi đó s ki n c vi t textbox đ ượ ế Name = hocky Maxlength=1 ự ệ hocky.valid đ ượ ế t nh sau: ư
hk=this.value IF !hk$"1;2" then
WAIT WINDOW "Gia tri khong dung! Hoc ky = 1 hoac 2" NOWAIT RETURN 0
ENDIF
Ví d 2: Trong hình 1, xét ô text khóa. Ta th y các khóa nh p vào ụ ấ ậ ở đây ph i n m trong ả ằ
DMKHOA thì m i có nghĩa -> Vi ớ ế ự ệ t s ki n valid đ ki m tra tính h p l ể ể ợ ệ này c a ô text ủ
khóa.
Giá thi t l p các thu c tính c thi ế ậ ộ
khi đó s ki n c vi t textbox đ ượ ế Name = Khoa Maxlength=10 ự ệ Khoa.valid đ ượ ế t nh sau: ư
khoahoc=this.Value SELECT dmkhoa LOCATE FOR (ma=khoahoc) IF FOUND() THEN thisform.lblTenKhoa.Caption=dmkhoa.ten ELSE IF !EMPTY(khoahoc) THEN
WAIT WINDOW "Ma khoa khong dung!!" NOWAIT RETURN 0 ELSE thisform.lblTenKhoa.Caption="" ENDIF
ENDIF
• Đ i t ng EditBox t ng đ i gi ng TextBox (khác bi ố ượ ươ ố ố ệ ạ t ch y u là cho phép so n ủ ế
text trên nhi u dòng) các b n t ạ ự ề tìm hi u thêm. ể
3. Command Button
• S d ng cho: T o các nút l nh. Ví d nh các nút l nh T o BC, To Excel, Xem in ... ử ụ ụ ư ệ ệ ạ ạ
trong hình 1.
• Các Properties th ng dùng: Trong ph n này ch gi i thi u m t s thu c tính khác so ườ ỉ ớ ầ ộ ố ệ ộ
i thi u các đ i t ng trên. v i các thu c tính đã gi ộ ớ ớ ệ ở ố ượ
ư ủ ể ệ ớ ị 1) Caption: Text hi n th nh tên (khác v i name) c a nút l nh.
ữ 2) FontName: Font ch cho caption.
ộ ả ệ 3) Picture: Cho phép đ a m t nh vào nút l nh. ư
i nút l nh. ỏ ớ ư ặ ệ 4) ToolTipText: Đ t dòng text (tooltip) khi đ a con tr t
• Các Methods và Events th ng dùng: ườ
i s d ng click chu t trái vào nút ả ườ ử ụ ộ 1) Click (Event): S ki n này s y ra khi ng ự ệ
c thi l nh (nút l nh đ ệ ệ ượ ế ế t k chính đ đáp ng s ki n này). ứ ự ệ ể
t l p các thu c tính: Ví d 1: Thêm vào form nút l nh “Thoát” đ đóng form, thi ệ ụ ể ế ậ ộ
Caption=Thoát
Name=cmdThoat
Khi đó d ki n c vi ự ệ cmdThoat.Click đ ượ ế t nh sau: ư
IF MESSAGEBOX("Dong form nay lai?",4+32)=6 THEN thisform.Release
ENDIF
Ví d 2: T o form DMKHOA cho phép c p nh t danh m c khóa. Thêm vào Form các nút ụ ụ ạ ậ ậ
c”, “Sau” và “Cu i” đ di chuy n con tr b n ghi c a b ng DMKHOA l nh “Đ u”, “Tr ầ ệ ướ ỏ ả ủ ể ể ả ố
v b n ghi đ u, b n ghi tr ầ ề ả ả ướ c, b n ghi ti p và b n ghi cu i. ố ế ả ả
L n l t đ t tên cho các nút l nh đó là cmdDau, cmdTruoc, cmdSau và cmdCuoi, láy ví ầ ượ ặ ệ
d .ụ
S a l ử ạ ệ i ch c năng trong các nút l nh sao cho khi chuy n đ n b n ghi đ u thì nút l nh ứ ệ ể ế ả ầ
“Đ u”, “Tr c” s disable, khi chuy n đ n b n ghi cu i thì các nút l nh “Sau”, “Cu i” s ầ ướ ệ ế ẽ ể ả ố ố ẽ
disable.
4. OptionGroup Box
• S d ng cho: L a ch n m t trong nhi u kh năng. ử ụ ự ề ả ộ ọ
• Các Properties th ng dùng: ườ
c c a đ i t ự ộ ổ ướ ố ượ ủ ầ ng cho phù h p (ph n ợ 1) AutoSize: T đ ng thay đ i kích th
thi t k ). Thu c tính này nh n các giá tr .T. và .F. ế ế ậ ộ ị
ố ọ 2) ButtonCount:S các tùy ch n
m c ch n. ị ả ề ủ ố ứ ự ụ ọ ị 3) Value: Giá t tr v c a option, giá tr này là s th t
Khi thi ế ế ấ t k , có th thay đ i m t s thu c tính khác c a OptionGroup b ng cách nh p ộ ố ủ ể ằ ổ ộ
Builder.. chu t ph i vào đ i t ả ố ượ ộ ng, ti p đ n chon ế ế
Vì đây là m t d ng container nên đ thay đ i các thu c tính các đ i t ộ ạ ố ượ ể ộ ổ ủ ng con c a
nó b ng cách: nh p chu t ph i vào đ i t ố ượ ấ ả ằ ộ ng, ti p đ n ch n ế ọ Edit... ế
• Các Methods và Events th ng dùng: Không có methods, ho c event nào đ t bi ườ ặ ặ ệ t
nên không gi i thi u đây. ớ ệ ở
Ví d : ụ
5. CheckBox
• S d ng cho: L a ch n m t trong 2 kh năng. ọ ử ụ ự ả ộ
• Các Properties th ng dùng: ườ
ng ể ệ ố ượ ủ ầ 1) Caption: Th hi n ph n text c a đ i t
ặ ặ ị ị 2) Value: Checked - Giá tr 1 ho c .T.; Unchecked - Giá tr 0 ho c .F.
• Các Methods và Events th ng dùng: ườ
i s d ng click chu t trái vào check ả ườ ử ụ ộ 1) Click (Event): S ki n này s y ra khi ng ự ệ
box.
c checked - Ví d : Gi ụ ả ử s dùng check box đ hi n th thông tin v gi ể ể ề ớ ị i tính v i qui ớ ướ
Nam, và Unchecked là n .ữ
c vi Khi đó s ki n click đ ự ệ ượ ế t nh sau: ư
IF this.Value THEN this.Caption="Nam" ELSE this.Caption="N÷" ENDIF
6. Combo Box
7. List Box
8. Grid
9. Image
10. Timer
11. Page Frame
Bài t Pậ