Para optimizar había pensado con este if:
Código Delphi
[-]if copy(Listbox1.Items[i], 1, length(edit1.text) > edit1.text then
break
Pero no funciona, pues Ló es más grande que Lu, con esto quiero decir que, si por ejemplo busco Lucena no lo encuentra, dado que antes encuentra López y al ser mayor, sale del bucle