看執行個體學VFP:制作系統登入表單時間:2009-03-05 www.bianceng.cn 老馬
本例制作一個簡單的登入表單,系統運作時首先啟動此登入表單,運作界面如下圖:
輸入正确的使用者名及密碼才會啟動主表單,如下圖;若連續3次輸入錯誤的使用者名及密碼則會自動退出。
制作步驟如下:
一、建立表單,将表單的caption屬性值設定為“系統登入”,ShowWindow屬性值設定為“2-作為頂層表單”,width屬性值設定為295,height屬性值設定為100,AutoCenter屬性值設定為,并将表單儲存為“系統登入.scx”。
二、繼續設定該表單的屬性:将表單的MaxButton及MinButton屬性值均設定為.f.,這樣就屏蔽掉了表單的最大化和最小化按鈕,成為隻有一個關閉按鈕的對話框。
三、向表單添加兩個label控件,将它們的caption屬性值分别設定為“使用者名”和“密 碼”。
四、向表單添加兩個文本框控件,并将其中的Text2的PasswordChar屬性值設定為“*”。
五、向表單添加兩個指令按鈕command1和command2,将它們的caption屬性值分别設定為“确定”和“退出”。
六、适當調整各控件在表單上的位置及大小,調整後的表單設計器如下圖:
七、右擊表單空白處,選“資料環境”指令,将“管理”表添加到表單的資料環境中。
八、添加事件代碼:
(一)表單的init事件代碼:
public cn &&聲明全局變量,用于計算登入次數
cn=0
(二) 表單的unload事件:
close all
clear events
quit
(三)接收使用者名的文本框Text1的KeyPress事件代碼:
LPARAMETERS nKeyCode, nShiftAltCtrl
if nKeyCode=13.and.!empty(this.value) &&輸入使用者名後按回車即進入輸密碼
thisform.Text2.enabled=.t.
thisform.Text2.setfocus
endif(四)“确定”按鈕command1的click事件代碼:
cname=alltrim(thisform.text1.value)
ppassword=alltrim(thisform.text2.value)
cn=cn+1
if cn=3
thisform.release
endif
set exact on
go top
locate for 操作員姓名=cname.and.密碼=ppassword
if eof()
messagebox('使用者名或密碼錯誤,請重新輸入!','系統提示')
return
else
thisform.visible=.f.
do form 主表單 &&調入主界面表單
endif
set exact off &&設定字元非精确比較(五)“退出”按鈕command2的click事件代碼:thisform.release
九、運作“系統登入.scx”即可,在看執行個體學VFP:示例資料庫一文中已經給出了“管理.dbf”的結構,其中預置的兩個操作員的使用者名及密碼分别是:
使用者名 密碼
張三 12345678
李四 aaaaaaaa
本例代碼在Win2003+VFP6.0環境下調試通過。