全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1293
推到 Plurk!
推到 Facebook!

關於 密碼對話框 ?

答題得分者是:Justmade
jasonchen613
初階會員


發表:67
回覆:75
積分:28
註冊:2003-03-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-29 13:26:53 IP:61.13.xxx.xxx 未訂閱
Justmade 大大 你之前 曾有教過我 作一個簡單的密碼對話框 但是其中的一個步驟 我不太懂耶 就是以下被標上**的步驟 : 1. 做一新專案 (Project1, Form1) 2. File->New->Form (Form2) 3. 在 Form2 放入一個 TEdit (Edit1) 4. 在 Form2 放兩個 TButtons , Button1 Caption 確定, Button2 Caption 取消) 5. Button2 的 ModelResult 設定為 mrCancel 6. Button1.OnClick 事件加入 if Edit1.text='pass' then ModalResult : =mrokelse else ModalResult := mrCancel; *7. 回到 Form1, Use Unit2* *8. 在 Form1 的 OnShow 事件加入* procedure TForm1.FormShow(Sender: TObject); begin with TForm2.Create(Self) do begin try if ShowModal <> mrok then Application.Terminate; finally Free; end; end; 9. Run 所謂回到FORM1, USE UNIT2 這裡的UNIT2是在FORM2下啊為什麼還要回FORM1啊 另外 在 Form1 的 OnShow事件加入 procedure TForm1.FormShow(Sender: TObject); 其中 TFORM1.FormShow 如何叫出啊 在form1 你沒有這段程式碼啊 SORRY 我是個初學者 請各位大大幫幫忙 多謝
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-29 13:48:05 IP:218.16.xxx.xxx 未訂閱
7. 回到 Form1, Use Unit2 一個 Unit 要使用/呼叫另一個 Unit 就要定要 use 那個 unit。 你在 Form1 的畫面可按 : File->Use Unit 然後選好 Form2 後按 OK    8. 在 Form1 的 OnShow 事件加入 在 Form1 裡按一下沒其他元件的空白地方 在 Object Inspector : a. 確認現正顯示 Form1 的資料 b. 按 Events 頁 c. 在 onShow 一行雙按 空白那裡 會轉到 Code Editor 並顯示
procedure TForm1.FormShow(Sender: TObject);
begin     end;
最後,將這段程式貼在 begin 與 end 之間貼上
  with TForm2.Create(Self) do 
  try 
    if ShowModal <> mrok then 
      Application.Terminate; 
  finally 
    Free; 
  end;
這樣就可以了。
jasonchen613
初階會員


發表:67
回覆:75
積分:28
註冊:2003-03-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-30 09:56:21 IP:61.16.xxx.xxx 未訂閱
SORRY JUSTMADE 大大 我按照了你的步驟去做已可以成功的RUN了 但 如果在 EDIT 內輸入 pass 他並沒有切換到 FORM1 他還是停留在FORM2 茹過不是輸入 pass 他則是 跳出程式 這樣子因該是還有問題吧 SORRY 麻煩你 在一次的幫幫我 多謝 以下是我的程式碼 分別為 (Unit1,Project1,Unit2): Unit1 : unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2; {$R *.DFM} procedure TForm1.FormShow(Sender: TObject); begin with TForm2.Create(Self) do try if ShowModal <> mrok then Application.Terminate; finally Free; end; end; end. Project1 : program Project1; uses Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.Run; end. Unit2 : unit Unit2; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) Edit1: TEdit; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation uses Unit1; {$R *.DFM} procedure TForm2.Button1Click(Sender: TObject); begin if Edit1.text='pass'then ModalResult:=mrok else ModalResult:=mrCancel; end; end.
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-30 11:30:25 IP:61.217.xxx.xxx 未訂閱
hi...jasonchen613 把procedure TForm1.FormShow(Sender: TObject) 改寫到procedure TForm1.FormActivate(Sender: TObject) 裡面.. TRY TRY SEE
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-30 12:15:33 IP:218.16.xxx.xxx 未訂閱
Project->Options->Forms 將 Form2 從 Auto-create Form 移到 Available Form 。 因為若在 Auto-create Form 裡,程式開始時會幫你自動 create Form2 (a),而在 Form1.FormShow 又再 create 一個 Form2 (b) 。當輸入 pass 後,(b) 關掉了但 a 還在,所以好像沒關掉似的。不 auto-create 後,便不會這樣了。
jasonchen613
初階會員


發表:67
回覆:75
積分:28
註冊:2003-03-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-30 12:23:20 IP:61.16.xxx.xxx 未訂閱
多謝 各位大大的幫忙 總算 OK LA 不過我想再問一個問題 問題一 : 怎麼樣把輸入EDIT 內的字 變成 ****啊 (如輸入PASS 他在 EDIT 內的顯示是 ****) 問題二 : 可不可以寫出一個可以更改密碼的程式啊 有就是說一開始輸入的密碼是 PASS 進入主程式後 在主程式中可以變更使用者密碼 變更成新密碼後 下次輸入就必須以新密碼輸入 (這個問題比較沒關西,主要的是第一個問題) 再一次拜託各位大大幫幫忙啦 ! 多謝
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-30 12:26:55 IP:61.217.xxx.xxx 未訂閱
問題一:Edit有一各PasswordChar裡面打*就可以了.. 問題二:你可能要設一各Table去紀錄密碼.. TRY TRY SEE 發表人 - chih 於 2003/03/30 12:32:34
jasonchen613
初階會員


發表:67
回覆:75
積分:28
註冊:2003-03-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-30 12:44:02 IP:61.16.xxx.xxx 未訂閱
真是太謝謝您了 不過我最後想在多加問一個問題 就是 我能不能在一開始的EDIT內 顯示'請輸入密碼'啊 (再還為輸入任何字時 在EDIT內顯示的是****, 試問能不能讓它顯示的是 '請輸入密碼'啊 ?) 拜托各位大大幫幫我了 在此獻上無限的感激啊
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-30 12:49:12 IP:61.217.xxx.xxx 未訂閱
'請輸入密碼'..可以用一各Label顯示在畫面上就可以了阿
jasonchen613
初階會員


發表:67
回覆:75
積分:28
註冊:2003-03-25

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-03-30 12:57:16 IP:61.16.xxx.xxx 未訂閱
OK 多謝啦 不過 很抱歉 最後我想在多問一個問題就是 當我在EDIT內輸入完PASS後 能不能直接按 Enter鍵 啊 (也就是說不用按"確定:的BOTTON 直接按ENTER鍵) 拜託拜託 幫我最後一個忙 太感謝您了
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-03-30 13:05:12 IP:218.16.xxx.xxx 未訂閱
你的最後 "一" 個問題真多 
jasonchen613
初階會員


發表:67
回覆:75
積分:28
註冊:2003-03-25

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-03-30 13:26:32 IP:61.16.xxx.xxx 未訂閱
多謝 各位大大的熱心當忙 小弟對密碼對話框的問題已經 解決了 之前翻了好幾本DELPHI的書我都找不到關於 密碼對話框的資料 沒想到在這裡留了言後 竟然 找出答案了 最令人感動的是 JUSTMADE大大 和 CHIH 大大 不厭其煩的幫忙我 我真的是十分的感動啊 所以在此特別銘謝這兩位大大的熱情幫助 不過由於分數只能給一位 我就給了幫我較多忙的JUSTMADE大大 在此跟CHIH說聲抱歉 真的很感激各位大大的幫助 多謝啦 ! 
系統時間:2024-05-16 0:18:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!