小弟在做东西的时候,想做一个登录窗体,在点击确定后登录框消失,主窗体显示出了,我用了form1.hide;form2.show;但是关闭form2之后form1还是在内存中存在,在windows的任务管理器中还可以看到工程还在运行,在form2中怎么才能使工程结束,请大家帮帮忙,解决就给分
解决方案 »
- DELPHI怎样模拟c++来创建窗口
- SQL语句效率问题
- 通过MyODBC+ADO+MySQL查询速度慢的问题,请大家帮忙解决!!!
- 急求即时通讯服务端和客户端完整源码
- 用ADOQuery连接access,多表更新的问题!高分求助!
- !急,Ehlib里的Footer栏汇总问题。。。
- 怎么读取ini文件中的多行数据?
- 请教:VCL中一个BUTTON被按下之后,消息是如何被分发传递的?
- !!!!关于sybase的问题,请进!!!!
- ******oracle新手请教用户名和密码是那些,送分******
- 那有delphi的源码,界面优秀的
- 高分:利用扩展存储过程master..xp_cmdshell进行数据导入导出的问题
......
Try
Form1:=TForm1.Create(Application);
L:=Form1.ShowModal=1;
//
Finally
If Assigned(Form1) then Form1.Free;
End;
//停止
If Not L then Application.Halt;
//继续显示2
Form2.Show;
begin
if not assigned(FormLogin) then
begin
try
FormLogin := TFormLogin.Create(self);
except
Application.Terminate;
end;
end;
FormLogin.ShowModal;
... //这里开始的程序在FormLogin的事件结束后才会执行
end;FormLogin中的事件,
通过验证了写FormLogin.Close
没有通过验证写Application.Terminate试试看如何。
我的程序这么写的,
还算好用。
谢谢了
not assigned(FormLogin)是什么意思
Application.Initialize;
Frmlogin:=Tfrmlogin.Create(Frmlogin);
Frmlogin.ShowModal;
if not isLoginin then exit;//islogin是全局变量,用于判断登陆是否成功
Application.CreateForm(TFrmMain, FrmMain);
Application.Run;
end.
你的mainform都没释放,工程又怎会结束呢!
FormLogin <> nil,即FormLogin创建了,在内存中存在
program Project1;uses
Forms,
main in 'main.pas' {Formmain},
login in 'login.pas' {Formlogin};{$R *.res}
var
formlogin:TFormlogin;
begin
Application.Initialize;
if not assigned(formlogin) then
begin
try
FormLogin := TFormLogin.Create(nil);
except
Application.Terminate;
end;
end;
FormLogin.ShowModal; //登陆窗体Onclose事件里添加:Action:=caFree,释放窗体。
Application.CreateForm(TFormmain, Formmain);
Application.Run;
end.