Que erro é esse: Unsafe typecast of ´Integer´ to ´TObject´ ?

16/03/2006

0

Olá está dando o seguinte Warning:

[b:9573ea356a]Unsafe typecast of ´Integer´ to ´TObject´ [/b:9573ea356a]
nesta linha,

if (Tag <> 0) and (TObject(Tag) is TPenProp) then FPenProp := TPenProp(Tag);



O que pode ser isso?

Obrigado,
[]s


Titanius

Titanius

Responder

Posts

16/03/2006

Massuda

O compilador está achando esquisito você dizer que um Integer é um TObject; note que, como é um warning, o compilador não está impedindo você de fazer isso (não deu erro de compilação). A finalidade dos warnings e hints é indicar a você coisas potencialmente estranhas em seu código; a idéia é que você dê uma olhada no código e decida se está ou não correto.


Responder

16/03/2006

Titanius

Massuda, está certo sim o codigo, mas nao tem como tirar esse warning nao?


Responder

16/03/2006

Massuda

Você pode desabilitar a geração de warnings/hints em Project|Options|Compiler|Messages (Show warnings/Show hints), mas dependendo da versão do seu Delphi, tem um modo de desabilitar determinadas mensagens, mas, no momento, não sei te indicar exatamente onde isso está, pois a versão que estou usando agora não tem esse recurso.


Responder

16/03/2006

Dopi

Vc pode usar
[i:c54acb1d41]{$WARNINGS OFF}[/i:c54acb1d41]
Codigo
[i:c54acb1d41]{$WARNINGS ON}[/i:c54acb1d41]

Acho que o efeito desejado no código acima seria o mesmo que
  if (Tag <= Integer(High(TPenProp)) ) and
     (Tag >= Integer(Low(TPenProp)) ) then 
     FPenProp := TPenProp(Tag);


Dessa maneira não gera warnings mas acho que fica ainda mais confuso..
:roll:


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar