El siguiente código se ejecuta cuando se presiona el botón buscar, si la cadena de texto ingresada coincide con algún ítem de la lista, el mismo es seleccionado.
procedure TFCProv.BBuscarClick(Sender: TObject);
var
nombre, item:String;
i, cant:Integer;
begin
nombre:=UpperCase(edBuscar.Text);
cant:=Length(nombre);
for i:=0 to lbProv.Count-1 do
begin
item:=UpperCase(lbProv.Items[i]);
if nombre=LeftStr(item,cant) then
begin
lbProv.ItemIndex:=i;
Break;
end;
end;
end;
En este caso la lista contiene nombres de proveedores, está ordenada, convierte a mayúsculas la cadena a buscar y el elemento a comparar. La variable entera cant se utiliza para saber la cantidad de caracteres que ingresó el usuario y hacer la búsqueda parcial, es decir, si el usuario ingresa "Ac" y hay en la lista un elemento "ACME" se compara "AC" con "AC". Como lo que se quiere es solo marcar el elemento en la lista (lbProv.ItemIndex), se hace y se utiliza break para salir.