tengo una busqueda de un cliente donde uso un dbgrid para mostrar los clientes donde los clientes me los ordena en orden alfabetico
pero solo me ubica si le pongo lo primero por ejemplo
CLIENTE : MARIO HINOJOSA PEREZ
cuando le tecleeo el dato a buscar me encuentra el registro si empiezo tecleando MARIO pero si en ves de eso le pongo HINOJOSA no me lo encuentra y tambien queria que resaltara en el dbgrid el registro encontrado... me explico ..? la verdad no se como hacerle para hacer la busqueda mas avanzada...uso la orden LOCATE para buscar el registro
Código Delphi
[-]
procedure Taltadecontratos.edtBuscarCteChange(Sender: TObject);
var
cadenaAbuscar:String;
codcliente:Integer;
begin
cadenaAbuscar:=edtBuscarCte.Text;
if (cmbBusqCte.ItemIndex<>1)and(CadenaAbuscar<>'') and (not TryStrToInt(cadenaAbuscar,codcliente)) then
begin
ShowMessage('En el campo de Codigo solo puede escribir numeros, ponga cuidado por favor');
edtBuscarCte.SetFocus;
exit;
end;
if (cmbBusqCte.ItemIndex=1) then
LogicaNegocio.CDSclieCOD.Locate('CLIENTE',edtBuscarCte.Text,[loPartialKey]);
end;
procedure Taltadecontratos.DBGridMostrarClientesDblClick(Sender: TObject);
var
codclie:integer;
begin
codclie:=logicanegocio.CDSclieCODCOD_CLIENTE.Value;
edtBuscarCte.Text:=logicanegocio.CDSclieCODCLIENTE.Value;
DBGridMostrarClientes.Visible:=False;
With logicanegocio do
begin
If Dadodealta=true then ShowMessage('Debe de terminar o cancelar el contrato que esta haciendo ahorita');
cdsunCliente.Close;
cdsunCliente.Params.ParamByName('COD_CLIENTE').AsInteger:=codclie;
CdsunCliente.Open;
end; end;
procedure Taltadecontratos.cmbBusqCteChange(Sender: TObject);
begin
case cmbBusqCte.ItemIndex of
0: begin edtBuscarCte.MaxLength:=0; end;
1: begin
edtBuscarCte.MaxLength:=0;
LogicaNegocio.CDSclieCOD.IndexFieldNames:='Cliente';
DBGridMostrarClientes.Visible:=true;
end;
end;
edtBuscarCte.Text:='';
edtBuscarCte.SetFocus;
end;
este es todo el codigo que uso garcias por su gran ayuda