ganz simpel:
Delphi-Quellcode:
if MeineListBox.Items.IndexOf(NeuerString)<0 then
Begin
MeineListBox.Items.Add(NeuerString);
End;
Edit: Da bin ich ja nicht der einzige
Deine Version machte folgendes:
- Laufe über alle Elemente in der Listbox
- Prüfe
bei jedem Element, ob es dem Eingabetext entspricht.
- Falls nicht: Füge den neuen Text in die Liste ein
Du siehst hier klar den Denkfehler: Du darfst nicht schon einfügen, wenn nur der erste Vergleich ergeben hat, dass das vorhandene Element an der Stelle ungleich dem Eingabetext ist, sondern erst wenn
alle derartigen Vergleiche ohne Ausnahme negativ waren. Das kann man sich also entweder über ein Flag merken (das sieht aber immer etwas unbeholfen aus), oder man fragt einfach die Listbox, ob sie den Eingabetext schonmal gesehen hat (mittels IndexOf)
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet.
" (Henning Richter)