Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - If "Sammelabfrage"


Metschu - So 12.06.11 18:40
Titel: If "Sammelabfrage"
Hallo zusammen,

ich bin gerade dabei meinen Programmcode etwas aufzuräumen.

Hierbei wollte ich die Abfrage, ob mindestens eine von 8 Checkboxen angeklickt ist, vereinfachen bzw zumsammenfassen.

Momentan ist das mit einer "If (Checkbox1.checked) or (Checkbox2.checked) or ..." gelöst.

Die Checkboxen haben alle den gleichen Namen und sind nummeriert.

Gibt es dafür eine "Sammelabfrage"?

Ne andere Idee wäre das noch mit einer For-Schleife zu lösen, ist aber Codemäßig genausoviel Aufwand:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
For i:=1 to 8 do 
 If TCheckBox(FindComponent('CheckBox'+IntToStr(i))).checked
  then begin;
   weiter:=true;
   breake
  end;

if Weiter
 then ....


Gruß

Torsten


jaenicke - So 12.06.11 18:47

So etwas musst du dir dann selbst basteln. Du kannst z.B. einen class helper für TForm schreiben, der das macht.

Vorgefertigt gibt es das jedenfalls noch nicht. ;-)

// EDIT:
Wobei ich gerade sehe, dass du noch Delphi 7 hast. Damals gab es noch keine class helper. Da kannst du dann nur eine Zusatzroutine irgendwo unterbringen und die dann aufrufen.