Array
(
)

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

Titanius
   - 16 mar 2006

Olá está dando o seguinte Warning:

Unsafe typecast of ´Integer´ to ´TObject´
nesta linha,

#Código


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



O que pode ser isso?

Obrigado,
[]s


Massuda
   - 16 mar 2006

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.


Titanius
   - 16 mar 2006

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


Massuda
   - 16 mar 2006

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.


Dopi
   - 16 mar 2006

Vc pode usar
{$WARNINGS OFF}
Codigo
{$WARNINGS ON}

Acho que o efeito desejado no código acima seria o mesmo que
#Código


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: