![]() |
Listbox loescht verkehrtes item.
Hallo Leute ich brauche nochmal kurz euere Hilfe bitte.
Ich habe eine Listbox die wird verglichen met eine StringListe, jetzt wollte ich das wenn ein Item nicht in der StringListe vorkommt das es aus der Listbox entfernt wird.
Delphi-Quellcode:
Kann mir da einer helfen bitte?
for b := y.Count-1 downto 0 do
for p := ListBox1.Items.Count-1 downto 0 do if not listbox1.Items.IndexOf(y.Strings[b])= -1 then begin ListBox1.Items.Delete(b); //Loescht aber das verkehrte Item// showmessage(listbox1.Items.Strings[b]); //zur Kontrolle zeigt das richtig zu loeschende Item an// end; Ist bestimmt nen kleinen Fehler aber ich sehe ihn im Moment nicht. MFG Lucius. |
Re: Listbox loescht verkehrtes item.
Versuche es so:
Delphi-Quellcode:
for b := y.Count-1 downto 0 do
begin p := listbox1.Items.IndexOf(y.Strings[b]); if p <> -1 then ListBox1.Items.Delete(p); end; |
Re: Listbox loescht verkehrtes item.
Also wenn du erst löschst und dann das showmessage kann ja garnicht das richtige angezeigt werden, da es sich nicht mehr in der listbox befindet ;)
|
Re: Listbox loescht verkehrtes item.
Flocke, dein Code loescht das verkehrte Item aus der Listbox.
Scorpion, hast recht. |
Re: Listbox loescht verkehrtes item.
Wenn ich deinen Code richtig `verstehe´ dann bezieht sich der Index "b" auf die Liste "y" und der Index "p" auf "ListView1.Items". Wieso prüfst du denn erst, ob "y.Strings[b]" vorhanden ist, wenn du dann doch "ListView1.Items[b]" löscht?
|
Re: Listbox loescht verkehrtes item.
Hallo Flocke ich werde es dir mal erklaeren, also
die StringListe y wird immer gefuellt mit 20 Items, die StringListe y wird dan von unten ab vergliechen mit den Listbox Items wenn es Unterschiede gibt werden diese in eine Stringliste w uebergeben. Die StringListe w enthaelt also die NEU hinzugekommenen Items, diese werden wieder an der Listbox hinzugefuegt(Insert(0, --)). So jetzt kann es aber mal vorkommen das ein Item wieder vom Server aus der StringListe y rausgenommen wird, das dan wohl noch in der Listbox steht also ist die Listbox nicht mehr aktuell und jetzt kommt der Code den ich gepostet habe der das Item wieder rausnehmen soll. Hoffentlich verstehst du was ich meine. GRuss Lucius. |
Re: Listbox loescht verkehrtes item.
Dann ist dein Code oben aber ziemlich `unsinnig´ (gelinde gesagt) 8)
Du willst also alle Zeilen aus "ListView1" löschen, die nicht in "y" stehen? Das geht so:
Delphi-Quellcode:
for p := ListBox1.Items.Count - 1 downto 0 do
if y.IndexOf(ListBox1.Items[p]) = -1 then ListBox1.Items.Delete(p); |
Re: Listbox loescht verkehrtes item.
Ja Flocke funktioniert, vielen Dank.
Zitat:
MFG Lucius. |
Re: Listbox loescht verkehrtes item.
Zitat:
|
Re: Listbox loescht verkehrtes item.
Dank leddl fuer die Bestaetigung. :wink:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz