AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi CheckListBox - mehrere Einträge löschen
Thema durchsuchen
Ansicht
Themen-Optionen

CheckListBox - mehrere Einträge löschen

Ein Thema von HaCkAttaCk2001 · begonnen am 16. Okt 2004 · letzter Beitrag vom 16. Okt 2004
Antwort Antwort
Benutzerbild von HaCkAttaCk2001
HaCkAttaCk2001

Registriert seit: 4. Nov 2003
Ort: Chemnitz
95 Beiträge
 
#1

CheckListBox - mehrere Einträge löschen

  Alt 16. Okt 2004, 13:17
Hi @ all.

Ich versuch gerade, mehrere Einträge auf einmal aus einer CheckListBox zu löschen. Aber es klappt nicht, weil ich immer eine Meldung bekomme, der Listenindex überschreite das Maximum. Ich habe nun aber eigentlich schon dafür gesorgt, dass das nicht passieren dürfte, indem ich von der aktuellen Anzahl an Einträgen die Anzahl der zu löschenden nicht-angehakten Items abziehe (die ja dann praktisch im nächsten Durchlauf fehlen).

Delphi-Quellcode:
  for i := 0 to CheckListBox1.Items.Count do
  begin
    if CheckListBox1.State[i] = cbUnchecked then UnCheckedItems := UnCheckedItems + 1;
  end;

  for i := 0 to CheckListBox1.Items.Count-UnCheckedItems do
  begin
    if CheckListBox1.State[i] = cbUnchecked then CheckListBox1.Items.Delete(i);
  end;
Wieso bekomme ich immer noch diese Fehlermeldung?


C ya.
Support bacteria! They are the only culture some people have...
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#2

Re: CheckListBox - mehrere Einträge löschen

  Alt 16. Okt 2004, 13:25
da, wenn du den Wert mit Index 0 löscht, der Count nicht aktualisiert wird

am besten einfach
Delphi-Quellcode:
  i := 0;
  while i < CheckListBox1.Items.Count do
    if CheckListBox1.State[i] = cbUnchecked then CheckListBox1.Items.Delete(i)
    else inc(i);

[edit]
ups, das mit dem Index von oben ist flasch ... da hast du nur bis Count gezählt, darfst aber nur bis Count-1 zählen !

Aber kannst ja auch einfach die while Schleife verwenden !
[/edit]
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
Benutzerbild von HaCkAttaCk2001
HaCkAttaCk2001

Registriert seit: 4. Nov 2003
Ort: Chemnitz
95 Beiträge
 
#3

Re: CheckListBox - mehrere Einträge löschen

  Alt 16. Okt 2004, 16:13
Hi.

Boah das funzt ja wie geschmiert . Ich glaub ich muss mal einen für die DPler ausgeben. Was ihr mir schon so geholfen habt .


C ya!
Support bacteria! They are the only culture some people have...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:03 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