delphi7新建一个form
我想知道用delphi7如何新建一个form,比如说,现在我有一个登陆form1,再新建一个form2,当form1成功登陆后,form1自行关闭。请问如何做到这个效果。...
我想知道用delphi7如何新建一个form,比如说,现在我有一个登陆form1,再新建一个form2,当form1成功登陆后,form1自行关闭。请问如何做到这个效果。我现在是在form1的登陆button上写代码form2.show;,感觉这样比较耗内存,一运行程序就同时打开了两个窗口。
展开
4个回答
展开全部
你可以在form1的onclose事件中写上form2.show的代码啊
onclose事件是窗体关闭事件,你在这里写上代码的只要窗体被关闭就会执行后面的代码,但是这样的花form1好像不能做为主窗体
我建议你只是隐藏form1,不要关闭这样的话就在hide事件中写form2.show的代码。hide事件是窗体隐藏事件
在登录按钮中的代码里面最后写上form1.hide
然后在form1的hide事件中写上form2.show这样就可以了
试试吧
onclose事件是窗体关闭事件,你在这里写上代码的只要窗体被关闭就会执行后面的代码,但是这样的花form1好像不能做为主窗体
我建议你只是隐藏form1,不要关闭这样的话就在hide事件中写form2.show的代码。hide事件是窗体隐藏事件
在登录按钮中的代码里面最后写上form1.hide
然后在form1的hide事件中写上form2.show这样就可以了
试试吧
更多追问追答
追问
但是这样做,在内在管理器那样,这个程序还是会运行的啊
追答
你是说windows的资源管理器吧?
当然会运行啊,如果不运行的话你如何显示form2呢?
你是说执行了前面这些代码以后你关闭form2窗口以后程序还在运行吗?
你可以在form2的hide事件中写上form1.show
这样当form2隐藏时form1就显示了,然后你关闭form1内存就释放了,因为程序如果不关闭主窗口的话是一直在运行的,所以你只有关闭了主窗口form1才可以吧程序关闭,你关闭form2是没用的
展开全部
如果你的form1是主窗体的话,那么不行,否则的话,你就动态创建窗体,记住在form1的formclose事件中写入action:=Cafree; 动态创建: Form:=application.createForm(TForm1,Form1); Form.Show;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
form2.show之后,,from1.free释放掉就是了,,,不过有不要么?,,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.可以把form2当成主窗体,然后在form2的oncreate事件中创建form1,当登录成功后,释放form1,如果登录失败就退出程序;
2.在project.dpr文件中写以上事件也可以
可以到csdn下载的我demo程序:delphi 权限管理
http://download.csdn.net/source/484792 (
不建议写form1.hide;这样form1只是隐藏了;另外多一个窗体也不会占多少内存资源;
可以采用以下方法:
1(1)form2做为程序的主窗体
(2)在form2.oncreate事件中写
if form1<>nil then
form1:=tForm1.create(nil);
if fomr1.showmodal=mrok then
begin
//登录成功后的操作代码;
end
else
Application.Terminate; //登录失败,退出程序;
(3) form1的登录按钮,如果登录成功,则是modalresult:=mrok;
失败则是modalresult:=mrcancel;
以上可以参考我的demo程序(delphi权限管理)
2.在project.dpr文件中写以上事件也可以
可以到csdn下载的我demo程序:delphi 权限管理
http://download.csdn.net/source/484792 (
不建议写form1.hide;这样form1只是隐藏了;另外多一个窗体也不会占多少内存资源;
可以采用以下方法:
1(1)form2做为程序的主窗体
(2)在form2.oncreate事件中写
if form1<>nil then
form1:=tForm1.create(nil);
if fomr1.showmodal=mrok then
begin
//登录成功后的操作代码;
end
else
Application.Terminate; //登录失败,退出程序;
(3) form1的登录按钮,如果登录成功,则是modalresult:=mrok;
失败则是modalresult:=mrcancel;
以上可以参考我的demo程序(delphi权限管理)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询