Que erro é esse: Unsafe typecast of ´Integer´ to ´TObject´ ?
Olá está dando o seguinte Warning:
[b:9573ea356a]Unsafe typecast of ´Integer´ to ´TObject´ [/b:9573ea356a]
nesta linha,
O que pode ser isso?
Obrigado,
[]s
[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
Curtidas 0
Respostas
Massuda
16/03/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.
GOSTEI 0
Titanius
16/03/2006
Massuda, está certo sim o codigo, mas nao tem como tirar esse warning nao?
GOSTEI 0
Massuda
16/03/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.
GOSTEI 0
Dopi
16/03/2006
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
Dessa maneira não gera warnings mas acho que fica ainda mais confuso..
:roll:
[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:
GOSTEI 0