delphi如何关闭启动窗体

现在做了个程序,用了一个登陆框FROM1,然后验证成功后到FROM2主窗体。但用以下方法关闭FROM1后,FROM2也跟着关闭了。用HIDE可以,但我不想用这种方法。IF... 现在做了个程序,用了一个登陆框FROM1,然后验证成功后到FROM2主窗体。但用以下方法关闭FROM1后,FROM2也跟着关闭了。用HIDE可以,但我不想用这种方法。
IF PASSWORD='CCTV' THEN
BEGIN
FORM2.SHOW;
FROM1.CLOSE;
END
END;
展开
 我来答
就烦条0o
推荐于2016-11-19 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46490
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部

delphi通过窗口的close和窗口的show来显示和关闭窗口,需要注意主窗口关闭后其它所有窗口都会被关闭,其它窗口show之前如果是动态创建的窗口,需使用代码先创建完成后再show启动窗体。

下面是一个欢迎窗口的示例:

登陆窗体命名为:loginform.
找到工程文件(Project -> View Source),找到如下代码部分:
begin
   Application.Initialize;
   Application.CreateForm(TForm1, Form1);
   Application.CreateForm(Tloginform, loginform);
   Application.Run;//到此,程序执行
end.
登陆窗体可以设置成在程序执行前创建:
begin
   Application.Initialize;//初始化
   loginform:=tloginform.Create(application);//动态创建启动窗体
   loginform.Show;//显示
   loginform.Update;
   sleep(2000);//系统延时2秒
   loginform.Hide;//2秒后启动窗体隐藏
   Application.CreateForm(TForm1, Form1);
   Application.CreateForm(Tloginform, loginform);
   loginform.Free;//释放启动窗体
   Application.Run;
end.

制作启动(欢迎)窗体的另一种方法(转载...当然自己也使用过~~):
设置封面窗体属性使之符合启动封面要求。请修改下列封面窗体属性:
Position = PoscreenCenter
//运行时居于屏幕中央
Autosize = true
//自动适应Image控件,使启动图片完整显示
BorderStyle = bsnone
//窗口无标题栏及最大化、最小化及关闭按钮和边框
Name = splashform
程序代码解析 选择主菜单下的Project/View Scource 命令,打开这个项目的项目文件。根据下列代码进行修改。
program Project2;
uses
Forms,Controls,
Unit1 in 'Unit1.pas' {MainForm},
Unit2 in 'Unit2.pas' {SplashForm};
{$R *.res}
begin
Application.Initialize;
SplashForm :=TSplashForm.Create(Application);
//创建splash窗体
SplashForm.ShowModal;
//以模式对话框的方式显示splash窗体
if (SplashForm.ModalResult = mrOK) then
//如果定时时间到或单击了窗体上的图形
begin
Application.Title := '测试Splash窗体';
//设置应用程序的标题
Application.CreateForm(TMainForm, MainForm);
//自动方式创建的主窗体
SplashForm.Hide;
//将启动封面窗体隐藏
SplashForm.Release;
//将启动封面窗体清除
Application.Run;
end;
end.
随后在splash窗体上编写下列事件代码
procedure TSplashForm.Timer1Timer(Sender: TObject);
begin
SplashForm.ModalResult:= mrOK;
//定时时刻到后的事件处理程序
end;
procedure TSplashForm.Image1Click(Sender: TObject);
begin
SplashForm.ModalResult:= mrOK;
//单击splash窗体上图像的事件处理程序 ,当用户希望可以单击启动窗体的图片,而不用等待就可以进入//主窗体时,可以加上这一条件
end;
百度网友e12895c
推荐于2017-12-16 · TA获得超过288个赞
知道小有建树答主
回答量:254
采纳率:0%
帮助的人:212万
展开全部
把Form2设置成主窗体,Form1设置成AvailableForm,Form1在Form2 的OnCreate事件动态创建再用ShowModal就可以了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友694419527
2006-01-04 · 超过34用户采纳过TA的回答
知道答主
回答量:130
采纳率:0%
帮助的人:0
展开全部
Form1使用动态生成,到时 Form1.Action:=caFree;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f9a5bc75c
2006-01-04
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
Form1.visible := false;
不可以吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式