Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#3

Re: Listbox Einträge vergl., bei Doppelbelegung einen Lösche

  Alt 9. Okt 2008, 12:09
Hallo,
p und o sind bei Dir doch immer gleich, Du vergleichst da anscheinend einen Eintrag immer mit sich selbst und da die Schleife aufhört, wenn count <> 5, wird bei 5 Einträgen nur der erste gelöscht, da danach ja nur noch 4 vorhanden sind, änderst Du until (listbox0.Items.Count <> 5) or (o = 5); auf until (listbox0.Items.Count <> 3) or (o = 3); werden entsprechend mehr Einträge gelöscht. Willst Du zwei hintereinanderliegende Einträge miteinander vergleichen, so sollte p um eins größer als o sein.
Versuchs mal damit:
Delphi-Quellcode:
if listbox0.Items.Count = 5 then
begin
  o:=1;
  repeat
    if (listbox0.Items[o][5] + listbox0.Items[o][7] + listbox0.Items[o][9]) =
       (listbox0.Items[o - 1][5] + listbox0.Items[o - 1][7] + listbox0.Items[o - 1][9]) then
         listbox0.Items.Delete(o);
    Inc(o);
  until (listbox0.Items.Count <> 5) or (o = 5);
end;
p ist dann überflüssig.
  Mit Zitat antworten Zitat