在一个窗体close之后,再进入的时候一些控件显示的是上次退出时的值,如eidt,dbgird等,我不想一个一个的edit.text='';有没有什么更好的方法,一次性全部搞定?谢谢!

解决方案 »

  1.   

    var i: Integer;
    begin
      for i := 0 to ComponentCount - 1 do
        if Components[i] is TEdit then
          (Components[i] as TEdit).Text := '';
    end;
      

  2.   

    或者你动态创建表单,在Project->Options里把自动创建去掉,然后
    Form2 := TForm2.Create(Application);
    Form2.ShowModal;
    Form2.Free;
      

  3.   

    同意楼上的观点,
    不过我个人感觉,
    最好在关闭窗体时还要令其:=nil,
    这样才会完全释放
      

  4.   

    小弟试过了,用free之后再调用的时候会报错,请问如何操作,能否给个完整的语句,小弟是菜鸟,麻烦大家了。
      

  5.   

    每次调用时都用这种方式,创建、显示、释放:
    Form2 := TForm2.Create(Application);
    Form2.ShowModal;
    Form2.Free;
      

  6.   

    这样吧。
    在需要显示form2的地方
    if Form2=nil then
      Form2 := TForm2.Create(Application);
    Form2.ShowModal;
    在form2的OnClose事件中将form2释放
    Action:=caFree;
    Form2 :=nil;