hola compañeros la verdad es que quiero hacer algo muy parecido a lo que google tiene en su caja de busqueda escribo una letra y se muestran abajo los resultados posibles relacionados;los mios los obtengo de una base de datos.
Bueno hasta ahora el unico problema que tengo es que cuando encuentro un resultado parecido digamos Ma en la caja de texto del combo(donde escribo ) me pone Maria Concepción ( osea el primer resultado) pero yo no quiero que me ponga en automatico el primer resultado.
Ademas una ves hecho esto de completar con algun registro la proxima tecla que presiono se va al inicio del texto digamos asi
Ma
ria Concepcion (aparte que solo pone en azul el resto de la palabra) la próxima tecla seria E en el combobox edit aparece
EMariaConcepcion.
el estilo de mi combobox1 es csDropDown
este es el código que utilizo
Código Delphi
[-]
procedure Tform1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if length(combobox1.Text)>1 then begin
busca(combobox1.Text);
end ;
form1
procedure busca(cadena:String);
var combo:string;
begin
m.piezascot.SQL.Clear;
m.piezascot.SQL.Add('select * from seleccionapiezasarea where n like '+quotedstr(cadena+'%%')+' and c <> all (select id_final_piezaspresupuestos from partes_pedido where cve_servicio='+
form1.claveservicio+') order by n asc');
m.piezascot.Open;
form1.clavespiezas.Clear;
form1.combobox1.Items.Clear;
form1.cclaveservicio.Clear;
while not m.piezascot.Eof do
begin
if form1.ComboBox1.Items.IndexOf(m.piezascot.fieldbyname('n').AsString)=-1 then form1.ComboBox1.Items.Add(trim(m.piezascot.fieldbyname('n').AsString));
if form1.clavespiezas.Items.IndexOf(m.piezascot.fieldbyname('c').AsString)=-1 then form1.clavespiezas.Items.Add(m.piezascot.fieldbyname('c').AsString);
if form1.cclaveservicio.Items.IndexOf(m.piezascot.fieldbyname('servicio').AsString)=-1 then form1.cclaveservicio.Items.Add(m.piezascot.fieldbyname('servicio').AsString);
m.piezascot.Next;
end;
end;
Muchas gracias por su tiempo espero haber explicado bien y animo!