判断某一个控件是否有某一项属性的语句应该怎么写?

解决方案 »

  1.   

    用 GetPropValue 試試, uses TypInfo;
      

  2.   

    function HaveProperty(const AComponent:TComponent;AProperty:string):boolean;
    begin
      Result:=GetPropInfo(AComponent,AProperty)<>nil;
    end;
      

  3.   

    uses TypInfo;if IsPublishedProp(Component, 'Property') then ...
      

  4.   

    if IsPublishedProp(Component, 'Property') then SetPropValue(Component, 'Property', Value)
      

  5.   

    如果这个属性有子属性,又如何使用呢?如Font属性下有Size等子属性?
      

  6.   

    这倒没有用过……
    你研究一下typinfo这个单元吧,我也不清楚。
      

  7.   

    基本上应该是用GetObjectProp获取该属性,
    然后再使用IsPublishedProp。
    例如:
    var obj:TObject;
    obj := GetObjectProp(Component, 'Font');
    if (obj <> NIL)
      And(IsPublishedProp(obj, 'Size')) then
     ...
    没有测试。