Ya que estamos en un lenguaje OO, a ver si te vale esta opción
Código Delphi
[-]
TTipo = class
private
FPorcentaje: single;
FImporte: Currency;
public
constructor Create;
property Porcentaje: single read FPorcentaje write FPorcentaje;
property Importe: Currency read FImporte write FImporte;
end;
TValores = class
private
FValor1: TTipo;
FValor3: TTipo;
FValor2: TTipo;
public
property Valor1: TTipo read FValor1 write FValor1;
property Valor2: TTipo read FValor2 write FValor2;
property Valor3: TTipo read FValor3 write FValor3;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor TTipo.Create;
begin
FPorcentaje := 0;
FImporte := 0;
end;
O otra posible solución
Código Delphi
[-]
TTipo = record
Porcentaje: Single;
Importe: Currency;
end;
TValores = class
private
FValor1: TTipo;
FValor3: TTipo;
FValor2: TTipo;
public
constructor Create;
property Valor1: TTipo read FValor1 write FValor1;
property Valor2: TTipo read FValor2 write FValor2;
property Valor3: TTipo read FValor3 write FValor3;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor TValores.Create;
begin
FValor1.Porcentaje := 0;
FValor1.Importe := 0;
FValor2.Porcentaje := 0;
FValor2.Importe := 0;
FValor3.Porcentaje := 0;
FValor3.Importe := 0;
end;
Claro que, todo dependerá de lo que quieras conseguir
Si sólo quieres Records.... la verdad es que no sabría decirte de "forma automática" como inicializar los valores