哦!我是自动新建的一个FORM2!

解决方案 »

  1.   

    这样
    procedure TForm1.button1Click(Sender:TObject);
    var
      Form2: TForm1;
    begin
      Form2 := TForm1.Create(Application);// Form2 的Owner;
      form1.hide;
      form2.show;  //或者  form2.showmodal;
    end;
      

  2.   

    不过这句:
    var form2:tform1;
    是什么意思呢?我还没弄懂!
      

  3.   

    很简单啦,就是一个窗体FORM1上面一个按钮,按这个按钮就关闭第一个窗体,找开第二个窗体FORM2,就这样!
    可能还有错,还通不过。不晓得为什么?
      

  4.   

    不会吧?应该能通过。var:...表示Form2是TForm1类的一个实例。
      

  5.   

    procedure TForm1.button1Click(Sender:TObject);
    var
      Form2: TForm1;
    begin
      Form2 := TForm1.Create(Application);// Form2 的Owner;
      form1.hide;
      form2.show;  //或者  form2.showmodal;
    end;
    我就用的这个,编译的时候通得过。但程序运行后根本看不到FORM2,怎么回事?
    总不至于我刚开始就在这里卡住了吧?不服气!
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      hide;
      form2.show;
    end;
      

  7.   

    对了,你是不是没有新建一个窗体Form2,你应该建立一个窗口Form2啊。否则当然不能起作用了。
      

  8.   

    各位大哥,拜托。
    我现在有两个窗口,一个form1,一个form2,button1在form1里面,click事件中加入了
    上面几位大哥的语句,自己也试了好几种,可就是TMD不行。到底怎么了?各位大哥……
      

  9.   

    在主工程文件中你有没有加载form2窗体?
      

  10.   

      不知具体的情况重建一个窗体用上面代码试试吧!  
          注:form1为非MDI窗体.
      

  11.   

    Form2你没有创建或没有在点击button1之前创建??当前不可以Show!!
      

  12.   

    Form2你没有创建或没有在点击button1之前创建??当然不可以Show!! 
      

  13.   

    是不是我太笨?????
    主工程里我有加载form2!!form1不是MDI窗体!
    Form2 := TForm1.Create(Application);//这句不是创建吗?怎么创建法?
      

  14.   

    就按你的方法,我试了试,完全没有问题。要不要我给你发个程序?
    你是不能编译还是出错?如果不能编译在前面uses块上加上form2所在的
    单元名称,如unit2
      

  15.   

    zeroxy()大哥,我在uses里面加了form2也不行。
    编译没出错。不知道怎么回事?
    你把程序发个给我嘛!email:[email protected]
      

  16.   

    我学的C++Builder
    但你的程序很简单我看懂了
    Form2为TForm1的实例
    所以Form1隐藏了
    但Form2和Form1位置大小外观一样。
    其实你再点新窗口的按钮,
    它还会生成TForm1类型的窗口(跟Form1的位置大小外观一样)procedure TForm1.button1Click(Sender:TObject);
    var
      Form2: TForm1;
    begin
      Form2 := TForm1.Create(Application);// Form2 的Owner;
      Form1.hide;  Form2.Caption := "No.2"//{BCB:      Form2->Caption = "No.2";}
      Form2.show;  //或者  Form2.showmodal;
    end;
      

  17.   

    这年头,喝凉水还会噎死人?
    把你的程序打包给我!!!!!!!!!
    [email protected]
      

  18.   

    弄复杂了,我没有学C++B,我连编程都才开始学的!
    如果照你的说的,我要另建一个form2该怎么办?
    (拜托各位大哥,这问题只要你们回答我就给人,行了吧!);(我才准备入门就卡住了,帮帮我呀!!!!!!!!)
      

  19.   

    你要动态生成窗口的话
    你的方法也是对的
    问题是 你总要改点外观吧最好从TForm继承,这样灵活
    procedure TForm1.button1Click(Sender:TObject);
    var
      Form2: TForm;//这里
    begin
      Form2 := TForm1.Create(Application);// Form2 的Owner;
      Form1.hide;  Form2.show;  //或者  Form2.showmodal;
    end;这样可生成一个空白窗口.
    我没学Delphi
    你调试吧!
      

  20.   

    var
      Form2: TForm1;
    begin
      Form2 := TForm1.Create(Application);// Form2 的Owner;
      Form2.caption:='ok';
      form1.hide;
      form2.show;
    end;
    其实你的窗体已经创建了,而且显示了,不过与前面的窗体一样而已!一定要重新调用form1的close才能关闭程序!
      

  21.   

    是这样吗!但是我本来的目的不是动态建一个窗口呀!也不是想要一个和form1一样的form2.
    哪这样说是我搞错了,本来的目的还是没有达到,唉……
      

  22.   

    粘贴时忘了改
    Form2 := TForm1.Create(Application);// Form2 的Owner;应为:Form2 := TForm.Create(Application);// Form2 的Owner
      

  23.   

    谢谢各位,谢谢各位!问题已经解决__重新安装DELPHI!!哈哈哈……
    谢谢各位的帮助,各位对我帮助挺大的!谢了!……
      

  24.   

    procedure TForm1.button1Click(Sender:TObject);
    var
     // Form2: TForm1;   //错误
      Form2: TForm2;
    begin
      Form2 := TForm2.Create(Application);// Form2 的Owner;
      form1.hide;
      form2.show;  //或者  form2.showmodal;
    end;