对于动态创建的控件
可以用freeandnil(控件名);
完成完全的释放,如果只free不nil都会出错~
但是我现在的问题是:我动态创建的控件有很多个,所以至于要释放那个控件
我是用findcomponent(控件名)来实现的,代码如下:TQRLabel(findcomponent('Myfield'+inttostr(i)+inttostr(j))).Free;;
 TQRLabel(findcomponent('Myfield'+inttostr(i)+inttostr(j))):=NIl;//这行代码不能执行,直接报错,说左边的什么什么无效。
我用
FreeAndNil(TQRLabel(findcomponent('Myfield'+inttostr(i)+inttostr(j))));
出现错误,信息如下:
constant object cannot passed as var parameter;
请问我现在该怎么改??
谢谢了~

解决方案 »

  1.   

    TQRLabel(findcomponent('Myfield'+inttostr(i)+inttostr(j))).Free;;
     findcomponent('Myfield'+inttostr(i)+inttostr(j)):=NIl;//试试
      

  2.   

    一样的错误,
    findcomponent('Myfield'+inttostr(i)+inttostr(j)):=NIl;
    错误:Left side cannot assigned to.迷茫中~
      

  3.   

    还有就是,在控件创建的时候
    我是动态指定NAME属性的~
    已经有一个控件的name为MyField21
    但是我刚才发现,我直接用FreeAndNil(MyField21)时候就会出错
    错误信息是:MyField21没定义(报错是在编译阶段);
    说明根本就不是findcomponent的问题;
    那怎么解决呢??
      

  4.   

    Myfield:=TQRLabel.Create(self);
            Myfield.name:='MyField'+inttostr(i)+inttostr(j);
            Myfield.parent:=TitleBand1;我的创建过程是这样的,应该没有什么问题吧?为什么会出现上面的问题呢?