Ver Mensaje Individual
  #2  
Antiguo 20-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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;

(* Cargar valores, asignar Tag *)
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;

(* Devolver total *)
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;

(* Llamada *)
procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption:= FloatToStr(preciobar);
end;

(* Liberar memoria *)
procedure TForm1.FormDestroy(Sender: TObject);
begin
  Valores:= nil;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita