Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

Re: Comboboxen Summieren bei onChange

  Alt 9. Feb 2010, 14:38
Du könntest die Zahlen als Objekte in den Items der Comboboxen hinterlegen und jeder Combobox dasselbe OnChange-Ereignis zuweisen. Schnelles Beispiel (DoOnChange ist die Ereignisbehandlungsroutine aller Comboboxen):
Delphi-Quellcode:
//wird im OnChange der Comboboxen ausgeführt
procedure TFormBla.DoOnChange(Sender: TObject);
var Summe: integer;
begin
  Summe := 0;
  if ComboBox1.ItemIndex > -1 then
    Summe := Summe + integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
  if ComboBox2.ItemIndex > -1 then
    Summe := Summe + integer(ComboBox2.Items.Objects[ComboBox2.ItemIndex]);
  if ComboBox3.ItemIndex > -1 then
    Summe := Summe + integer(ComboBox3.Items.Objects[ComboBox3.ItemIndex]);
  if ComboBox4.ItemIndex > -1 then
    Summe := Summe + integer(ComboBox4.Items.Objects[ComboBox4.ItemIndex]);
  Edit1.Text := inttostr(Summe);
end;

procedure TFormBla.FormCreate(Sender: TObject);
var i: integer;
begin
  //Zahlen als Objekte in den Items speichern
  for i := 1 to 4 do
    begin
      ComboBox1.Items.AddObject(Format('%d',[i * 10]),TObject(i*10));
      ComboBox2.Items.AddObject(Format('%d',[i * 10]),TObject(i*10));
      ComboBox3.Items.AddObject(Format('%d',[i * 10]),TObject(i*10));
      ComboBox4.Items.AddObject(Format('%d',[i * 10]),TObject(i*10));
    end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat