我自定义了一个组件,继承自TGraphicControl,有一个capiton属性,我想默认的就是name属性.请问该在那个地方设置呢.constructor TUnicodeLabel.Create(AOwner: TComponent);
begin
  inherited;
  FFont:=TFont.Create;
  FCaption:=Name;
  MessageBox(0,PChar(Name),pChar(name),0);
end;此时的name是空的.

解决方案 »

  1.   

    不用再重新声明Caption属性  private
        procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED; //标题改变触发
      published
        property Caption; //将父类属性公开
      end;
      

  2.   

    也可以重载
        procedure SetName(const Value: TComponentName); override;
      

  3.   

    zswang(伴水清清)(专家门诊清洁工) ( ) 信誉:175  2006-7-7 19:15:27  得分: 0   
     
       
    不用再重新声明Caption属性  private
        procedure CMTextChanged(var Message: TMessage); message CM_TEXTCHANGED; //标题改变触发
      published
        property Caption; //将父类属性公开
      end;不用再重新声明Caption属性: 这不行,主要目的是改成支持unicode,所以我的caption是widestring类型的,重载SetName 倒可以试一下。