Hola Chichero.
Si no entiendo mal tenes 13 elementos que pueden ser 27 tipos diferentes de artículos eléctricos.
Los tipos de artículos me imagino corresponderan con su gasto en Watts, calorias, o lo que sea. Pero la cantidad deberá corresponderse con el tipo. Es decir todos los tipos 5 consumirán lo mismo por ejemplo.
Entonces creo que se puede simplificar así:
Código Delphi
[-]
procedure TForm1.FormShow(Sender: TObject);
begin
ComboBox1.Items.AddObject('Cafetera',TObject(500)); ComboBox1.Items.AddObject('Heladera',TObject(1000)); ComboBox1.Items.AddObject('Notebook',TObject(450));
ComboBox1.Items.AddObject('Fotocopiadora',TObject(1800));
ComboBox1.Items.AddObject('Caloventor',TObject(1500));
ComboBox1.Items.AddObject('Microoondas',TObject(1800));
ComboBox1.Items.AddObject('Aire Acond.',TObject(2200));
...
ComboBox2.Items:= ComboBox1.Items;
ComboBox3.Items:= ComboBox1.Items;
ComboBox4.Items:= ComboBox1.Items;
...
ComboBox13.Items:= comboBox1.Items;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
Watts: Integer;
begin
Watts:= 0;
for i:= 0 to ComponentCount -1 do
if Components[i].ClassType = TComboBox then
with TComboBox(Components[i]) do
if ItemIndex <> -1 then
Watts:= Watts + Integer(Items.Objects[ItemIndex]);
Label1.Caption:= IntToStr(Watts);
end;
...
En el ejemplo, la variable Watts almacena la sumatoria del consumo de los equipos seleccionados en los combos y muestra el total en la etiqueta Label1.
Saludos.