A título de esclarecimento, um valor do tipo byte corresponde a um valor inteiro compreendido entre a faixa de valores de 0 até 255. Um valor do tipo Real (que é um Double!) pode passar desse valor, e ainda poder receber valores negativos. A grosso modo, esta também poderia ser uma explicação aceitável para não ser possível fazer cast(conversão de tipo) de Real para Byte.
Sds. De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Rubem Rocha Enviada em: quinta-feira, 2 de setembro de 2010 11:39 Para: delphi-br@yahoogrupos.com.br Assunto: RES: [delphi-br] cast de float para byte Prioridade: Alta Não se pode fazer cast de um tipo de dados cujo tamanho é maior que o do dado que irá receber o resultado da conversão. O tipo Byte, como o próprio nome do tipo diz, tem um byte de tamanho. Já o tipo Real (que no final das contas é um Double) tem 8 bytes de tamanho. O que se pode fazer é representar um dado Real (ou Double) como um array de 8 bytes, assim: program RealToBytes; {$APPTYPE CONSOLE} uses SysUtils; var cod: Real; c: array[0..SizeOf(Real) - 1] of byte absolute cod; i: integer; begin cod := 123.45; for i := 0 to SizeOf(Real) - 1 do WriteLn(Format('$%2.2X', [c[i]])); WriteLn(Eoln); end. Sds. De: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> [mailto:delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> ] Em nome de felipe govoni Enviada em: quinta-feira, 2 de setembro de 2010 08:38 Para: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> Assunto: [delphi-br] cast de float para byte bom dia estou tentando fazer isso: var cod :real; c :byte; begin cod := 1; c := byte(cod); end; mas da erro de cast, alguem sabe como fazer essa transformação? -- Felipe Govoni --------------------- GOVONI Sistemas Fone 8472-8718 www.govoni.com.br [As partes desta mensagem que não continham texto foram removidas]