Mirá este código a ver si te puede servir, a mi me sirve en todo tipo de búsqueda
Código Delphi
[-]
<div style="margin:20px; margin-top:5px">
<div class="smallfont" style="margin-bottom:2px">Código:div>
class="alt2" dir="ltr" style="
margin: 0px;
padding: 6px;
border: 1px inset;
width: 90%;
height: 66px;
text-align: left;
overflow: auto"> ibquery1.SQL.Clear;
ibquery1.SQL.Add('SELECT NROALUM,NOMBRE,LECTIVO,APELLIDO,FOTO FROM ALUMNO WHERE upper('+nombrecampo+') LIKE '+#39+'%'+edit1.text+'%'+#39+' ORDER BY APELLIDO');
ibquery1.Active:=true;
div>
donde dice +nombrecampo+ es una variable que contiene el valor del campo a relacionas, en este caso esta variable tomará el valor APELLIDO; y donde dice +edit1.text+ acá va lo que estamos buscando.
en mi caso si quiero buscar personas con el apellido "Moreno", al colocar en el Edit la letra M automáticamente selecciona todas las personas cuyo apellido comienza con M y si seguimos escribiendo, sigue discriminando hasta encontrar a los que queremos. Espero que te sirva