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;
把Form2设置成主窗体,Form1设置成AvailableForm,Form1在Form2 的OnCreate事件动态创建再用ShowModal就可以了。
Form1使用动态生成,到时 Form1.Action:=caFree;
Form1.visible := false;
不可以吗?