奇怪的问题!(50分)

F

fossick

Unregistered / Unconfirmed
GUEST, unregistred user!
请各位看看以下程序为什么在退出的时候要等一段时间窗口才会关闭?
程序一共两个窗口,一个主窗口,一个密码输入窗口,在主窗口显示前调用密码输入窗口
,来输入用户名和密码。
主窗口程序
var
id:Boolean;
Procedure TForm1.FormShow(Sender:Tobject);
begin
Form2:=TForm2.Create(Application);
Form2.ShowModal;
If Not(id) then
Applicaiton.Terminate;
end;
密码输入程序
Procedure TForm2.FormClose(Sender:Tobject;Var Action:TCloseAction);
begin
Action:=CaFree;
Form2:=nil;
end;
Procedure TForm2.CancelButtonClick(Sender:Tobject);
begin
Form1.id:=False;
Close;
end;
 
var
id:Boolean;
Procedure TForm1.FormShow(Sender:Tobject);
begin
Form2:=TForm2.Create(Application);
Form2.ShowModal;
If Not(id) then
Applicaiton.Terminate;
end;
密码输入程序
Procedure TForm2.FormClose(Sender:Tobject;Var Action:TCloseAction);
begin
Action:=CaFree;
Form2:=nil;
Form1.id:=True;
//Added
end;
Procedure TForm2.CancelButtonClick(Sender:Tobject);
begin
Form1.id:=False;
Close;
 
???????????
什么意思?
 
Form1.id:=True;
//Added
fossick,老兄,怎么混的
 
为什么要增加
Form1.id:=True;
增加了以后,退出的时候一样很慢啊?要等一段时间,我认为和增加Form1.id:=True 没有
关系吧?
现在程序按取消后可以退出,但要等一段时间!
 
没问题啊
 
我单独实验这些代码退出时也很正常,但在我的程序里就不行,可我在程序退出的时候就只
做了以上的操作,在退出时没有执行其他的代码啊,不知道为什么?
 
大家能不能介绍以下其他可以为程序添加密码输入窗口的例子,可以让程序在启动前,先
验证用户及密码。
 
给你一段我写的代码(主程序运行前有一个闪屏和登录窗口):
program MainProject;
uses
Forms,
MainUnit in 'MainUnit.pas' {MainForm},
FlashUnit in 'FlashUnit.pas' {FlashForm},
EnterDoor in 'EnterDoor.pas' {PasswordDlg},
{$R *.res}
begin
Application.Initialize;
FlashForm:=TFlashForm.Create(Application);
//闪屏
FlashForm.Show;
FlashForm.Update;
while FlashForm.tmMainTimer.Enabled do
Application.ProcessMessages;
FlashForm.Hide;
FlashForm.Free;
PasswordDlg:=TPasswordDlg.Create(Application);
//登录窗口
PasswordDlg.Show;
PasswordDlg.Update;
while PasswordDlg.Active do
Application.ProcessMessages;
PasswordDlg.Close;
PasswordDlg.Free;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.
 
多人接受答案了。
 
顶部