为什么我的delphi程序一运行就会同时弹出两个form

解决方案 »

  1.   

    应该是两个form的visible都设置成true了吧
      

  2.   

    菜单Projece--View Source 看一下是否运行时创建了两个FORM
      

  3.   

    正解。进去项目属性,把非主FORM的全部都拖到available form里面去,要养成这个好习惯。
      

  4.   

    看看你的项目启动部分,application.crate
      

  5.   


    看到的源代码中,删掉你不想见到的那个。
    要它显示:
    with MyForm.Create(nil) do
    try
      ShowModal;
    finally
      Free;
    end;
      

  6.   

    哎呀妈呀,实在简单。
    100%是两个FORM的Visable属性为TRUE
    改false就OK啦,
    分都给我吧
      

  7.   

    之前我同学也遇到过类似问题,注意看你FORM1里的代码,你会发现问题的
      

  8.   

    这位兄弟肯定一开始设置了MDI窗口了
    project-view source
    begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      //Application.CreateForm(TForm2, Form2);
      Application.Run;
    end.
      

  9.   

    说的一点都不详细.看一下这里,project-options-forms检查一下左边auto-create forms:和右边的available forms:
      

  10.   

    在你程序的入口文件中打开主函数,可以看到如下代码(这个是C++Builder的,delphi的形式一样)WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
            try
            {
                     Application->Initialize();
                     Application->CreateForm(__classid(TShapeForm), &ShapeForm);
                     Application->Run();
            }
            catch (Exception &exception)
            {
                     Application->ShowException(&exception);
            }
            return 0;
    }其中
    Application->CreateForm(__classid(TShapeForm), &ShapeForm);
    就程序开始运行时加载并初始化的窗口,去掉你不想让他一开始就出现的窗口
      

  11.   

    在 project文件中把子窗体的创建语句删除掉就OK啦。
      

  12.   

    打开project文件,能看到问题所在。把相应的子窗体的创建语句删除。
      

  13.   

    在菜单project->options 将左边的auto-create forms 中的form移到 available forms中
      

  14.   

    設定MDI窗體或form的Visible屬性同時設定為true,修正為false.
    project-view sourceDelphi(Pascal) code
    begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      //Application.CreateForm(TForm2, Form2);
    end;