Bestimmte Einträge aus ComboBox entfernen
-
Hallo,
in meiner ComboBox habe ich zahlreiche Einträge, die nach folgenden Muster aufgebaut sind.
Wort1.WortA
Wort1.WortB
Wort1.WortC
Wort2.WortA
Wort2.WortB
Wort3.WortA
Wort3.WortB
Wort3.WortCNun möchte ich aus meiner ComboBox alle Einträge entfernen, in denen der String "Wort2." gefunden wird. Wie kann ich dies machen?
So habe ich es versucht:
String s1 = ""; String s2 = ""; for (int i = 0; i < COMBOX->Items->Count; i++) { s1 = tname + "."; s2 = COMBOX->Items->Strings[i]; // wenn enthalten if (s2.Pos(s1) != 0) { COMBOX->Items->Delete(i); } }
Dies funktioniert aber nicht, hat jemand ne Idee den Code so zu ändern dass er läuft, bzw. hat jemand ne bessere Lösung?
Arne
-
Du musst die Liste rückwärts durchlaufen, da sich sonst beim Löschen die Reihenfolge bzw. der Index der noch zu durchsuchenden Items verschiebt.
-
oder du nimmst ein bissel API zur hilfe:
AnsiString SuchString = "Wort2."; int ret = -1; while ((ret = SendMessage(ComboBox1->Handle, CB_FINDSTRING, -1, (LPARAM) (LPCSTR) SuchString.c_str())) != CB_ERR) SendMessage(ComboBox1->Handle, CB_DELETESTRING, ret, 0);
[ Dieser Beitrag wurde am 12.06.2003 um 23:02 Uhr von Sunday editiert. ]
-
Sunday:
Das war jetzt aber rein informativ gedacht, oder? Du würdest das doch nicht wirklich jemandem zur Anwendung (im BCB) empfehlen!?