Autor Beitrag
Proking
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Fr 11.04.03 14:15 
Tach zusammen!

Ich programmier gerade an einem Prog. zum auswerten einer Umfrage. Jetzt hab ich 20 Checkboxes. Wie kann ich erfahren welche gechecked sind und welche nicht. Das ganze mit möglichts wenig Arbeit! Also ein anderen Weg als
ausblenden Quelltext
1:
2:
3:
4:
if Checkbox1.checked then
begin
...
end;

Gibts da was? oder muss ich es so umständlich machen? Gibts eine Funktion, die alle Checkboxes in einer Form überprüft? Kann ich so eine erstellen? Wenn ja, wie übergebe ich einer funktion oder procedure die verscheidenen Checkboxnamen?

Danke für die Hilfe!
MFG
Proing

Moderiert von user profile iconTino: Absätze entfernt; Code-Tags hinzugfügt; Werbelink entfernt.
Alibi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 458

Win2K SP3
Delphi 6 Ent
BeitragVerfasst: Fr 11.04.03 14:31 
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var
  Checked: array [1..20] of bool;
  i: integer;
begin
  for i := 1 to 20 do begin
    Checked[i] := false;
    if TCheckBox(FindComponent('CheckBox''+inttostr(i)).Checked then
      Checked[i] := true;
  end;
end;

So oder so ähnlich, nicht ausprobiert. Jedenfalls ist das Ziel dieser Zeilen, dass du in einem Array of Bool den jeweiligen Zustand der Checkbox hast.
teebee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 109


D6 Prof
BeitragVerfasst: Fr 11.04.03 15:07 
Zitat:
ausblenden Quelltext
1:
2:
3:
4:
var 
Checked[i] := false; 
if TCheckBox(FindComponent('CheckBox''+inttostr(i)).Checked then 
 Checked[i] := true;


Das 'If' kann man sich hier sparen:

ausblenden Quelltext
1:
Checked[i] := TCheckBox(FindComponent('CheckBox'+IntToStr(i))).Checked;					


Noch eleganter geht's mit:

ausblenden Quelltext
1:
 Checked[i] := (FindComponent('CheckBox'+IntTosTr(i)) As TCheckBox).Checked;					


Hier wirft das 'as' eine Exception, falls es sich mal nicht um eine Checkbox handeln sollte... (Ist zugegebenermaßen in diesem Beispiel eher unwahrscheinlich und kostet außerdem noch etwas Leistung)

mfg, teebee
Alibi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 458

Win2K SP3
Delphi 6 Ent
BeitragVerfasst: Fr 11.04.03 15:15 
Gut, das IST eleganter. :) Daran hatte ich in dem moment nicht gedacht.