Ver Mensaje Individual
  #3  
Antiguo 15-01-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Reputación: 27
delphi.com.ar Va por buen camino
Sin dudas lo que te propone Al Gonzalez, es la solución mas habitual. Sucede que muchas veces dentro de una función hay muchas referencias a cada byte de un valor y no desees estar llamando a funciones como Hi/LoByte y MakeWord para armar el resultado, o te encuentres con algún tipo de datos mas difícil de descomponer. En este caso hay otras opciones muy prácticas que ofrece el lenguaje:

Podes crear dos variables que residan en el mismo espacio de memoria mediante la directiva absolute:
Código Delphi [-]
var
  W: Word;
  B: array[0..1] of byte absolute W;
begin
  B[0] := 255;
  B[1] := 0;

  WriteLn(W);

Otra opción, es usar registros con partes variables:
Código Delphi [-]
type
  TMyWord = record
    case Integer of
      1: (Value: Word);
      2: (LoByte: Byte;
          HiByte: Byte
  end;

var
  W: TMyWord;
begin
  W.LoByte := 255;
  W.HiByte := 0;
  WriteLn(W.Value);

Espero no confundir!..
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita