我自己做了一个控件,使用时在属性表设置了属性的值,但是发现在执行Paint方法的时候这个新值才生效,在此之前属性全是初始值,就是没有设置属性时候的默认值,有什么办法可以让设置的属性值在设置完后立即生效?

解决方案 »

  1.   

    >>有什么办法可以让设置的属性值在设置完后立即生效?
    那在設置後就要 引發控件再 paint 一次啊一般用設置代碼後加一句  self.Invalidate;
    就可
      

  2.   

    property aa:string read getaa write setaa;在setaa里把你的操作写进去即可.
      

  3.   

    不是这个问题,也许我没说清楚
    现在的问题是,Create的时候属性是默认值,Create结束后属性才变成设定后的值
    我是想让控件在Create的时候就能读到设定过后的属性值
      

  4.   

    在Create的时候就能读到设定过的值???
    这个玩笑开大了吧?Create是构造函数,只是负责组件的基本构造。
    属性完全载入后,控件会执行一个过程Loaded,你可以重载Loaded方法,在这里所有的属性值都读入完毕了。
    顺便提一句:
    (csLoading in componentstate)可以判断组件是否处在载入期
      

  5.   

    property aa:string read getaa write setaa default XXX;