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 1 von 2  1 2      
ebber

Registriert seit: 31. Okt 2006
243 Beiträge
 
#1

Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 13:50
Hallo

ich habe jetzt dieses:

Delphi-Quellcode:

Listbox1.Items.Delete(Listbox1.ItemIndex);
Wie kann ich das bei Multiselect mit mehreren Einträgen machen ?

MfG
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 13:55
ListBox1.SelCount liefert Dir die Anzahl der markierten Elemente.

Einfach eine Schleife programmieren

For i := 0 to ListBox1.SelCount-1 do
Uwe
  Mit Zitat antworten Zitat
Pfoto

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

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 14:11
Hi!

ich würde es so machen:

Delphi-Quellcode:
var
  i: integer;
begin
  i:= 0;
  repeat
    If Listbox1.Selected[i] then
      Listbox1.Items.Delete(i) else
      inc(i);
  until (i = Listbox1.items.count);

Gruß
Pfoto
Jürgen Höfs
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 14:12
Die Codevervollständigung hilft häufig weiter

ListBox1.DeleteSelected;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 14:14
@Pfoto: Beim Löschen, von oben anfangen!
Markus Kinzler
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 14:15
Zitat von Pfoto:
Hi!

ich würde es so machen:

Delphi-Quellcode:
var
  i: integer;
begin
  i:= 0;
  repeat
    If Listbox1.Selected[i] then
      Listbox1.Items.Delete(i) else
      inc(i);
  until (i = Listbox1.items.count);

Gruß
Pfoto
So würde es auch gehen, allerding möchte er ja nicht alle löschen

until (i = Listbox1.SelCount-1
Uwe
  Mit Zitat antworten Zitat
IngoD7

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

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 14:56
Zitat von uwewo:
Zitat von Pfoto:
Hi!

ich würde es so machen:

Delphi-Quellcode:
var
  i: integer;
begin
  i:= 0;
  repeat
    If Listbox1.Selected[i] then
      Listbox1.Items.Delete(i) else
      inc(i);
  until (i = Listbox1.items.count);

Gruß
Pfoto
So würde es auch gehen, allerding möchte er ja nicht alle löschen

until (i = Listbox1.SelCount-1
@uwewo
Du bist auf dem falschen Dampfer. Sieh doch mal in der Hilfe nach, was TListBox.Selected[] genau ist.

Abgesehen davon müsste die until-Anweisung wie folgt lauten, um nicht auf die Nase zu fallen, wenn der letzte Listeneintrag auch markiert war:until i >= Listbox1.Count; Abgesehen davon sollte man - wie hier schon erwähnt wurde - von oben löschen, also mit dem höchsten Index anfangen und runterzählen. Dann verhindert man zuverlässig die Möglichkeit, dass man sich "den Boden unter den Füßen weglöscht".

Abgesehen davon gibt es - wie hier auch schon erwähnt wurde - ein TListBox.DeleteSelected.

Abgesehen davon .. ach nö, das reicht nun.
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 15:10
@Ingo, natürlich hast Du Recht, hätte mir eigentlich auffallen müssen

Delphi-Quellcode:
var i: integer;
begin
  i := Listbox1.Items.Count-1;
   repeat
    If Listbox1.Selected[i] then
      Listbox1.Items.Delete(i);
      dec(i);
  until (i < 0);
Vielleicht können wir uns darauf einigen

[Edit]
TListBox.DeleteSelected gibt es nicht in allen Delphi Versionen.
[/Edit]
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 15:22
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.

Noch weniger zu sagen gibts natürlich gegen Matzes Methode .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
ebber

Registriert seit: 31. Okt 2006
243 Beiträge
 
#10

Re: Mehrere Listbox Einträge löschen

  Alt 5. Mär 2007, 16:03
Danke für eure Bemühungen.

Da

TListBox.DeleteSelected; bei mir geht denke ich mal es ist das einfachste.

MfG
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:18 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