我现在想实现这样一个功能,在form1里建一个button,然后在button组件上编写代码,点击该button就可以打开form2的窗口,开始我还以为很简单,结果老出错,因为我的form2是通过file-new-form来建立的,这样的做法是不是错误的.如果不是这样应该怎么样做才能使form1和form2同时能出现在object treeview里.

解决方案 »

  1.   

    uses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      Form2.Show;
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      frm2: TForm2;
    begin
      frm2 := TForm.Create(nil);
      try
        frm2.ShowModel;
      finlly
        frm2.free;
      end;
    end;
      

  3.   

    楼上的,你的代码我运行了,还是出错呀.

    var
      frm2: TForm2;
    出错????
      

  4.   

    if not assigned(form2) then
    form2 := tform2.creat(application);
    fomr2.show;
      

  5.   

    楼上的,按照你的带码运行,还是出错:
    错误代码:
    [Error] Unit1.pas(29): Undeclared identifier: 'form2'
    [Error] Unit1.pas(30): Undeclared identifier: 'tform2'
    [Error] Unit1.pas(31): Missing operator or semicolon
    [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
    怎么回事???
      

  6.   

    新建了Form2之后,将当前Form设为Form1,再File-Use Unit,选Unit2,就能找到TForm2了。
      

  7.   

    谢谢老之,终于知道怎么回事了.
    procedure TForm1.Button1Click(Sender: TObject);
    var
      frm2: TForm2;
    begin
      frm2 := TForm.Create(nil);
      try
        frm2.ShowModel;
      finlly
        frm2.free;
      end;
    end;这里有N个错误导致的,1:frm2 := TForm.Create(nil);2:frm2.ShowModel;3:finlly,
    感谢各位了.