program Project1;uses
  Forms,windows   ,
  Unit1 in 'Unit1.pas' {Form1},
  Flash in 'Flash.pas' {FlashForm};{$R *.res}
  var  FlashForm :TFlashForm;
begin
   try
      Application.CreateForm(TFlashForm, FlashForm);
      Flashform.ShowModal  ;
      Sleep(2000) ;
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      FlashForm.Close ;
     finally
      FlashForm.Free ;
     end ;
   Application.Run;
end.可是运行后 FlashForm根本不闪而且! Form1也不显示了 !这是怎么回事?

解决方案 »

  1.   

    FlashForm:=TFlashForm.create(Application);
    try
       FlashForm.showModal;
    finally
       FlashForm.free
    end;
      

  2.   


    这句话提到程序开头!既然有了sleep(2000),就不需要 ShowModal 了,你这样一写的顺序,程序主窗口成了flashform,而不是你想要的form1了。程序段改为:
       Application.Initialize;
       try
          Application.ShowMainForm:=false;
          Application.CreateForm(TForm1, Form1);
          Application.CreateForm(TFlashForm, FlashForm);
          Flashform.Show;
          Sleep(2000) ;
          FlashForm.Close ;
         finally
          FlashForm.Free ;
         end ;
         Form1.show;
       Application.Run;
      

  3.   

    {$R *.res}
      var  FlashForm :TFlashForm;
    begin
       try
          Application.Initialize;
          FlashForm := TFlashForm.Create(application);
          Flashform.Show;
          Flashform.Update;
          Sleep(2000) ;
          Application.CreateForm(TForm1, Form1);
          FlashForm.Hide ;
         finally
          FlashForm.Free ;
         end ;
       Application.Run;
    end.
      

  4.   


      var  FlashForm :TFlashForm;
    begin
       try
          Flashform:=TFlashform.create(nil);
          Flashform.Show;
          Sleep(2000) ;
          Application.Initialize;
          Application.CreateForm(TForm1, Form1);
          FlashForm.Close ;
         finally
          FlashForm.Free ;
         end ;
       Application.Run;
    end.
      

  5.   

    好了各位大哥的代码小弟看明白了!请问Form.show和Form.ShowModal有什么区别?谢谢哦1
      

  6.   

    对于模式窗体而言,要等它关闭才会执行下面代码在写Window程序时,除了某些特殊应用外,没人会去用Sleep暂停程序,这会造成整个进程失去响应
      

  7.   

    要暂停程序执行用个循环配合GetTickCount实现,循环中放置Application.ProcessMessages;来响应消息
      

  8.   

    而且这里的FlashForm怎么感觉多此一举?而且还要莫名其妙的停2秒?一般FlashForm在主窗体初始化需要大量时间时才使用,这时当然没必要人为的去暂停2秒,有画蛇添足之嫌疑!