Hola kirios.
Por favor cuando incluyas código en tus mensaje utiliza TAG's:
Con respecto a tu consulta, yo encararia el tema de otro modo; que a mi entender es más simple. Usaría la propiedad
Tag de los
TCheckBox como índices y en lugar de una matriz usaría un arreglo dinámico.
Un ejemplo como para darte una idea:
Código Delphi
[-]
var
Valores: array of Double;
procedure TForm1.FormCreate(Sender: TObject);
var
i, c: Integer;
begin
for i:= 1 to 100 do
begin
SetLength(Valores,i+1);
Valores[i]:= i;
end;
c:= 1;
for i:= 0 to ComponentCount-1 do
if Components[i] is TCheckBox then
begin
TCheckBox(Components[i]).Tag:= c;
Inc(c);
end;
end;
function TForm1.preciobar: Double;
var
i:integer;
begin
Result:= 0;
for i:= 0 to ComponentCount - 1 do
if Components[i] is TCheckBox then
if TCheckBox(Components[i]).Checked then
Result:= Result + Valores[TCheckBox(Components[i]).Tag];
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:= FloatToStr(preciobar);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Valores:= nil;
end;
Saludos.