AGB  ·  Datenschutz  ·  Impressum  







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

Listbox loescht verkehrtes item.

Ein Thema von lucius · begonnen am 8. Dez 2005 · letzter Beitrag vom 8. Dez 2005
Antwort Antwort
Seite 1 von 2  1 2      
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#1

Listbox loescht verkehrtes item.

  Alt 8. Dez 2005, 16:07
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:
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;
Kann mir da einer helfen bitte?
Ist bestimmt nen kleinen Fehler aber ich sehe ihn im Moment nicht.

MFG Lucius.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: Listbox loescht verkehrtes item.

  Alt 8. Dez 2005, 16:18
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;
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Scorpion

Registriert seit: 3. Nov 2002
Ort: Flörsheim
154 Beiträge
 
Delphi 5 Professional
 
#3

Re: Listbox loescht verkehrtes item.

  Alt 8. Dez 2005, 16:20
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
Gruß Nico
  Mit Zitat antworten Zitat
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Listbox loescht verkehrtes item.

  Alt 8. Dez 2005, 16:28
Flocke, dein Code loescht das verkehrte Item aus der Listbox.
Scorpion, hast recht.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: Listbox loescht verkehrtes item.

  Alt 8. Dez 2005, 16:36
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?
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Listbox loescht verkehrtes item.

  Alt 8. Dez 2005, 16:50
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.
  Mit Zitat antworten Zitat
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Listbox loescht verkehrtes item.

  Alt 8. Dez 2005, 17:47
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);
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Listbox loescht verkehrtes item.

  Alt 8. Dez 2005, 18:11
Ja Flocke funktioniert, vielen Dank.
Zitat:
Dann ist dein Code oben aber ziemlich `unsinnig´ (gelinde gesagt)
Kommt davon wenn man 2 Stunden am selben Code sitzt und probiert und probiert und ich bin eben noch kein Profi wie die meisten hier sind nehme ich an.

MFG Lucius.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Listbox loescht verkehrtes item.

  Alt 8. Dez 2005, 18:25
Zitat von lucius:
Kommt davon wenn man 2 Stunden am selben Code sitzt und probiert und probiert und ich bin eben noch kein Profi wie die meisten hier sind nehme ich an.
Das glaube ich nicht. Von den ca 16.000 Mitgliedern wird wohl die überwältigende Mehrheit reine Hobbyprogrammierer sein. Und selbst Profis passieren auch mal ziemlich dumme Fehler. Und nur durch Fehler lernt man, diese auch zu verhindern.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Listbox loescht verkehrtes item.

  Alt 8. Dez 2005, 18:30
Dank leddl fuer die Bestaetigung.
  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 23:35 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