因为FormCreate在等待运行完,运行完后才能显示窗体。

解决方案 »

  1.   

    当然是这样,因为FORM 是在CREATE完之后才显示的。
      

  2.   

    窗体事件的先后顺序为:OnCreate->OnShow->OnPaint->OnActive,OnCreate表示窗体正在创建时发生,所以我建议你把运行动作放在OnActive里
      

  3.   

    我把它放在Form1的OnShow事件中,但是运行时它会变成最小化,点击后却不能还原,等程序运行完成后,它才会显示出来,请问大虾们何解???????????
      

  4.   

    我只有一个窗体,我在OnShow中用到存储过程,设为自动登录。但就是运行时会不见窗体,怎么办??
      

  5.   

    放在 onActive 中应该可以的
      

  6.   

    在form中放一个ttimer剩下的不要我说了吧
      

  7.   

    你可以在OnShow事件中向窗体Post一个自定义消息,然后在该消息处理中调用存储过程,窗体肯定先显示出来。
      

  8.   

    agui(阿贵):
      在onShow事件中向窗体post自定义消息?请问怎么做?我是菜鸟!
      

  9.   

    定义新消息:
    const
      WM_PLEASE_INIT = WM_USER + $100;在TForm1体内定义处理方法:
      procedure WMPleaseInit(var Msg: TMessage); message WM_PLEASE_INIT;
    // 实现
    procedure TForm1.FormShow(Sender: TObject);
    begin
      PostMessage( Handle, WM_PLEASE_INIT, 0, 0 );
    end;procedure TForm1.WMPleaseInit(var Msg: TMessage); message WM_PLEASE_INIT;
    begin
      初始化操作,包括执行存储过程。
    end;