Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 07 de Setembro de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
46 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Personalizando Componentes
Publicado por ActiveDelphi : Terça, Setembro 09, 2008 - 09:11 GMT-3 (2271 leituras)
Comentários 5 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Rafael Amaral Olá pessoal do portal Active Delphi! Nesse artigo vamos abordar um assunto simples, mas de grande importância na vida de qualquer desenvolvedor, que é a criação de componentes personalizados através de templates (modelos). Se trata de uma tarefa nada complicada e que poderá dar um bom ganho de produtividade.

Neste simples exemplo vamos criar um componente TEdit com características próprias, como mudar a cor de fundo quando receber o foco e que aceite apenas números.

Primeiro passo, abra o Delphi e crie um novo projeto.

Vá em File, Save all e salve como “EditPersonalizado” ou qualquer nome a sua escolha.

Adicione um TEDIT em seu formulário conforme a figura abaixo, pois é em cima dele que vamos trabalhar.

Renomeie-o como edtOnlyNumber ou um nome a sua escolha.


Figura 1 - Adicionando um edit ao projeto

O próximo passo é dar as funcionalidades que queremos ao nosso EDIT.

Vamos fazer, que no momento em que ele receber o foco, mude a cor de fundo e volte ao normal quando perder o foco. Para isso usaremos os seguintes comandos:

No evento OnEnter coloque o seguinte código:

  edtOnlyNumber.Color := clInfoBk;

E no evento OnExit:

  edtOnlyNumber.Color := clWhite;

Agora faremos com que ele aceite apenas números, o que é muito fácil de se encontrar na internet e de implementar. Apenas copie e cole o código abaixo no evento OnKeyPress de seu Edit:

  if not (Key in ['0'..'9', Chr(8)]) then Key := #0;

Pronto, as funcionalidades de nosso componente estão prontas, agora vamos gerar o componente. Para isso, vá no menu Component, Create Component Template.

Aparecerá uma janelinha com os seguintes parâmetros:

  • Component name: Nome do seu componente
  • Pallete page: Em qual aba de componentes ele aparecerá (por padrão, o delphi cria a aba templates mas você pode alterá-la sem problema)
  • Pallete icon: ícone do seu componente (use ícones do tipo bitmap)


Figura 02 - Janela de Criação do Template

Passados os parâmetros, dê um ok e pronto!

Procure na tool pallete a aba Templates e lá estará o seu novo componente. Aí é so arrastar para o formulário e testar suas funcionalidades. ;-)


Figura 03 - Adicionando o componente criado

Este é um exemplo simples, mas as possibilidades são muitas. Você poderá por exemplo, usar este recurso numa validação de cpf ou cnpj em suas aplicações.

Aqui usei o Rad Studio 2007, mas este passo a passo também pode ser feito em versões anteriores sem maiores problemas.

Vale lembrar que com este recurso você não Cria componentes! Em resumo, o que é feito é um "ctrl+c, ctrl+v" automático, ou seja, a IDE copia automaticamente o componente utilizado com todas as suas propriedades e eventos, gerando um modelo (template). Ao utilizar este modelo, a IDE simplesmente injeta no formulário o componente copiado com as mesmas propriedades e códigos de quando ele foi gerado.

Caso queira excluir um template gravado, basta clicar com o botão direito sobre ele na Tool Pallete e escolher a opção "Delete xxx Button", onde xxx é nome dado ao template.

No próximo artigo veremos um pouco de delphi para internet. Espero ter ajudado e até a próxima!

Por: Rafael Amaral
Contato: rafamaral@hotmail.com



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: rluiz (robsonursulino@gmail.com) : Set 10, 2008 - 01:04
(Informações sobre o membro | Enviar uma mensagem) http://
Muito boa a dica, nunca tinha utilizado isso antes. Legal mesmo!


por: jmcosta82 (josemetodista@hotmail.com) : Set 17, 2008 - 10:26
(Informações sobre o membro | Enviar uma mensagem)
Muito interessante o Artigo. Parabéns!


por: cleiton7b (cleiton7b@yahoo.com.br) : Fev 19, 2010 - 11:23
(Informações sobre o membro | Enviar uma mensagem) http://cleitonsousa.hd1.com.br
Muito boa a dica, mais para facilitar, ao invés de criar um template, você pode criar eventos e adicionar ao Edits e usando um pouco da Orientação objeto simplicar o código, veja o exemplo abaixo:


procedure TForm1.KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', Chr(8)]) then Key := #0;
end;

procedure TForm1.Enter(Sender: TObject);
begin
(Sender as TEdit).Color := clInfoBk;
end;

procedure TForm1.Exit(Sender: TObject);
begin
(Sender as TEdit).Color := clWhite;
end;

E após pode colocar direto via Delphi "Object Inspector" nos eventos ou no FormShow ou Create.

Ed_OnlyNumber.OnEnter := Enter;
Ed_OnlyNumber.OnExit := Exit;
Ed_OnlyNumber.OnKeyPress := KeyPress;

  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados