就是先显示一幅图案,过了几秒后才显示主窗体
2个窗体,一个为主窗体,另一个为图案的
project source 里面改成这样,可是没法显示主窗体,图象过后就是结束了
怎么回事啊?
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  form1.Show;
  form1.Update;
  form1.Close;
  Application.CreateForm(Tmainform, mainform);
  mainform.Visible:=true;
  mainform.show;
  application.Run;
end.

解决方案 »

  1.   

    program scren;uses
      Forms, windows,
      screena in 'screena.pas',
      fm in 'fm.pas',
      FM1 IN'FM1.PAS';{$R *.res}begin
    Application.Initialize;
      form2:=tform2.Create(application);
      form2.Show;
      form2.Update;
      while form2.Timer1.Enabled do
      Application.ProcessMessages;
      form3:=tform3.Create(application);
      form3.Show;
      form3.Update;
      while form3.Timer1.Enabled do
      Application.ProcessMessages;
      Application.Title := 'ZW';
      Application.CreateForm(Tform1, form1);
      form2.Hide;
      form2.Free;
      form3.Hide;
      form3.Free;
      sleep(1000);
      Application.Run;end.
    dpr文件
      

  2.   

    建一个启动封面窗体,假设为Form2,先设置好BorderIcons、BorderStyle、 FormStyle、Position,接着在窗体上加入图片框、文本框,设置好后在菜单里选Project里的Options,把Form2从Auto-create forms里转到Available forms。再接着就是按Ctrl+F12键,选Project1,出现工程单元,其内容如下 
    ... 
    Application.CreateForm(TForm1, Form1); 
    Application.Run; 
    .. 
    在Application.CreateForm(TForm1, Form1); 前加入如下语句:  form2:=tform2.create(application); 
     form2.Show; 
     form2.Update; 
    然后在Application.Run;前面加入如下语句: 
     form2.hide; 
     form2.free; 
      

  3.   

    Delphi在启动时会首先显示一个图片,等到将所有的初始化工作全做完后该图片自动消失。为达到这一效果,建立一个示例程序。 
      建立一个新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; interface uses 
    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.