我动态建立了一个checklistbox数组,他在生成的过程中我
给它赋了动作和位置

      checklistbox[i] := TChecklistbox.Create(mcheck);//mcheck是拖放在系统里面的一个checklistbox控件。
      checklistbox[i].tag := i;
      checklistbox[i].onClick:=mcheck.Onclick;
      checklistbox[i].setbounds(xxxx);
现在是我在另外一个函数
      checklistbox[i].Free它竟然没用消失掉,还有就是在没用释放前我给
它赋的onclick动作也没用执行不知道为什么!而那个mcheck整个控件就正常点击有反应请问大家遇到这个问题没用,或者有没有其他办法解决谢谢

解决方案 »

  1.   

    模糊印象
    好像要制定动态创建的组件的parent,就是
    checklistbox[i].parent:=xxxx
      

  2.   

    checklistbox[i] := TChecklistbox.Create(mcheck);
          checklistbox[i].name='checklistbox'+inttostr(i);
          checklistbox[i].Parent:=mcheck;
          checklistbox[i].tag := i;
          checklistbox[i].onClick:=mcheck.Onclick;
          checklistbox[i].setbounds(xxxx);
      

  3.   

    不行啊!我已经设置它parent为一个panel了!一样结果不行
      

  4.   

    checklistbox[i] := TChecklistbox.Create(self);
          checklistbox[i].name='checklistbox'+inttostr(i);
          checklistbox[i].Parent:=你的panel;
          checklistbox[i].tag := i;
          checklistbox[i].onClick:=你的Onclick;
          checklistbox[i].setbounds(xxxx);上面的代码没测试过