Delphi - Inkrementáló keresés egy ListBox-ban

forráskód letöltése
Ha szeretnénk egy TListBox-ban lévő elemet úgy megkeresni, hogy elkezdjük begépelni a megfelelő szót és a TListBox mindig az addig beírt sztringnek megfelelő elemre ugorjon, akkor némi varázslatra van szükség, mert alaphelyzetben mindig csak az elemek legelső karakterét veszi figyelembe.

Ha például van két elemünk "AC" és "AE", akkor az "A" lenyomására mindig a következő "A"-val kezdődő elemre ugrik, ha pedig lenyomjuk az "E" billentyűt is, akkor nem történik semmi.

Ha azt szeretnénk, hogy az "A" lenyomására az első elemre, míg ha tovább írjuk, vagyis lenyomjuk az "E" billentyűt is, akkor pedig a második elemre ugorjon a TListBox, akkor a mellékelt példaprogramból megtudhatjuk, hogy miként lehet rávenni erre ezt a komponenst. Ha szeretnénk egy TListBox-ban lévő elemet úgy megkeresni, hogy elkezdjük begépelni a megfelelő szót és a TListBox mindig az addig beírt sztringnek megfelelő elemre ugorjon, akkor némi varázslatra van szükség, mert alaphelyzetben mindig csak az elemek legelső karakterét veszi figyelembe.

Ha például van két elemünk "AC" és "AE", akkor az "A" lenyomására mindig a következő "A"-val kezdődő elemre ugrik, ha pedig lenyomjuk az "E" billentyűt is, akkor nem történik semmi.

Ha azt szeretnénk, hogy az "A" lenyomására az első elemre, míg ha tovább írjuk, vagyis lenyomjuk az "E" billentyűt is, akkor pedig a második elemre ugorjon a TListBox, akkor a mellékelt példaprogramból megtudhatjuk, hogy miként lehet rávenni erre ezt a komponenst.

A példa könnyebb áttekinthetősége miatt, most egy TEdit komponensbe történhet a keresendő szöveg beírása, természetesen ezen az elven lehet olyan új TListBox komponenst készíteni, amely már eleve tudja ezt a funkciót.

Ha tehát elkezdünk a TEdit-be egy szöveget beírni, akkor a TListBox-ban az aktuálisan kiválasztott elem folyamatosan változik, attól függően, hogy milyen szöveget írtunk be.

Ha a TEdit-ben lévő szöveget a Backspace-el elkezdjük törölni, akkor visszafelé lépkedhetünk a TListBox-ban. Ha pedig a TEdit üres lesz, akkor a TListBox-ban sem lesz kijelölt elem.

A TEdit-be ha részben már begépeltünk egy elemet és Enter-t nyomunk, akkor az aktuálisan kiválasztott elem kerül át a TEdit komponensbe.