Qual a diferença entre TEdit(sender) e (sender as TEdit)??

Delphi

13/08/2009

Galera sempre que programei aprendi a fazer assim
(sender as TEdit)
....

só que em alguns exemplos vejo códigos do tipo
TEdit(sender)



tem alguma diferença, tipo um é melhor que outro, coisa e tal?[/code]


Makarioszen

Makarioszen

Curtidas 0

Respostas

Osocram

Osocram

13/08/2009

Olha se me lembro bem
assim (sender as TEdit) ele testa o cast antes de fazer
e TEdit(sender) ele ja faz o cast, então teoricamente assim é mais facil

Partitulamente eu so uso TEdit(sender). primeiro por causa da estetica e segundo por eu achar q é mais rapido.


GOSTEI 0
Yallebr

Yallebr

13/08/2009

Amigo o mais indicado é (XXX as TEdit) pois retorna uma exceção se for TEdit(XXX) retorna access violation e então mais dificil de depurar.

Abs!


GOSTEI 0
Marco Salles

Marco Salles

13/08/2009

(Objeto as TClasse) mais indicado [b:ce09dfe186]com certeza[/b:ce09dfe186]
TClasse(Objeto) em algumas situações provoca erros de dificil depuração
e vc perde muito tempo ate encontrar o erro


GOSTEI 0
Makarioszen

Makarioszen

13/08/2009

Bom amigos, Obrigado pelos esclarecimentos foi muito útil!!!!!


GOSTEI 0
Guinther

Guinther

13/08/2009

Dr

TTipo(Objeto) é um type-cast estilo C.
(Objeto as TTipo), nos bastidores, testa o tipo do objeto usando um ´IS´, que é um operador RTTI, e RTTI é lento, sempre vai ser. As boas práticas sempre sugerem o segundo método, é mais seguro, MAS se você tiver certeza sobre o tipo que está convertendo, com certeza o type cast estilo C vai ser sempre mais rápido.

Att,

Guinther Pauli
Editor Geral Revista ClubeDelphi
http://guintherpauli.blospot.com
http://twitter.com/guintherpauli


GOSTEI 0
Guinther

Guinther

13/08/2009

Dr

TTipo(Objeto) é um type-cast estilo C.
(Objeto as TTipo), nos bastidores, testa o tipo do objeto usando um ´IS´, que é um operador RTTI, e RTTI é lento, sempre vai ser. As boas práticas sempre sugerem o segundo método, é mais seguro, MAS se você tiver certeza sobre o tipo que está convertendo, com certeza o type cast estilo C vai ser sempre mais rápido.

Att,

Guinther Pauli
Editor Geral Revista ClubeDelphi
http://guintherpauli.blospot.com
http://twitter.com/guintherpauli


GOSTEI 0
Marco Salles

Marco Salles

13/08/2009

Deixe-me para evitar futuras más interpretações explicar o conteudo de :

TClasse(Objeto) em algumas situações provoca erros de dificil depuração


Não quiz dizer que TClasse(Objeto) provoca o erro .. O que eu quis dizer é que
qnd se tem erros TClasse(Objeto) pode não acusar o Erro e vc recebe
mensagems estranhas e perde muito tempo depurando atê encontrar o erro.
A execução do Programa na Depuração ,não para em TClasse(Objeto) o
que certamente acontece qnd se usa (Objeto as TClasse).


GOSTEI 0
POSTAR