动态创建这个窗体,或对这个窗体发送一个RECREATEWIN消息

解决方案 »

  1.   

    窗体在内存中一直存在,当然StringGrid的数据也还有,
    1。可在OnShow或OnHide时清除文本框,组合框,STRINGGRID里的值;
    2。窗体动态创建及时销毁.
      

  2.   

    如何对这个窗体发送一个RECREATEWIN消息
    越简单越好!谢谢!
      

  3.   

    你Free你窗体了吗?With TForm1.Create(Application) do begin
      ShowModal;
      Free;
    end;如果是普通Show的方式,在你的窗体中的Close中写入
    Action:=caFree;
      

  4.   

    用Show显示的,在Close里写入Free,或Action:=caFree;当再次show这个窗体时出错:
      

  5.   

    应该是动态创建后再自己释放,在delphi中所有动态创建的对象都要自己释放,生存期自管理类型除外。我的用法:
     
    TMainForm.btnCreateClick(Sender: TObject);
    var
       Form1: TForm1;
    begin
      if not Assigned(Form1) then//判断是否已经存在;
        Form1 := TForm1.Create(Application);
      Form1.show;//显示窗体;
    end;
    窗体释放过程;
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action := caFree;//释放窗体;
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      Form1 := nil;//由于delphi不会自动将form1设为nil,要进行判断就必须自己
    将它设为nil!
    end;