Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - TChecklistbox nur die "gechekten" Einträge zählen


vavare - Do 12.04.07 10:51
Titel: TChecklistbox nur die "gechekten" Einträge zählen
Hallo

ich möchte, dass bei Delphi nur die abgehakten/gecheckten Einträge einer Checklistbox gezählt werden.
Bisher hatte ich folgenden Code:


Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Button1Click(Sender: TObject);
var zahl: Integer;
begin
zahl:=Checklistbox1.Selcount;
end;


Wenn ich durch diese Mehtode die Einträge zählen lasse, kommen aber immer wirre zahlen (-1, usw) raus...

Habt ihr einen Tipp für mich?

Moderiert von user profile iconUGrohne: Delphi-Tags hinzugefügt.


ZeitGeist87 - Do 12.04.07 10:52

Ja, ich hätte nen Tipp.

Willst auch noch hören?


vavare - Do 12.04.07 10:53

öhm...ja klaro


ZeitGeist87 - Do 12.04.07 11:05

Nagut!


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
var counter: integer;
   i: integer;
begin
 counter:= 0;
 for i:= 0 to checklistbox1.items.count-1 do
 begin
  if checklistbox1.checked[i] = true then 
   inc(counter);
 end;

 showmessage(inttostr(counter));
end;


.selCount bezieht sich auf die markieren NICHT die gecheckten Einträge!

LG
Stefan


noidic - Do 12.04.07 11:14

nicht ganz, .selected liefert zurück, ob der Eintrag ausgewählt ist. Obs angehakt ist, sagt dir .checked.


vavare - Do 12.04.07 11:15

danke, das war genau was ich wollte


ene - Do 12.04.07 12:20

Könnte man das hier


Delphi-Quelltext
1:
2:
3:
if checklistbox1.checked[i] = true then 
   inc(counter);
 end;


Nicht aus so schreiben?


Delphi-Quelltext
1:
Inc(counter, Abs(checklistbox1.checked[i]);                    


Oder geht Inc(x,0) nicht?