Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Checklistbox1 macht Fehlermeldung (https://www.delphipraxis.net/144335-checklistbox1-macht-fehlermeldung.html)

jonsen2.0.0.9 5. Dez 2009 15:20


Checklistbox1 macht Fehlermeldung
 
Hallo,

ich bin ziemlich neu hier also verzeit mir bitte wenn meine Frage dumm ist...

Also:
ich hab folgendes problem.
ich versuche gerade mit delphi ein notizboard zu progen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
CheckListBox1.Items.Add(NoteEdit.text) ;
NoteEdit.Text:='';
end;


procedure TForm1.Button2Click(Sender: TObject);
VAR i:integer;
begin
for i:=0 to CheckListBox1.Items.Count do
  if CheckListBox1.Checked[i]=true then
   CheckListBox1.Items.Delete(i);
end;
sp dat is mein bisheriger text...aber immer wenn ich dann Button2click mache...gibts die Fehlermeldung:

Listenindex überschreitet das Maximum(da ne zahl)

wie kann ich diese abschalten....was hat die zu bedeuten?
HILFE

Chris.R 5. Dez 2009 15:23

Re: Checklistbox1 macht Fehlermeldung
 
Hallo,

wenn du einen 0 bassierten Index hast, dann ist der max Index immer Anzahl - 1

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
VAR i:integer;
begin
for i:=0 to CheckListBox1.Items.Count - 1 do // <-- nur bis Count - 1 zählen
  if CheckListBox1.Checked[i]=true then
   CheckListBox1.Items.Delete(i);
end;

Ciao Chris

Helmi 5. Dez 2009 15:31

Re: Checklistbox1 macht Fehlermeldung
 
Hallo,

da du Einträge aus der Liste löscht, verringert sich damit auch die Anzahl der Einträge.
Deswegen musst du die Schleife rückwärts ablaufen lassen.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
VAR i:integer;
begin
for i := Pred(CheckListBox1.Items.Count) downto 0 do
  If CheckListBox1.Checked[i] then
    CheckListBox1.Items.Delete(i);
end;

jonsen2.0.0.9 5. Dez 2009 16:07

Re: Checklistbox1 macht Fehlermeldung
 
...jetzt läuft alles und wird auch alles gelöscht...DANKE


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:14 Uhr.

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