显示软件封面通常情况下是这样做的 转载的例子 可以参考一下DPR文件
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.{ 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;

解决方案 »

  1.   

    因为你在form1show的时候form2还没有形成,所以show是没有用的。
    procedure TForm1.Formshow(Sender: TObject);
      begin
        sleep(3000);
        Application.CreateForm(TForm2, Form2);
      end;
    改成这个就ok了。给分吧!
      

  2.   

    Application.Initialize;
      form2:=Tform2.create(application);
      form2.Show;
      form2.Update;
      sleep(3000);
      Application.Title := 'project name';
      .....
      form2.Hide;
      form2.Free;
      Application.Run;
      

  3.   

    改成以下代码都不行
    procedure TForm1.Formshow(Sender: TObject);
      begin
        sleep(3000);
        Application.CreateForm(TForm2, Form2);
      end;
      

  4.   

    上面的方法我没试过,但这个方法是用过的:program football;uses
      Forms,
      UMain in 'UMain.pas' {FrmMain},
      USplash in 'USplash.pas' {FrmSplashScreen}, // 封面{$R *.res}begin
      Application.Initialize;
      try
        FrmSplashScreen:=TFrmSplashScreen.Create(Application);
                                                 //见下面的注释
        FrmSplashScreen.Show;
        FrmSplashScreen.Update;
        Application.CreateForm(TFrmMain, FrmMain);
      finally
        FrmSplashScreen.Free;
      end;
      Application.Run;
    end.注意:
    1。上面的FrmSplashScreen:=TFrmSplashScreen.Create(Application);不能改为Application.GreatFrom(TFrmSplashScreen,FrmSplashScreen).这两个函数的区别在于Application.GreatFrom会将第一次被调用是创建的窗口作为程序的主窗口,程序将随着这个窗口的结束而结束。
    2。最好用try...finally...end块,这样可以保证出错时封面窗口所占用的资源也被释放。
      

  5.   

    上面的方法没试过,我的方法我是实践过的
    program myProg;uses
      Forms,
      UMain in 'UMain.pas' {FrmMain},
      USplash in 'USplash.pas' {FrmSplashScreen};  //封面
     
    {$R *.res}begin
      Application.Initialize;
      try
        FrmSplashScreen := TFrmSplashScreen.Create(Application);//见后
        sleep(3000);      //如果你需要的话
        FrmSplashScreen.Show;
        FrmSplashScreen.Update;
        Application.CreateForm(TFrmMain, FrmMain);
      finally
        FrmSplashScreen.Free;
      end;
      Application.Run;
    end.注意:
    1。FrmSplashScreen := TFrmSplashScreen.Create(Application);
    不能改为
     Application.CreateForm(TFrmSplashScreen, FrmSplashScreen);
    这两个函数的区别是Application.CreateForm会将第一次被调用时创建的窗口作为主窗口,程序将随着主窗口的结束而结束。
    2。最好用try...finally,这样出错时FrmSplashScreen占用的资源也能释放。
      

  6.   

    有一种可能:你的form1是主窗体,在调用form2后就被你关掉了(close).
    程序也就退出了。你把所有的代码都贴出来会更好判断。
      

  7.   

    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;type
      TForm2 = class(TForm)
        RadioGroup1: TRadioGroup;
        Button1: TButton;
        Button2: TButton;
        procedure Button2Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementationuses Unit3, Unit4, Unit1;{$R *.dfm}procedure TForm2.Button2Click(Sender: TObject);
    begin
    form2.Close;
    end;procedure TForm2.Button1Click(Sender: TObject);
    begin
      
      case RadioGroup1.itemindex  of
        0:(form3.show);
        1:(form4.show);   end;
     end;
    end.
      

  8.   

    不对呀,你的意思是From2是主窗体,而让封面(from1)停留三秒吧?
    那就把上面的代码改为(换一下次序):
        FrmSplashScreen.Show;
        FrmSplashScreen.Update;
        sleep(3000);      //如果你需要的话
      

  9.   

    我同意“钓雪”的方法,因为我自己正开发一个酒店管理系统,做了这个,行!如果Sleep(3000)不要的话,就等到主窗口出现就释放资源。
      

  10.   

    有一种很苯方法:在prg中让form2先运行,并把visible设为false.然后:
      procedure TForm1.Formshow(Sender: TObject);
      begin
        sleep(3000);
        form2.visible:=true;
      end;
    //////////////////////////
      procedure TForm2.Formshow(Sender: TObject);
      begin
            form1.close;
      end;
    我第一次写程序时用的就是这种方法。
      

  11.   

    这个实现起来很简单的
    首先创建两个窗体,然后project->options->将Form2有自动创建该为手动创建
    下面写代码
    unit unit1;
    ....
    ....
    uses unit2;
    procedure TForm1.FormShow(sender:TObject);
    begin
      with TForm2.Create(Form2) do
       begin
         show;
         sleep(2000)
         refresh;//可以不加
         free;
         
       end;
    end;
      

  12.   

    http://hub.myrice.com/delphizt/yhjm/024.htm
    可以去这里看一看吧
      

  13.   

    procedure Tdenlu.FormActivate(Sender: TObject);
    begin
      sanpin.ShowModal;
    end;
    这个可以的,先创建sanpin