我的MDI程序。这样写
    Application.CreateForm(TMainForm, MainForm);
    Application.CreateForm(TForm1, Form1);
    Application.CreateForm(TForm2, Form2);
    Application.CreateForm(TAboutBox, AboutBox);
因为MDI是先显示MainForm后才开始创建Form1,Form2,AboutBox的,所以我想在执行Application.CreateForm(TMainForm, MainForm);后让MainForm隐含,知道创建所有的子Form后才显示,该怎么做?如果用MainForm.Hide的话,屏幕会闪一下的,有其他更好的办法呢?

解决方案 »

  1.   

    为什么要调用MainForm.Hide呢?如果你创建了MainForm后,只要不调用Show,
    它就不会显示出来,所以不存在屏幕会闪一下的情况。    Application.CreateForm(TMainForm, MainForm);
        Application.CreateForm(TForm1, Form1);
        Application.CreateForm(TForm2, Form2);
        Application.CreateForm(TAboutBox, AboutBox);
         .......
        MainForm.Show;
      

  2.   

    project中 
     Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      application.ShowMainForm:=false;//隐藏主窗体
    ........................
      

  3.   

    我觉得wushenjian(Maverick) 说的有理。
    既然是有系统自动创建窗体,又设置好了主窗口,不应该存在你所说的问题啊!
      

  4.   

    我这个是MDI程序,wushenjian(Maverick) 的方法是不对的,和我以前的理解一样,错误的。
    to ssl2000(大宋) :你的办法也试了,可是还是不行啊
      

  5.   

    以下是写在项目文件中的(*.dpr):
    Application.Initialize;
    Application.ShowMainForm:=false; //加上这一句,要放在所有窗体创建语句前面
    Application.CreateForm(TMainForm, MainForm);
    Application.CreateForm(TForm1, Form1);
    Application.CreateForm(TForm2, Form2);
    Application.CreateForm(TAboutBox, AboutBox);
    MainForm.Show;  //都创建完了,再显示主Form
    Application.Run;Win2000 + Delphi6 测试通过