@blackfin: wenn, dann doch eher so: (diese CASE würden es nicht grad vereinfachen)
Delphi-Quellcode:
if RadioButton1.Checked
then begin
if CheckBox1.Checked
then mode := 1
else if CheckBox2.Checked
then mode := 2
else mode := 0;
if mode
in [0, 1]
then SQL.Add('
abc');
if mode
in [0, 2]
then SQL.Add('
def');
end;
[add]
CheckBoxen optional (einfach nil übergeben) und mehrere Strings:
(kann man auch noch mit überladenen Proceduren und/oder Default-Parametern aufmotzen und mit der "mode"-Variante kombinieren)
Delphi-Quellcode:
procedure DoThis(Group: TRadioButton; Check1, Check2: TCheckBox;
SQL: TIrgendwas; Add1, Add2:
array of String);
var
i: Integer;
begin
if Group.Checked
then
if Assigned(Check1)
and Check1.Checked
then begin
for i := 0
to High(Add1)
do SQL.Add(Add1[i]);
end else if Assigned(Check2)
and Check2.Checked
then begin
for i := 0
to High(Add2)
do SQL.Add(Add2[i]);
end else begin
for i := 0
to High(Add1)
do SQL.Add(Add1[i]);
for i := 0
to High(Add2)
do SQL.Add(Add2[i]);
end;
end;
[edit]
Schade,
for Add1 in S do SQL.Add(S);
geht nicht.