有两个form,叫form1、form2
form1中有一个button1;
用来显示form2,程序如下:
procedure Tform1.button1Click(Sender: TObject);
begin
form2.Show;     //在显示form2的同时要继续显示form1,所以没有用到form1.close;
……
end;form2中有一个button2;用来返回指定的值给form1,程序如下:
procedure Tform2.button2Click(Sender: TObject);
begin
form1:=Tform1.Create(self);
……
form2.close;
end;可是,这样一来,就会有两个form1出现了。
请问应该如何解决?谢谢!

解决方案 »

  1.   

    form1:=Tform1.Create(self); //去掉这句
      

  2.   

    你自己都知道“在显示form2的同时要继续显示form1,所以没有用到form1.close”
    但又在调出form2的时候用力“form1:=Tform1.Create(self);”语句创建新窗体,可不就是出现两个form1么?
    procedure Tform2.button2Click(Sender: TObject);
    begin
        form1.show;
        form2.close;
    end;
      

  3.   

    form1:=Tform1.Create(self); 
    不能去,去掉的话,报错
    procedure Tform2.button2Click(Sender: TObject);
    begin
        form1.show;
        form2.close;
    end;
    也不行,还是报错
      

  4.   

    form2中有一个button2;用来返回指定的值给form1
    ------------------------------------------------
    你这里究竟想做什么呢?
      

  5.   

    form2是一个查找的form,将查找后ADOQuery的值给form1中的DBEdit
      

  6.   

    问题应该是很简单的
    只是不清楚你究竟想实现什么操作
    如果你是Form2上实现Form1的显示uses Unit1;
    procedure Tform2.button2Click(Sender: TObject);
    begin
        form1.show;
        Form2.Close;//
    end;上面你说报错,是报什么错啊?
      

  7.   

    jinjazz(近身剪(N-P攻略)) :请指教
      

  8.   

    大伟:我的原程序如下:请过目。procedure TForm1.button1Click(Sender: TObject);
    begin
      Form2.Show;  //不能再加Form1.close,否则出错,寻址错
    end;procedure TForm2.button2Click(Sender: TObject);
    begin
      查找语句……
      ……
         try
                  Form1:=TForm1.Create(self);   //因为有这句,所以会出现两的form1,
                                               //若打form1.show,也报错,寻址错
                  Form1.DBEdit1.DataSource:=DataModuleMain.DS_Query_Employee;
                  Form1.DBEdit1.DataField:='员工号';
                  ……
         except
                  showmessage('失败');//不出现的
         end;
              active:=true;
              Form2.Close;
    end;
      

  9.   

    总觉得你这样调用有些怪怪的感觉...
    为什么不做成一个form,放PageControl控件