Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#14

Re: Immer mehrere CheckBoxen = true

  Alt 23. Jan 2010, 02:22
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.
Angehängte Dateien
Dateityp: exe project1_875.exe (425,0 KB, 3x aufgerufen)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat