3x Combobox:
1. combobox.Items = 'Spalte-1, Spalte-2, Spalte-3'
2. Combobox.Items = 'OR, AND'
3. combobox.Items = 'Spalte-1, Spalte-2, Spalte-3'
Das ist die einfachste Lösung und auch die, die am schönsten zu bedienen ist.
Wenn du drei Checkboxen haben willst, dann (Die Checkboxen sind in einer TList 'CheckBoxes') so:
Delphi-Quellcode:
Procedure TForm1.AllCheckBoxesGetThisOnClick(Sender : TObject)
Var
checkedCount : Integer;
i : Integer;
lastCheckedTag : Cardinal;
lastChecked : Integer;
Begin
(Sender as TCheckBox).Tag := GetTickCount;
lastChecked := -1;
checkedCount := 0;
For i := 0 to CheckBoxes.Count - 1 do
if TCheckBox(CheckBoxes[i]).Checked then begin
inc (checkedCount);
if (lastChecked =-1) or (lastCheckedTag > TCheckBox(CheckBoxes[i]).Tag) Then Begin
lastCheckedTag := TCheckBox(CheckBoxes[i]).Tag;
lastChecked := i;
end
end;
If checkedCount>2 then
TCheckBox(CheckBoxes[lastChecked]).Checked := False;
End;
Ungetestet.
Idee: Du klickst die Checkboxen nacheinander an, z.B. 3,2,1. Dann wird bei CheckBox3 der Haken wieder weggenommen. Dann sind 2,1 angeklickt. Nun klickst Du auf 3. Dann wird bei #2 der Haken weggenommen.
Ich persönlich würde aber die erste Variante (wahlweise mit #1 und #3 als Listbox und #2 als Radiogroup ('AND' 'OR') nehmen.