Nach Item in ListBox suchen
-
Hallo, wie kann ich nach einem Item in einer ListBox suchen, das ich in Edit1 eingegeben habe.
Also z. B.:
Apfel
Birne
Traubenund im Edit1 dann "Apfel" oder nur "Apf" eingeben, und das gefundene Item dann selektiert wird?
Danke.
-
Suche in der Hilfe nach TStrings und der Methode IndexOf.
-
Danke, ich habe es aber jetzt so gelöst:
for (int i = 0; i < ListBox2->Items->Count; ListBox2->Items->Count - 1) { AnsiString itemTextx = ListBox2->Items->Strings[i]; if (itemTextx.Pos(Edit1->Text)) { ListBox2->ItemIndex = i; break; } if (ListBox2->Items->Strings[i] == Edit1->Text) { ListBox2->ItemIndex = i; break; } }
Mit break; verhindere ich, dass sich das Programm nach der Suche aufhängt - wenn ich aber erneut nach etwas suchen will, also den for-loop erneut aufrufen, stürzt mein Programm ab. Kann ich das irgendwie lösen? Danke.
-
Hallo,
Geh mit dem Debugger durch und schau nach wo dein Programm abstürzt.
Schau dir mal deinen Schleifenkopf genau an. Wo zählst du i denn hoch?
Was soll ListBox2->Items->Count - 1 im Schleifenkopf bewirken? Wie funktioniert eine for-Schleife?Und schau dir bitte in der Hilfe mal an was AnsiString::Pos zurückgibt wenn nichts gefunden wird. Dann kannst du deine Suche vereinfachen.
-
Danke für die Tipps, das mit dem Hochzählen von i hat funktioniert!