现在我有20个label控件,我要根据用户的不同输入字母,改变相应的label的颜色.
那么通常的做法是设置选折条件,如
select case char
 a:.....
 b:.....
 c:....
这样代码就变得很多,很烦琐,有没有简化的办法?

解决方案 »

  1.   

    那你可考虑这样: label1.tag := 1;
                    label2.tag := 2;
                    ....然后,用个循环:
     for i:= 0 to self.ComponentCount - 1 do
     begin
      if Self.Components[i].Tag = XXXX then //你要改变的
      begin
       TLabel(Components[i]).Color := XXXXXXX;
       Exit;
      end;
     end;
      性能可能是你原来的好!!
      

  2.   

    changelabel:='label'+yourchar;
    if assigned (form1.FindComponent(changelabel)) then
       tlabel(form1.FindComponent(changelabel)).color=clblue;
      

  3.   

    tag属性起什么作用?self.componets又是什么意思?小弟是新手,请指教!
      

  4.   

    TAG是一个用户可以写的标志
    self.componets 就是本FORM所拥有的所有组件