Ver Mensaje Individual
  #9  
Antiguo 04-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
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.

No, no es posible hacer:
Código Delphi [-]
ComboBox1.Items.AddObject('aaa', TObject(x), TObject(y));

En ese caso creo que deberías usar un arreglo de registros, algo como:
Código Delphi [-]
...
implementation
type
  TRegConsumo = record
    VSensible: Integer;
    VLatente: Integer;
  end;
var
  Consumo: array [0..26] of TRegConsumo;

procedure TForm1.FormShow(Sender: TObject);
begin
  ComboBox1.Items.Add('Cafetera');
  Consumo[0].VSensible:= 500;
  Consumo[0].VLatente:= 700;

  ComboBox1.Items.Add('Heladera');
  Consumo[1].VSensible:= 1000;
  Consumo[1].VLatente:= 1200;

  ComboBox1.Items.Add('Notebook');
  Consumo[2].VSensible:= 450;
  Consumo[2].VLatente:= 500;
  ComboBox2.Items:= ComboBox1.Items;
  //...
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  C1,C2: Integer;
begin
 C1:= 0;
  C2:= 0;
  for i:= 0 to ComponentCount -1 do
    if Components[i].ClassType = TComboBox then
      with TComboBox(Components[i]) do
        if ItemIndex <> -1 then
        begin
          C1:= C1 + Consumo[ItemIndex].VSensible;
          C2:= C2 + Consumo[ItemIndex].VLatente;
        end;
  Label1.Caption:= 'Sensible: '+IntToStr(C1)+#13+'Latente: '+IntToStr(C2);
end;
Donde aprovechas ItemIndex como índice del arreglo de registros, por supuesto deben corresponderse los índices.

Saludos.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 04-07-2011 a las 22:44:46.
Responder Con Cita