在Form中有许多label控件,我写了一个绘制label边框的过程。如果在form的什么事件中调用它来绘制label,则没有效果,可能是因为label还没有加载。那样就得在label的事件中调用这一过程。有没有办法使这些label在paint事件发生时都调用同一个过程?(不要控件数组)是不是只能在每一个控件的事件中添加重复的代码?    谢谢!!现在用的方法是使用timer控件产生延迟,timer事件中调用绘制过程。

解决方案 »

  1.   

    for i:=0 to ComponentCount-1 do
      if Componenets[i] is TLabel then
         (Components[i] as TLabel).onPaint:=SomePaintEvent;
    把唯一的onPaint事件中的LableN,都用Sender as TLabel代替就说这么多了我就会这个。
      

  2.   

    呵呵,我知道solokey(永远的菜鸟-研究TObject中) 会的还不止这一点点,不过,你不知道我是谁,呵呵....