Aca te mando un ejemplito de como lo uso yo:
Tengo un form donde agrego los comprobante que quiero pagar.
Este el el boton donde llamo al form donde elijo cuales comprobantes agregar y que monto voy a pagar.
Código Delphi
[-]
public
g_detallePago:array [0..99]of recdetallepago;
end;
procedure tfrmpagos.Agregar(sender:tobject);
var
codigo_comprobante:array [0..99] of longword;
monto_pago:array [0..99] of currency;
i:integer;
begin
for i:=0 to g_cantidadcomprobantes-1 do
begin
codigo_comprobante[i]:=g_detallepago[i].id_compra;
monto_pago[i]:=g_detallepago[i].monto;
end;
frmagregarcomprobante:=tfrmagregarcomprobante.Create(self);
frmagregarcomprobante.Abrir(codigo_comprobante,monto_pago,'P',strtoint(txtproveedor.Text),g_cantidad comprobantes);
for i:=0 to g_cantidadcomprobantes-1 do
begin
g_detallepago[i].id_compra:=codigo_comprobante[i];
g_detallepago[i].monto:=monto_pago[i];
end;
end;
Y este es la llamada que tiene el form donde elijo los comprobantes
Código Delphi
[-]
procedure tfrmAgregarComprobante.Abrir(var codigo:array of longword;var monto:array of currency;tipo:string;id_proveedor:word;var cantidad_comprobantes:integer);
var
i:integer;
begin
g_cantidad_comprobantes:=cantidad_comprobantes;
for i:=0 to g_cantidad_comprobantes-1 do
begin
g_codigo[i]:=codigo[i];
g_monto[i]:=monto[i];
end;
frmagregarcomprobante.ShowModal;
cantidad_comprobantes:=g_cantidad_comprobantes;
for i:=0 to cantidad_comprobantes-1 do
begin
codigo[i]:=g_codigo[i];
monto[i]:=g_monto[i];
end;
end;
Como ves, paso arrays de tipo var entre los form para poder trabajar los datos.
Espero te sirva
Saludos!