AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Listenindex überschreitet das Maximum (9).
Thema durchsuchen
Ansicht
Themen-Optionen

Listenindex überschreitet das Maximum (9).

Ein Thema von Mr Whoopee · begonnen am 16. Aug 2004 · letzter Beitrag vom 16. Aug 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Listenindex überschreitet das Maximum (9).

  Alt 16. Aug 2004, 16:03
Zitat von Stevie:
Und warum bitte????
Zitat von dizzy:
\\edit: Ach jo, du willst ja selektiv löschen
... isch hatte mich vertan - sorry
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#12

Re: Listenindex überschreitet das Maximum (9).

  Alt 16. Aug 2004, 16:10
Zitat von dizzy:
... isch hatte mich vertan - sorry
Na gut!!!
Delphi-Quellcode:
i := 0;
while i < ListBox1.Items.Count do
  if ListBox1.Items[i] = schueler.Text then
    ListBox1.Items.Delete(i)
  else
    Inc(i);
dürfte übrigens für große Texte schneller sein, als
Delphi-Quellcode:
with ListBox1.Items do
  Delete(IndexOf(schuler.text));
weil, IndexOf immer wieder vom Anfang an durchsucht.
Aber das nur so nebenbei...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#13

Re: Listenindex überschreitet das Maximum (9).

  Alt 16. Aug 2004, 16:14
Moin!

Warum das andere mit der While Schleife auch Murks ist? Ganz einfach:

For und While Schleifen holen sich vor dem Eintritt in die Schleife die Werte für die Bedingung nur einmalig und aktualisieren sie nicht mehr beim Durchlauf. Daher kommt es zu dem Fehler. Wenn man Glück hat, tritt dies bei einer While Schleife nicht auf, weil die Optimierung des Compilers dort was anderes draus macht - dem kann man sich aber nie sicher sein.

Man kann übrigens zu den hier geposteten While Schleifen auch alternativ eine For Schleife nehmen, nur man muss sie rückwärts durchlaufen:

Delphi-Quellcode:
  For i := ListBox1.Items.Count-1 DownTo 0 Do
    If ( ... ) Then
      ListBox1.Items.Delete(i);
MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#14

Re: Listenindex überschreitet das Maximum (9).

  Alt 16. Aug 2004, 16:21
So, und damit die Liste der (an der Frage völlig vorbei) Schleifen voll ist:
Delphi-Quellcode:
repeat
  ListBox1.Items.Delete(0);
until ListBox1.Items.Count = 0;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 11:42 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