Buscar

Criando componentes no delphi - parte 2

Código

Olá amigos, como foi a semana? Tenho certeza que deve ter sido ótima!

Estamos hoje na nossa 6º Coluna. Semana passada falamos sobre o início de criação de componentes. Hoje veremos a segunda parte desse material, onde falaremos sobre a criação de novas propriedades para os nossos componentes.

Criar novas propriedades e eventos, esses últimos serão vistos na terceira e última parte desse assunto, são basicamente o que justifica a criação de novos. Pois quando você cria uma nova propriedade você está na verdade evitando ter que digitar todos aqueles procedimentos e funções que você definiu para um componente qualquer e que você geralmente utiliza.

Criaremos um Edit que terá uma propriedade boleana, ou seja, só recebe valores true ou false, o que definirá se o componente aceitará apenas números ou não. Normalmente o valor de uma propriedade é armazenado em uma variável (campo) privada da classe sendo assim a propriedade mero meio de comunicação entre o campo e o programador.

Por convenção e organização esses campos geralmente têm o mesmo nome da propriedade referida do componente apenas precedido da letra F que representa field, campo em inglês. Uma propriedade pode ter métodos de leitura e escrita, read e write respectivamente.

Para criar o esqueleto para um novo componente siga os passos ensinados na Coluna anterior.

Vamos agora para a definição de uma nova propriedade:

» A seção Public (pública) abriga as variáveis, procedimentos ou funções que podem ser lidos e executados por quaisquer outras units que utilizem (através cláusula Uses) a unit em questão já a seção Published (Publicado) é utilizada para inserir propriedades ou eventos aos componentes;

» Na diretiva private digite:

private
{ Private declarations }
FNumerico: boolean;

» Na diretiva public digite:

public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
procedure KeyPress(var Key: Char);

» Na diretiva public digite:

published
{ Published declarations }
property Numerico: boolean read FNumerico write FNumerico default true;

» Na cláusula implementation vamos definir o corpo da propriedade;

» Para definir que a propriedade virá marcada com o seu valor padrão True, após a procedure de registro vamos acrescentar um construtor:

constructor TNumEdit.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FNumerico := true;
Text := '0';
end;

» Vamos também definir a validação de entrada de valores para esse nosso novo Edit, onde se o valor da propriedade Numérico for verdadeiro (true) somente serão atribuídos os valores numéricos e a tecla back scape:

procedure TNumEdit.KeyPress(var Key: Char);
const teclasDec = ['0'..'9', #8];
begin
if FNumerico then
if not (key in teclasDec) then
key:=#0;
inherited KeyPress(Key);
end;

 

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Componentes
Adicionada dia: 09/02/05
Por: Jose Ribeiro
Visualizada: 5644 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009