da es ja um 6 Checkboxen geht, die in beliebiger "2er" Kombi was machen sollen, würde ich alle möglichen Varianten 2^6 binär zusammen stellen und dann per "case Selected" mir sauber und zentral das was gültig ist ausprogrammieren:
Delphi-Quellcode:
procedure TForm6.Timer1Timer(Sender: TObject);
var
Checked:Integer;
begin
Checked:=0;
if (checkbox1.Checked) then Inc(Checked,$01);
if (checkbox2.Checked) then Inc(Checked,$02);
if (checkbox3.Checked) then Inc(Checked,$04);
if (checkbox4.Checked) then Inc(Checked,$08);
if (checkbox5.Checked) then Inc(Checked,$10);
if (checkbox6.Checked) then Inc(Checked,$20);
case Checked of
$03: Szenario12;
$05: Szenario13;
$09: Szenario14;
$11: Szenario15;
$21: Szenario16;
$06: Szenario23;
$0a: Szenario24;
$12: Szenario25;
$22: Szenario26;
$0c: Szenario34;
$14: Szenario35;
$24: Szenario36;
$18: Szenario45;
$28: Szenario46;
$30: Szenario56;
else InvalidPairChecked;
end;
end;
Wenn man das mit der Zusammenfassung per "binärem Oder" als Trick verstanden hat, ist es total simpel und übertrifft alle anderen Varianten bis 64 Checkboxen an Übersichtlichkeit und schneller Erweiterbarkeit