AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Listbox Einträge löschen

Ein Thema von ebber · begonnen am 5. Mär 2007 · letzter Beitrag vom 5. Mär 2007
Antwort Antwort
Seite 2 von 2     12   
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 15:20
Zitat von Khabarakh:
[...] [Pfotos] Code ist vollkommen richtig [...]
Nein (das hatte ich schon im Verlaufe dieses Threads erwähnt).
Wenn das letzte Element der Liste selektiert ist und gelöscht wird, dann ist in seinem Code danach i größer als ListBox.Items.Count. Dann hält die Schleife nicht an und es scheppert beim nächsten Schleifendurchlauf.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#12

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 15:52
Hallo Ingo,

vielleicht hat dich nur die unglückliche Formatierung des Quelltextes irritiert. Nach dem Löschen des Elements wird der Schleifenzähler nicht erhöht und die Schleife damit aufgrund der erfüllten Abbruchbedingung beendet.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 15:54
Zitat von IngoD7:
Zitat von Khabarakh:
[...] [Pfotos] Code ist vollkommen richtig [...]
Nein (das hatte ich schon im Verlaufe dieses Threads erwähnt).
Wenn das letzte Element der Liste selektiert ist und gelöscht wird, dann ist in seinem Code danach i größer als ListBox.Items.Count. Dann hält die Schleife nicht an und es scheppert beim nächsten Schleifendurchlauf.
Also bei mir funktioniert mein Code auch bei Löschung des letzten Elementes in der Liste...
aber egal, Hauptsache, das Problem ist gelöst.

Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 16:20
Zitat von Hawkeye219:
Nach dem Löschen des Elements wird der Schleifenzähler nicht erhöht und die Schleife damit aufgrund der erfüllten Abbruchbedingung beendet.


Zitat von Pfoto:
Also bei mir funktioniert mein Code auch bei Löschung des letzten Elementes in der Liste...


Zitat von Khabarakh:
Was habt ihr denn gegen den armen Pfoto, sein Code ist vollkommen richtig - den einzigen kleinen Fehler habt ihr aber übersehen: EListError bei leeren Items.

Zitat von IngoD7:
Nein (das hatte ich schon im Verlaufe dieses Threads erwähnt).


Ihr habt Recht. Ich nehme alles zurück und behaupte das Gegenteil. Sorry, Jungs!

Zitat von Hawkeye219:
vielleicht hat dich nur die unglückliche Formatierung des Quelltextes irritiert.
Darauf kannst du wetten! Trotzdem schwaches Bild von mir ...


//Edit:
Khabarakhs Zitat vervollständigt (Stichwort: Fehler bei leerer Liste), um nicht noch mehr Verwirrung zu stiften.
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 16:33
Nunja, Pfotos Code ist solange richtig, solange es mindestens ein Item gibt...
Bei einer leeren Liste fällt er mit der Funktion auf die Nase...

Performater und schöner wär es so:
Delphi-Quellcode:
Var i: Integer;
  For i := Listbox1.Items.Count - 1 Downto 0 Do Begin
    If Listbox1.Selected[ i ] Then Listbox1.Items.Delete( i );
  End;
Weil, nur eine einzige Abfrage in der Methode durchgeführt wird und nicht 2 wie bei
Pfoto...
Edit: Und weil diese auch bei leeren Listen funktioniert...

Viel Spass noch

Bye Christian
Christian
  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 15:05 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