我用了以下语句:
if assigned(cSFrm) then cSFrm.close;cSFrm:=TcSFrm.Create(application);
cSFrm.Position:= poscreencenter;
cSFrm.Show;我的意思是想运行以上语句,检测到窗口打开,就会关闭,但是好像没有真正关闭窗口,
运行多几次就会吃光内存,怎么回事?

解决方案 »

  1.   

    if assigned(cSFrm) then
    begin
      cSFrm.close;
      csFrm.Free;
    end;
      

  2.   

    試一下這個:
    if csfrm<>nil then
    begin
      csfrm=nil;
      csfrm:=Tcsfrm.create(self);
      csfrm.show;
    end;
      

  3.   

    释放窗口需要两个步骤,第一步是释放堆中对象实体,使用Free,然后接下来是释放栈中对象指针Form:=Nil可以使用一个函数 FreeAndNil(Form)
      

  4.   

    if assigned(cSFrm) then
    begin
      cSFrm.close;
      FreeAndNil(csFrm);
    end;
      

  5.   

    在FORM的CLOSE事件里写上:
    ACTION:=CAFREE;
      

  6.   

    active:=caFree;
    csfrm:=nil;
      

  7.   

    我试过了,用crossbow(La Vida Es Amor) 的方法没事,OK了,放分