Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - TListBox - Doppelte Einträge entfernen
Moritz M. - Sa 08.03.03 09:19
Titel: TListBox - Doppelte Einträge entfernen
Hi
Gibt es eine Prozedur um in einer TListBox doppelt vorhandene Einträge zu entfernen? Oder gibt es eine Variable, die man setzt kann, dass dann ein Eintrag, der schon vorhanden ist, gar nicht hinzugefügt wird? Von sowas hab ich nämlich mal gehört.
Thx
Keldorn - Sa 08.03.03 13:33
Titel: Re: TListBox - Doppelte Einträge entfernen
Onz hat folgendes geschrieben: |
Hi
Gibt es eine Prozedur um in einer TListBox doppelt vorhandene Einträge zu entfernen?
|
meines wissens nach nicht
Zitat: |
Oder gibt es eine Variable, die man setzt kann, dass dann ein Eintrag, der schon vorhanden ist, gar nicht hinzugefügt wird? Von sowas hab ich nämlich mal gehört.
|
ja nennt sich duplicates und ist entweder bei den Listbox oder bei Items->TStrings drin. (Hab grad kein aktuelles Delphi zu hand, kann nicht nachguggn)
Mfg Frank
Spike - Sa 08.03.03 13:46
Es gibt die Eigenschaft Duplicates := DupIgnore
Allerdings für TStringList. Hat nur Auswirkung wenn Sorted true ist.
Moritz M. - Sa 08.03.03 19:26
Das geht irgendwie nicht... :cry:
Keldorn - Sa 08.03.03 19:53
ok, stringlist wars, sorry
wenn du den Umweg über eine Stringlist nicht gehen willst, nutze indexof
Ich bin auch ziemlich sicher, daß das mit duplicate vor kurzem hier im Forum behandelt wurde, such mal
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| procedure TForm1.Button1Click(Sender: TObject); //Item nur hinzufügen, wenn es noch nicht in Liste ist begin if ListBox1.Items.indexof(edit1.text)=-1 then listbox1.items.add(edit1.text); end;
procedure TForm1.Button2Click(Sender: TObject); //alle doppelten Items in der Listbox löschen Var i:integer; S:string; begin with listbox1 do begin i:=items.count-1; //Listbox vom Ende durchgehen while i>=0 do begin s:=items[i]; while items.indexof(s)<>i do begin items.Delete(items.indexof(s)); dec(i); end; dec(i);//nächstes item end; end; end; |
ähh, hau mich nicht, wenn das zweite nicht auf Anhieb klappt, ist mir grad so eingefallen
Mfg Frank
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!