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.