.. kann es sein das nach der for Schleife der Counter i nicht mehr richtig ist.
Grüße
Klaus
Wo müsste ich den dann ändern?
Ich habe
i, n : Integer;
als Variablen eingegeben
Du schreibst:
Delphi-Quellcode:
procedure TEquipment.Button1_prüfenClick(Sender: TObject);
begin
n := 0;
for i := 0 to CheckListBox1.Items.Count - 1 do
begin
if CheckListBox1.Checked[i] then inc(n);
end;
Label2_Überprüfung.Caption := Label2_Überprüfung.Caption + sLineBreak + CheckListBox1.Items[i];
end;
end.
Du verwendest i in der Zuweisung der Caption außerhalb der Schleife.
Das ist Falsch. i wird am Ende jedes Schliefendurchlaufs um 1 erhöht. Auch beim letzten Durchlauf. Demnach sprichst du auch nach der Schleife ein Item der CheckListBox an, welches nicht existiert (Listenindex außerhalb des gültigen Bereichs).
Wenn du mal diesen Code ausprobierst (um dir das zu verdeutlichen):
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
i: Integer;
begin
mmo1.Lines.Clear;
for i:=0 to 5 do
begin
mmo1.Lines.Add('Innerhalb der Schleife: '+IntToStr(i));;
end;
mmo1.Lines.Add('Außerhalb der Schleife: '+IntToStr(i));;
end;
(Dieser Code setzt voraus, dass du einen Button mit dem Namen btn1 und ein Memo mit dem Namen mmo1 hast).
Da kommt folgendes Ergebins:
Zitat:
Innerhalb der Schleife: 0
Innerhalb der Schleife: 1
Innerhalb der Schleife: 2
Innerhalb der Schleife: 3
Innerhalb der Schleife: 4
Innerhalb der Schleife: 5
Außerhalb der Schleife: 6
Spricht für sich.
Richtig wäre also:
Delphi-Quellcode:
procedure TEquipment.Button1_prüfenClick(Sender: TObject);
begin
n := 0;
for i := 0 to CheckListBox1.Items.Count - 1 do
begin
if CheckListBox1.Checked[i] then
begin
Label2_Überprüfung.Caption := Label2_Überprüfung.Caption + sLineBreak + CheckListBox1.Items[i];
inc(n);
end;
end;
end;
end.
wofür du n benötigst ist mir nicht klar.
Und: Schleifenvariablen sollte immer lokal deklariert sein. Also im var-Abschnitt der Procedure. Finde ich bei dir nicht.
Und: Warum nutzt du nicht die Delphi-Tags und schreibst deinen Code da hinein???? Ein Bild im Anhang macht es allen anderen schwer dir zu helfen.