Pa sad, sam nacin je manje-vise vrlo jednostavan, zato sam radije i pastovao source, jer mi se algo cini prostim; treba izabrati samo pravi event (na pritisak samo jednog, bilo kojeg tastera u fokusu te komponente). Browsiras samo listu prethodno unesenih vrednosti, te prikazes samo prvi koji odgovara unesenom patternu - ako je pritisnuto jedno slovo, npr "a", onda prvi entry u listi koji pocinje sa "a".
S tim da ono sto si dodao markiras kao selected - u tu svrhu postoje ovde u delphijevim edit komponentama atributi SelStart i SelLength -> prvi karakter od kojeg krece obelezavanje i broj koliko njih u nizu obelezavas (respektivno). Naravno, pamtis interno sta je korisnik uneo (moze na dva nacina; bilo da pamtis string, bilo da pamtis samo zavrsni index zadnjeg unesenog karaktera -> ionako je uneo od 1 do n karaktera).
Tu je samo jedna jos odluka na tebi: koliko je ovo restriktivno; tacnije, da li dozvoljavas da se kucanjem bira samo i samo ono sto je u history, ili ces dopustiti da se unosi i ono sto ne postoji u listi. Ovaj source je, konkretno, restriktivan (meni je trebalo da se dozvoli izbor servera, ali samo stvarno raspolozivih servera u mrezi - punjenje i refresh te liste odradjuje sasvim drugi objekat i ne smem dozvoliti garbage tu). Tebi vrlo verovatno treba dozvoliti i unos vrednosti koje ne postoje u history, te mozes da uradis samo izmenu Else grane u "If Found" grananju, pa da ide nesto drugo umesto Beep. U tom slucaju mozes da setujes i neki dodatni flag koji oznacava da se doslo do tacke kada nema matching patternova vise u listi, te da na dalje eventove KeyPress ne radi loop kroz celu listu (jer ionako nece nista odgovarajuce naci). Nije neophodno, ali eto, mala optimizacija -> pogotovo ako radis svoju klasu sa takvim ponasanjem.