我在Form1中添加一个按钮Button1,单击它打开Form2
procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.show;
end;在Form2中有一个文本框Edit1和一个按钮Button1,我在文本框中随便输入几个字符,然后按退出按钮回到主窗口Form1procedure TForm2.Button1Click(Sender: TObject);
begin
  close;
end;当我再次单击Form1中的按钮Button1时,发现打开的Form2中的文本框Edit1中显示的仍是我刚才按“退出”按钮返回主窗口之前输入的字符。我的问题:怎样使得再次打开Form2时,Edit1中不是显示我刚才按“退出”按钮返回主窗口之前输入的字符,而是像第一次打开时那样?

解决方案 »

  1.   

    procedure TForm2.Button1Click(Sender: TObject);
    begin
      edit1.text:='';  
      close;
    end;祝:身体健康,分数和答案同样重要:)
      

  2.   

    呵呵,
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      form2.edit1.text:='';
      Form2.show;
    end;
    或者
    procedure TForm2.onclose(Sender: TObject);
    begin
    form2.edit1.text:='';
    end;
      

  3.   

    如果我在Form2中的几十个文本框中都输入过内容,那关闭Form2时时岂不是要写几十句form2.edit1.text:='';这样的代码有什么办法让Form2彻底“失忆”
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
        if form2.Active then
        form2.Destroy;
        form2 := Tform2.Create(Application);
        form2.show;
    end;
      

  5.   

    to laihecongxi(兴哥) 
    你说得对但是你有一个地方写的不合适。
    form2.Destroy;因该是 form2.free;不知道你同不同意。
      

  6.   

    试了一下laihecongxi(兴哥)的代码,可以了。请问这是Delphi中的常规用法还是说另类用法。小弟会点VB,Delphi刚学。楼上的代码是不是就相当于VB中的Unload me的作用
      

  7.   

    试了一下Essence_zhx(艺森)的代码,也可以,Destroy和free究竟那个更好,它们有什么不同
      

  8.   


               关于多个edit内清除问题,分太少,不回答了。:)
      

  9.   

    当用完了对象,应该调用free()方法来释放它,free首先进行检查保证这个对象实例不为Nil,然后它调用对象的析构函数Destroy()。
    这里调用free()方法,而不直接调用Destroy(),更安全一些。