Fórum Dúvida na criação de componentes !!! #263546

27/12/2004

0

Gostaria de saber como criar uma property de um componente tipo uma [+]Font que tem subpropriedades.

ex:
[+]OptionsControls
option1 := (Receba False ou True)
option2 := (Receba False ou True)
option2 := (tCPF,tCGC,tRG,tPIS)

obs: este da option2 seria uma string mesmo.

é preciso saber como obter os valores de cada Option desta property !!!

desde já agradeço.


Ffc

Ffc

Responder

Posts

28/12/2004

Vinicius2k

Colega,

Resumidamente, pode-se dizer que o melhor nestes casos é a criação de um outro objeto para que sirva de sub-propriedade e um tipo enumerado para ´travar´ a seleção de valores... algo mais ou menos assim :

type
  TOption3 = (tCPF, tCGC, tRG, tPIS);

  TOptionControls = class(TPersistent)
  private
    FOption1: Boolean;
    FOption2: Boolean;
    FOption3: TOption3;
  public
    constructor Create;
    destructor Destroy; override;
  published
    property Option1: Boolean read FOption1 write FOption1;
    property Option2: Boolean read FOption2 write FOption2;
    property Option3: TOption3 read FOption3 write FOption3;
  end;


Neste modelo, a implementação da propriedade OptionControls no seu componente seria :
TSeuCompoente = Class(TComponent)
private
  ...
  FOptionControls: TOptionControls;
  ...
public
  ...
published
  ...
  property OptionControls: TOptionControls read FOptionControls write FOptionControls;
  ...
end;


Vc precisará apenas implementar no Create do seu componente a criação deste objeto ´sub-proprieadade´, e no Destroy a destruição do mesmo.
Além, é claro, de implementar toda a classe deste objeto com seus métodos, eventos e Procedures/Functions Get/Set, se forem necessárias.
procedure TSeuComponente.Create(...);
  ...
  FOptionControls := TOptionControls.Create;
  ...
end;

procedure TSeuComponente.Destroy;
  ...
  FOptionControls.Free;
  ...
end;


Este é um exemplo básico e sem grandes considerações... Para, realmente, aprender sobre construção de compoentes e técnicas mais adequadas e elegantes, eu lhe recomendo a leitura do artigo de nosso colega Michael, vencedor do Uploader Master deste ano : http://www.clubedelphi.net/artigos/criacao_componentes.asp

Espero ter ajudado...
T+


Responder

Gostei + 0

28/12/2004

Ffc

Vinicius2k muito obrigado, deu certo !!!


abraços !!!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar