Segunda-feira, 15 de julho de 2002 às 01h59

Criando Componentes no Delphi - Parte 2


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;

» Prontinho agora é só instalar o componente e testar.

1 comentário

 Paulo da Silva Santos
13/01/2006 14h40

Criando Componentes no Delphi - Parte 2

É uma matéria muito boa, prática e didática para aprender a criar componentes no Delphi. Estava testando este exemplo, só que não estava passando no evento OnKeyPress da procedure KeyPress(var Key: Char) declarada na diretiva Public. Descobri com os meus colegas de trabalho, que faltou Sobreescrever a procedure, para os controles terem efeito, conf. abaixo:

CORRIGIDO:
procedure KeyPress(var Key: Char);override;




ANTES: procedure KeyPress(var Key: Char);




Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


Sobre o Autor
Marcelo Varela é professor Delphi, SQL Server e ASP em cursos Cliente/Servidor.

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.