En el Help de Delphi 6
Overview of Pointers
Código Delphi
[-]
var
X, Y: Integer; P: ^Integer; begin
X := 17; P := @X; Y := P^; end;
Código Delphi
[-]
type
PInteger = ^Integer;
var
R: Single;
I: Integer;
P: Pointer;
PI: PInteger;
begin
...
P := @R;
PI := PInteger(P);
I := PI^;
end;
En tu caso:
Código Delphi
[-]
var
i : integer;
PB: ^Byte;
PI: ^Integer;
PW: ^Word;
vByte : Byte;
vInteger : Integer;
vWord : Word;
begin
while not fin_de_buffer
begin
inc(i);
if (viene_un_word) then
begin
PW := @Buffer[i];
vWord := PW^;
i := i + 2;
end;
if (viene_un_integer) then
begin
PI := @Buffer[i];
vInteger := PI^;
i := i + 2;
end;
if (viene_un_byte) then
begin
PB := @Buffer[i];
vByte := PB^;
i := i + 1;
end;
...