Ver Mensaje Individual
  #1  
Antiguo 15-11-2012
Avatar de DarkBlue
DarkBlue DarkBlue is offline
Miembro
 
Registrado: jun 2010
Posts: 105
Reputación: 14
DarkBlue Va por buen camino
Combobox como edit de google

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
Maria 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!
__________________
Todo es Relativo

Última edición por Casimiro Notevi fecha: 15-11-2012 a las 17:19:09.
Responder Con Cita