Login:

iMasters | Por uma internet mais criativa e dinâmica

Feeds

Delphi

Feed da seção Delphi

Newsletter de Delphi


Segunda-feira, 29/07/2002 - 01:59 - Por Marcelo Varela
Seções relacionadas:

Criando Componentes no Delphi - Final


Olá pessoal, como passaram a semana? Deu tudo certo? Aprenderam e ensinaram muita coisa? Pois é, cada vez mais em nosso ramo de atividade é importante ter contato com outras pessoas, outras tecnologias e, por quê não, com outros problemas?!É muito importante essa integração e essa troca de informações e experiências é o que te trará de forma mais rápida e clara reconhecimento, admiração e que divulgará o seu trabalho. Portanto não prendam conhecimento, divulguem-no!

Nessa nossa 7ª coluna estaremos finalizando o assunto sobre Criação de Componentes, aonde vimos os passos básicos para criamos um componente personalizado. Falaremos então sobre criação de um novo evento para um componente personalizado.

Um evento na verdade é um tipo especial de que aponta para uma função a ser executada sob determinada condição. Um dos tipos mais comuns de evento é o TnotifyEvent, no qual o procedimento associado a ele terá como único parâmetro o Sender, da Classe TObject.

Dando continuidade ao nosso componente das últimas duas semanas vamos criar o evento OnErroAoConverter, que como o próprio nome sugere, quando ocorrer um erro ao tentarmos converter para um valor numérico um valor de texto que contenha caracteres que não sejam números, como letras, por exemplo, que ocorre quando ativamos a propriedade Numérico do Edit para TRUE.

Vamos por a mão na massa então:

» Abra o código fonte do seu componete criado nas últimas duas semanas;

» Acrescente na diretiva PRIVATE o seguinte:

      a. Private
            i.      Fnumerico: boolean;
            ii.      FonErroAoConverter: TnotifyEvent;

» Na diretiva PUBLISHED acrescente a propriedade do evento:

      a. Published
            i.      Property Numérico: boolean read Fnumerico write Fnumerico defaut True;
            ii.      Property OnErroAoConverter: TNotifyEvent read FonErroAoConverter write OnErroAoConverter;

» Note que assim como a propriedade Numérico, criada na semana passada, o evento também tem um campo interno associado a ele, o FonErroAoConverter.

» Devemos definir um método de escrita (write) e este deve ter um único parâmetro, do mesmo tipo tipo da propriedae acessada. Podemos definir então um método chamado Atribuir, para a classe do nosso componente:

      a. Procedure TnumEdit1.Atribuir(Valor: boolean);

      b. Var ValorConvertido: integer;

      c. Begin
            i.      Fnumerico := Valor;
            ii.      If not Valor then

                  1.      try

                        a.      

ValorConvertido := StrToInt(Text);
Except
OnEConvertErro do
If csDesigner in ComponentState then
Text := ‘0’
Else
If Assigned(FonErroAoConverter) then
FonErroAoConverter(Self)
End;
End;
End;

» Acrescente na diretiva protected o seguinte:

      a. Protected
            i.      Property KeyPress(var Key: char); override;
            ii.      Property Change; override;
            iii.      Procedure Atribuir(Valor: boolean);

» Recompile o pacote (packager) que contém seu componete e o iclua em um Formulário para testar, como por exemplo:

      a. Procedure Tform1.NumEdit1ErroAoConverter(Sender: Tobject);

      b. Begin
            i.     
            NumEdit1.Text := ‘0’;
            End;

» Pontro! Assim sendo, sempre que ocorrer um erro de conversão durante a execução do seu aplicativo o valor da propriedade text será igual a ‘0’, conforme foi definido pelo usuário do componente, que poderá decidir o que deve ser feito pelo programa quando houver um erro de conversão.

Espero que tenham aprendido o básico de criação de componentes, na próxima semana espero todos com um novo assunto. Lembrem-se, qualquer coisa entre em contato.

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

Todos os artigos de Marcelo Varela

0 comentários publicados

Poste um comentário


Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.

Sobre o autor

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


Indique para um amigo

captcha

TI SHOP Produtos iMasters

  • Lançamento: CD-ROM Treinamento Aplicado de SQL - Lançamento! Treinamento Aplicado de SQL - Aprenda a trabalhar com SQL com bancos de dados Oracle e SQL Server. São mais de 100 tópicos explicados por Mauro Pichilliani, um articulistas mais lidos do iMasters. Aproveite! Apenas R$ 69,90 no TI SHOP.
  • Lançamento: Livro iMasters "O Encontro de 2 Mundos"- Este livro conta com 56 crônicas de profissionais mais admirados e influentes do mercado brasileiro de Internet. Aproveite o preço especial para leitores do iMasters. Apenas R$ 40,00 e envio imediato!
  • DVD Curso Completo de Photoshop - Do conceito à finalização Lançamento! Curso Completo de Photoshop, em DVD, com mais de 230 aulas dividas em 4 módulos: conceito, básico, avançado e finalização. Apenas R$ 69,50 no TI SHOP - Frete com 50% de desconto
  • DVD Javascript Starter - Curso Completo Com mais de 9 horas de vídeo-aulas, é um curso completo sobre Javascript. Ideal para quem deseja aprender a linguagem. Apenas R$ 64,90 no TI SHOP - Frete com 50% de desconto!

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