本例制作一個簡單的登錄表單,系統(tǒng)運行時首先啟動此登錄表單,運行界面如下圖:
輸入正確的用戶名及密碼才會啟動主表單,如下圖;若連續(xù)3次輸入錯誤的用戶名及密碼則會自動退出。
制作步驟如下:
一、新建表單,將表單的caption屬性值設(shè)置為“系統(tǒng)登錄”,ShowWindow屬性值設(shè)置為“2-作為頂層表單”,width屬性值設(shè)置為295,height屬性值設(shè)置為100,AutoCenter屬性值設(shè)置為,并將表單保存為“系統(tǒng)登錄.scx”。
二、繼續(xù)設(shè)置該表單的屬性:將表單的MaxButton及MinButton屬性值均設(shè)置為.f.,這樣就屏蔽掉了表單的最大化和最小化按鈕,成為只有一個關(guān)閉按鈕的對話框。
三、向表單添加兩個label控件,將它們的caption屬性值分別設(shè)置為“用戶名”和“密 碼”。
四、向表單添加兩個文本框控件,并將其中的Text2的PasswordChar屬性值設(shè)置為“*”。
五、向表單添加兩個命令按鈕command1和command2,將它們的caption屬性值分別設(shè)置為“確定”和“退出”。
六、適當調(diào)整各控件在表單上的位置及大小,調(diào)整后的表單設(shè)計器如下圖:
七、右擊表單空白處,選“數(shù)據(jù)環(huán)境”命令,將“管理”表添加到表單的數(shù)據(jù)環(huán)境中。
八、添加事件代碼:
(一)表單的init事件代碼:
public cn &&聲明全局變量,用于計算登錄次數(shù)
cn=0
(二) 表單的unload事件:
close all
clear events
quit
(三)接收用戶名的文本框Text1的KeyPress事件代碼:
LPARAMETERS nKeyCode, nShiftAltCtrlif nKeyCode=13.and.!empty(this.value) &&輸入用戶名后按回車即進入輸密碼thisform.Text2.enabled=.t.thisform.Text2.setfocusendif
(四)“確定”按鈕command1的click事件代碼:
cname=alltrim(thisform.text1.value)ppassword=alltrim(thisform.text2.value)cn=cn+1if cn=3thisform.releaseendifset exact ongo toplocate for 操作員姓名=cname.and.密碼=ppasswordif eof()messagebox('用戶名或密碼錯誤,請重新輸入!','系統(tǒng)提示')returnelsethisform.visible=.f.do form 主表單 &&調(diào)入主界面表單endifset exact off &&設(shè)置字符非精確比較
(五)“退出”按鈕command2的click事件代碼:thisform.release
九、運行“系統(tǒng)登錄.scx”即可,在看實例學VFP:示例數(shù)據(jù)庫一文中已經(jīng)給出了“管理.dbf”的結(jié)構(gòu),其中預置的兩個操作員的用戶名及密碼分別是:
用戶名 | 密碼 |
張三 | 12345678 |
李四 | aaaaaaaa |
本例代碼在Win2003+VFP6.0環(huán)境下調(diào)試通過。