No encuentro que esto sea muy necesario de hacer, porque basta restar 1 o sumar 1 cuando convenga. Pero si de todas formas quieres hacerlo como dices, te doy una forma de aproximarte:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
Type
TA = Array [1..1000000] Of Extended;
Var
Fila :Array of Extended;
FilaX :^TA Absolute Fila;
I :Integer;
Begin
SetLength (Fila, 3);
Fila [0] := 17;
Fila [1] := 10;
Fila [2] := 1974;
For I := 1 To 3 Do
Showmessage (FloatToStr (FilaX [i]));
end;
En el ejemplo, he declarado la variable FilaX para que ocupe la misma posición de memoria (
Absolute) que la variable Fila. Esto funciona gracias a que un arreglo dinámico es en realidad un puntero al primer valor que contiene. Y como a FilaX le hemos dado declaración de puntero (^), ambas variables apuntarán a la misma región de memoria, pero el compilador tomará las referencias a FilaX con el índice base 1 (ya que así está declarado el tipo auxiliar TA).
Saludos.
Al González.
