procedure TForm1.Timer1Timer(Sender: TObject); begin if form2=nil then Application.CreateForm(TForm2, Form2); visible:=false; form2.show; end; 如果你不想改变主窗口就用以上语句,因为改变了主窗口以后,主窗口总是第一个出现的窗口,而看你的意图,很显然是要让form1先出现。 试试吧,因为主窗口不能close的,一close马上就退出程序。
如果你想form3出现后,就不要出现form2了,你可以加一条 procedure TForm1.Timer1Timer(Sender: TObject); begin if form3= nil and form2=nil then Application.CreateForm(TForm2, Form2); visible:=false; form2.show; end; 你不要又问我有个form4......
project选项可以按ctrl+shit+f11来打开。。
begin
if form2=nil then
Application.CreateForm(TForm2, Form2);
visible:=false;
form2.show;
end;
如果你不想改变主窗口就用以上语句,因为改变了主窗口以后,主窗口总是第一个出现的窗口,而看你的意图,很显然是要让form1先出现。
试试吧,因为主窗口不能close的,一close马上就退出程序。
var
//定义一个基准时间
CurrentTime : LongInt;
begin
CurrentTime := GetTickCount div 1000;
//延时4秒
while (LongInt(GetTickCount div 1000) < (CurrentTime + 4)) do;
end;//在project1中begin
Application.initialize;
Form2 := TForm2.create(Application);
Form2.show;
Application.CreateForm(TForm1, Form1);
Form2.hide;
Form2.free;
Application.Run;end.
建立一个新Application,包括两个Form,其中Form1为主窗口,Form2为要显示的图片Form,不妨将Form2的边框类型设为无,同时在Form2中加入一个TImage类的构件Image1,Align属性为Client,AutoSize设为True,然后为Image1指定任意一个图片。
选Project1/Options菜单,点取Application页,将Form2从左边列表框中移到右边列表框,这样Project1.dpr源程序就不会生成建立Form2的代码。下一步是手工修改Project1.DPR源代码,因为Form2应该在Form1之前建立并显示,但不能使用Application的CreateForm方法(第一个用此方法建立的Form被认为是主Form),具体的代码如下,当运行至Application.CreateForm(...)一行时Form2已经建立并显示出来,然后该行建立主Form并激发主Form的OnCreate事件,你可以在OnCreate事件处理过程中完成你的初始化工作。Project1.dpr program Project1;uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};{$R *.RES}begin
Application.Initialize; {程序初始化}
Form2 := TForm2.Create(Application); {建立徽标Form}
Form2.Show; {显示徽标Form}
Form2.Update; {重画徽标Form,确保其中的图片被显示出来}
Application.CreateForm(TForm1, Form1); {建立主Form}
Form2.Hide; {隐藏徽标Form,使主Form显示出来}
Form2.Free; {释放徽标Form占用的资源}
Application.Run; {程序运行}
end.
在主Form的OnCreate事件处理过程中我们用一些延时代码来模拟耗时的初始化工作,这样可以更清楚地看到Form2显示并停留数秒,直到主Form的OnCreate事件处理过程执行完毕后自动消失。Unit1.pas unit unit1;interfaceuses
Windows, Messages, SysUtils,
Classes, Graphics, Controls,
Forms, ExtCtrls;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
public
end;var
Form1: TForm1;implementation{$R *.DFM}{ OnCreate事件处理过程,延时五秒 }
procedure TForm1.FormCreate(Sender: TObject);
var
CurrTime: TSystemTime;
Sec: Word;
begin
GetSystemTime(CurrTime);
Sec := CurrTime.wSecond + 5;
while Sec>CurrTime.wSecond do
GetSystemTime(CurrTime);
end;end.
执行这个程序,会看到令人满意的效果:启动画面成功地显示出来,而且当鼠标移至画面上时会自动变成沙漏形状,五秒钟后画面消失,主窗口出现。
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if form3= nil and form2=nil then
Application.CreateForm(TForm2, Form2);
visible:=false;
form2.show;
end;
你不要又问我有个form4......