關於 密碼對話框 ? |
答題得分者是:Justmade
|
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
jasonchen613
初階會員 發表:67 回覆:75 積分:28 註冊:2003-03-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |