一下控件已经创建:
    mylab := TLabel.Create(nil);
    mylab.Name := 'mylabel9';
    mylab.Parent := ScrollBox1;
    mylab.Left := 10;
    mylab.Top :=  6;
    mylab.Caption := '开始 : ';
    mylab.Repaint;但是后面我要根据情况改变它的Caption,可是通过FindComponent('mylabel9') 查出的结果是nil,怎么办?也就是说我 (FindComponent('mylabel9') as TLabel).Caption := '找到';
没有用啊???

解决方案 »

  1.   

    直接使用mylabel9.Caption := '找到';
      

  2.   

    啊?你已经创建对象了啊
    直接mylab.Caption:=不就行了。
      

  3.   

    估计楼主想在其他过程里面修改
    那就需要用 (FindComponent('mylabel9') as TLabel).Caption := '找到';
    不过你的Create语句有问题,改为mylab := TLabel.Create(self);就可以了
      

  4.   

    因为我是动态创建的控件数组   mylabel : array of TLabel
    setlength(mylabel,j-1)
    for i :=0 to j do
    begin
      创建
    end;
    但我每次进行这个操作之前要检查一下这个系列的控件是否已经创建了,如果没有我才进行上面的操作,如果有了我要先清除掉(如果清除?)
      

  5.   

    TLabel(FindComponent('mylabel9')).Free;
      

  6.   

    mylab := TLabel.Create(nil);这里不能为Nil如果是要 Self.FindComponent() 则 mylab := TLabel.Create(Self);
      

  7.   

    我要清除(释放)的是这个数组里面的所有 mylabel0..9 , 如果只是释放的话,那么我还能从新Setlength这个数组吗? 因为我再点这个按钮的时候,根据情况再次动态生成这个控件数组啊