Componentes - usando tcustomX

Top  Previous  Next

========================== Usando TCustomX ===========================

 

 

Porque criar um componente do tipo TCustomLabel ao invés do TLabel?

Não dá na mesma?

 

- Dá na mesma do ponto de vista aparencia.

  Mas o TCustomLabel (que possui quase tudo que TLabel tem) tem uma 

  vantage. Grande vantagem:

 

  Ele possui as propriedade do TLabel, mas a grande maioria só é 

  published se voce quiser (ficam de padrão ocultas)

 

Por exemplo se voce criar:

 

 type

   TCustomLabel1 = class(TCustomLabel)

  public

    constructor Create(AOwner: TComponent); override;

  published

  end;

 

Quando instalado o CustomLabel aparecerá APENAS com as propriedades:

 

  Cursor, Height, Hint, Left, Name, Tag, Top e Width

 

Se fosse descendente do TLabel aparece TUDO: Caption, ParentFont, etc...

 

Ok. Mas como fazer que pelo menos a caption apareca no meu descendente 

do CustomLabel?

 

Basta re-declarar como published:

 

 

 type

   TCustomLabel1 = class(TCustomLabel)

  public

    constructor Create(AOwner: TComponent); override;

  published

    property Caption;   <---- isto basta para que ela aparece no Object Insp

  end;