登入介面 |
尚未結案
|
smallmi
一般會員 ![]() ![]() 發表:18 回覆:18 積分:7 註冊:2012-09-02 發送簡訊給我 |
目前做一個使用者登入畫面, 我現有兩個Form,一個loginForm,一個是MainForm,打開程式,會先出現loginForm,要求使用者輸入密碼,正確後才會出現MainForm,出現MainForm之後,loginForm關閉,目前以下做法:
在MainForm FormShow的地方寫 [code delphi] frmLogin.ShowModal; [/code] 在loginForm登入的Button的地方寫 [code delphi] procedure TfrmLogin.BOKClick(Sender: TObject); begin Q1.SQL.Clear; Q1.SQL.Add('SELECT * FROM USID WHERE USER_ID=''' Edtid.TEXT ''' AND USER_PSW=''' Edtpass.TEXT ''''); Q1.Open; If Q1.IsEmpty Then begin ShowMessage('帳號或密碼錯誤,請重新輸入'); Q1.Close; Exit; End else begin frmLogin.Close; form8.Show; End; end; [/code] 目前遇到的問提是,輸入正確之後,loginFrom直接關閉也沒有出現MainFrom,請各位指導,請問哪裡有誤,謝謝. |
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
第一種方式
你可以反向思考, mainform 不是 mainform, loginform 才是mainform 也就是把 loginform當成mainform, 如果通過密碼才打開所謂的 "mainform", 然後順勢把 loginform hide起來就好了, 相信這種做法應該是你可以理解的 第二種方式 通常 mainform 在 O n Create 的情況下是不建議做一些互動模式的設計, 要等form開完再來做, 我們都會利用 form 的 onidle 特性來達成 在 privatye 中加入一個proceure private .... procedure StartRun(Sender: Tobject; var Done: boolean); .... implementation procedure TMainForm.FormCreate(Sender: TObject); begin ... Application.OnIdle := StartRun; end; procedure TMainform.StartRun(Sender: Tobject; var Done: boolean); var xhandle: longInt; begin xhandle:= FindWindow('TMainform',nil); if xhandle = 0 then exit; Application.ProcessMessages; Application.OnIdle:= nil; Done:= True; 開啟你的 loginform, 如果認證失敗就直接把 Mainform.Close掉(可下 Application.Terminate) , 通過的話, 就繼續往下跑 end; |
smallmi
一般會員 ![]() ![]() 發表:18 回覆:18 積分:7 註冊:2012-09-02 發送簡訊給我 |
|
P.D.
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
foxelf
初階會員 ![]() ![]() 發表:9 回覆:42 積分:30 註冊:2003-03-05 發送簡訊給我 |
LoginForm Close之後會執行Form8.Show ?
你可以先把LoginForm隱藏起來然後再呼叫MainForm ===================引 用 smallmi 文 章=================== 目前做一個使用者登入畫面, 我現有兩個Form,一個loginForm,一個是MainForm,打開程式,會先出現loginForm,要求使用者輸入密碼,正確後才會出現MainForm,出現MainForm之後,loginForm關閉,目前以下做法: 在MainForm FormShow的地方寫 [code delphi] frmLogin.ShowModal; [/code] 在loginForm登入的Button的地方寫 [code delphi] procedure TfrmLogin.BOKClick(Sender: TObject); begin Q1.SQL.Clear; Q1.SQL.Add('SELECT * FROM USID WHERE USER_ID=''' Edtid.TEXT ''' AND USER_PSW=''' Edtpass.TEXT ''''); Q1.Open; If Q1.IsEmpty Then begin ShowMessage('帳號或密碼錯誤,請重新輸入'); Q1.Close; Exit; End else begin frmLogin.Close; form8.Show; End; end; [/code] 目前遇到的問提是,輸入正確之後,loginFrom直接關閉也沒有出現MainFrom,請各位指導,請問哪裡有誤,謝謝. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |