Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Count Checkbox? (https://www.delphipraxis.net/85156-count-checkbox.html)

Tommy1988 26. Jan 2007 17:50


Count Checkbox?
 
hallo, ich würde gerne das so haben, dass die checkboxen die "checked" sind gezählt werden.

kann man (wenn z.b. 2 boxen checked sind) auch in einer Combobox eine 2 stehen haben?

p0w3r5tr34m3r 26. Jan 2007 18:03

Re: Count Checkbox?
 
Hi,

versuchs doch mal mit einer For - Schleife und FindComponent..

Bsp.

Delphi-Quellcode:
var
  i, count: integer;
  c: TComponent;
begin
  for i := 0 to 9 do begin
    c := FindComponent('CheckBox'+inttostr(i));
    if (c as TCheckbox).Checked then
      inc(count);
  end;
  ShowMessage('Es sind '+inttostr(count)+' CheckBoxen angeklickt worden');
end;
Musst den Code halt nur noch anpassen :)
Hoffe es ist das was du haben wolltest.

Mit freundlichen Grüßen
p0w3r5tr34m3r

// EDiT
- kleiner bugfix (Der Parameter CheckBox muss als String übergeben werden)

Tommy1988 26. Jan 2007 18:07

Re: Count Checkbox?
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i, count: integer;
  c: TComponent;
begin
  for i := 0 to 9 do begin
    c := FindComponent(CheckBox1+inttostr(i)); // das ist die rote zeile
    if (c as TCheckbox).Checked then
      inc(count);
  end;
  ShowMessage('Es sind '+inttostr(count)+' CheckBoxen angeklickt worden');
end;
Inkompatible Typen: 'string' und 'TCheckBox'

marabu 26. Jan 2007 18:09

Re: Count Checkbox?
 
Hallo Tommy,

viele Wege führen nach Rom:

Delphi-Quellcode:
var
  n: Word;
begin
  n := 0;
  if CheckBox1.Checked then n := n + 1;
  if CheckBox2.Checked then Inc(n);
  Inc(n, Ord(CheckBox3.Checked));

  Edit.Text := IntToStr(n);
end;
Grüße vom marabu

uligerhardt 26. Jan 2007 20:02

Re: Count Checkbox?
 
Zitat:

Zitat von marabu
Delphi-Quellcode:
  Inc(n, Ord(CheckBox3.Checked));

Das ist aber schon eklig. :)

Tumm 26. Jan 2007 20:03

Re: Count Checkbox?
 
guck mal hier

Tommy1988 27. Jan 2007 17:11

Re: Count Checkbox?
 
hallo ich habe das problem jetzt durch eure vorschläge "wunderbar" gelöst.

nur es ist so:
ich habe neben 10 Checkboxen auch 2 RadioButtons auf meinem Formular.

Delphi-Quellcode:
procedure TForm1.SpeedButton3Click(Sender: TObject);
var addieren_2, ergebnis_2, zahl_2,
zahl1_2, zahl2_2, zahl3_2, zahl4_2, zahl5_2,
zahl6_2, zahl7_2, zahl8_2, zahl9_2,zahl10_2,
anzahl_2 : real;
  n_2: Word;
begin
  n_2 := 0;
  if CheckBox3.Checked then n_2 := n_2 + 1;
  if CheckBox4.Checked then Inc(n_2);
  if CheckBox5.Checked then Inc(n_2);
  if CheckBox6.Checked then Inc(n_2);
  if CheckBox7.Checked then Inc(n_2);
  if CheckBox19.Checked then Inc(n_2);
  if CheckBox20.Checked then Inc(n_2);
  if CheckBox21.Checked then Inc(n_2);
  if CheckBox23.Checked then Inc(n_2);
  if CheckBox15.Checked then Inc(n_2);
  //Radios
  if RadioButton1.Checked then Inc(n_2);
  if RadioButton2.Checked then Inc(n_2);

  Label59.Caption := IntToStr(n_2);
 //... hier folg noch viel mehr und irgentwann kommt end;
end;
Nur leider zählt er die RadioButtons so wie ich sie dort eingetragen habe nicht mit

was ist da falsch?

marabu 27. Jan 2007 17:38

Re: Count Checkbox?
 
Hallo,

woran merkst du denn, dass deine RadioButtons nicht mitgezählt werden?

Kennst du den Unterschied zwischen der "Checked-Summe" bei CheckBoxen (maxSum = n) und RadioButtons (maxSum = 1)?

Welche Bedeutung hat die Summe eigentlich für dich?

Freundliche Grüße

Tommy1988 27. Jan 2007 18:43

Re: Count Checkbox?
 
ich lasse mir die summe als zahl ausgeben

Delphi-Quellcode:
Label59.Caption := IntToStr(n_2);
Ich weis nicht wieso aber komischerweise klappts jetzt.. hab noch nichtmal was gemacht wäre aber schön, wenn du mir den unterschied nennen würdest
(zu deiner frage..)

dominikkv 27. Jan 2007 19:01

Re: Count Checkbox?
 
hi
ich würds auch über FindComponent machen:

Delphi-Quellcode:
var I, N: Integer;
//...
N := 0;
for I := 1 to 6 do
  if (FindComponent('CheckBox'+IntToStr(I)) as TCheckBox).Checked then
    Inc(N);
In N steht dann die Anzahl.
einen Nachteil hat das ganze aber: Mann muss seine CheckBoxen CheckBox1, CheckBox2 etc nennen
und der compiler hat bei dir gemeckert weil du die '' vergessen hast


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz