Olá Pessoal, bem vindos ao meu novo artigo aonde vou
descrever o uso, importância e facilidades de executar
tarefas utilizando Type Cast.
Todos os exemplos que estarei demonstrando eu usei
o Delphi 7, que também podem ser implementados utilizando
o Delphi 2005/2006 VCL. (win32)
============
O que é Type Cast
============
Na verdade o nome Type Cast pode ter várias formas de ser explicada.
Mas a mais simples é que ele é um recurso na qual você consegue referenciar
em poucas linhas um objeto dentro do seu projeto.
Normalmente fazemos isso usando o operador "as".
Outro item interessante é o "Sender" que sempre acompanha o evento
de clique dos objetos. É uma variavel do tipo "TObject"... classe de onde
vem todos os objetos.
============
Como Usar?
============
Bom... vamos montar alguns exemplos e ver na prática o que um
Type Cast pode fazer.
Estarei colocando 2 exemplos daqui pra frente.
Creio que pelo menos 1, vai ser útil para muitos de vocês.
Vamos lá...
============
Exemplo 1
============
Neste primeiro exemplo utilizaremos o "Sender" de forma implícita.
Vamos iniciar um novo projeto indo em File -> New -> Application. (Delphi 7... lembrem-se)
Neste projeto acrescentem 1 Button e 1 Label. (Apenas isso)
Ele deve ficar parecido como o abaixo.
No evento de clique do botão(cliquem 2x nele) vamos inserir o código abaixo.
Após isso rodem a aplicação (F9).
Ao clicarem no botão vão perceber que o label irá mudar o seu caption
(uia... grande coisa... uheauhuh)
Agora façam o seguinte... retornem ao design da sua aplicação.
E insira váááááááááários labels.
Ele deve ficar como o abaixo.
Sem mudar o código rodem novamente a aplicação(F9) e cliquem no botão(hummmmm)
Então... se vocês fizeram tudo certinho, vão perceber que independente de quantos
labels vocês colocarem no projeto ele vai trocar o caption para "Exemplo".
Sabe qual foi o interessante disso? Raciocine como vc faria para sua
aplicação fazer isso sem type cast...
****************
Entendendo o código
****************
Na verdade o que fizémos foi o seguinte.
Varremos todos os componentes dentro de "Self", que é o nosso Form1(no meu caso).
E toda vez que ele passar por um objeto/componente que for da classe TLabel ele
irá fazer com que aquele objeto em específico que é da classe TLabel troque o seu caption
por 'Exemplo'.
É importante mencionar que para este tipo de operação é muito importante testar o tipo da classe.
Se você não fizer isso... pode tentar fazer com que um edit por exemplo que não possui caption
tente limpar-se. (ex: edit1.caption:='';) (Obviamente isto não existe, portanto... erro no projeto).
============
Exemplo 2
============
Agora sim... vamos usar o "Sender"... :-P
A príncipio vamos dar um exemplo beeem simples pra facilitar o entendimento.
Crie um novo projeto indo em File -> New -> Application (Delphi seteeee)
Neste projeto vamos inserir apenas 1 button.
Seu form deve ficar como o abaixo.
E vamos colocar essa quantidade enorme de linhas de código, no evento
de clique no botão.(2 cliques nele) :D
Agora rodem a aplicação(F9).
Cliquem no botão e... (uia.... tudo isso)
Voltem para o design do projeto e insiram alguns buttons.
Ele deve ficar +/- assim.
Agora copiem o evento do Button1 para todos os outros.
A imagem abaixo mostra como fazer isso.
É só clicar no botão e ir em Events do Object Inspector.
E trocar o evento OnClick. Observem...
Repita o procedimento de forma que todos os buttons
apontem o OnClick para Button1Click.
Rodem novamente a aplicação (F9).
E cliquem nos botões. (hummmm)
Reparem que cada botão sabe qual é seu name,
mesmo usando o evento do button1. Ueh, como ?
****************
Entendendo o código
****************
Bom.. para entendermos o que fizémos precisamos primeiro
entender o que é o "Sender".
"Sender" na verdade é o identificador do objeto.
Portanto cada vez que chamamos o evento de clique no botão
passamos o sender... daí ele exibe o name do botão com aquela
identificação.
Por isso ele sabe quem eh quem.
Novamente... como vc faria isso sem Type Cast ?
Então pessoal... mostrei acima uma forma de vocês reduzirem
muuuito a quantidade de linhas de código dos seus projetos
em 2 exemplos beeem simples.
Há milhares de formas de se usarem apenas estes 2 exemplos.
Alguns deles poderiam ser na verificação se o conteúdo de algum
edit é válido.. ou limpar os edits todos de uma vez.
Com certeza isso vai ser útil para a maioria de vocês.
Aos que tiverem dúvidas eder_fernandes@hotmail.com.
Abraços e que venham os coments... :D
Publicidade
Vote no artigo
Quantidade de votos: 0 votos Aceitação:0%
Detalhes do artigo
Categoria: Outros Adicionado dia: 03/06/06 Por: Eder Rueda Fernandes Visualizado: 44854 vezes