用form1的btn1 打开form2,现点击form2的btn2 关闭form2,使form2上的memo里的数据也没掉,重新打开的时候初始化,用右上角的叉关掉重新打开form2,memo里面还有数据

解决方案 »

  1.   

    关闭只是窗体关闭而已,内存并没有释放掉,如果你要释放掉form2就用free,free后了就打不开了除非重新创建窗体,
    如果只是想清除Memo里面的内容,在form2.onClose里面执行memo.clear即可.如果要直接free可以执行Action := caFree.
      

  2.   

    Action := caFree,这样会不会整个程序都退出了,连form1也退出了
      

  3.   

    创建Application.CreateForm(TForm2,form2);
    关闭FreeAndNil(form2);
      

  4.   

    from2的onshow事件Memo1.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+'a.txt');
    from2的onclose事件Memo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName)+'a.txt');
      

  5.   

      if Form2 = nil then
      begin
        Application.CreateForm(TForm2, Form2);
        Form2.Show;
      end
      else
        FreeAndNil(Form2);
      

  6.   

    在form2的OnClose处理过程中添加Action := caFree就可以了
    该语句表示释放资源