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
    Trauben

    und 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! 😃


Anmelden zum Antworten