Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-10-2004
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 22
Walterdf Va por buen camino
Autocompletar un TEdit (solución, no consulta)

Buenas
Alguna vez he necesitado autocompletar un TEdit en base al texto de una tabla y la recomendación fue usar otro componente como dblookupcombobox, lo cual me vino bárbaro. Pero, en estos días realicé una aplicación en el cual logré hacer un tedit que se autocompleta y quería poner un ejemplo a disposición del foro por si les interesa. Aclaro que no soy programador experto, este código es simple y totalmente mejorable.

Componentes a usar:
-un TQuery apuntando a la base de datos
-un TEdit (en el cual se realizará la búsqueda)

Procedimiento:-
En el evento OnChange del TEdit (Filtra la consulta con el texto que se escriba en el edit)

Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
begin
  with query1 do
      begin
        Close;
        with sql do
          begin
            clear;
            add('Select * from base.db where campo like ' + quotedstr(edit1.Text + '%')+ 'order by campo');
          end;
        Open;
      end;
end;

En el evento OnKeyUp del Edit:

Código Delphi [-]
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  texto , campo : string;
begin
  texto:=edit1.text;
  contador:=contador+1;
  campo:=query1.FieldByName('campo').AsString;
  Delete(campo,1,contador);
  edit1.Text:=texto + campo;
  edit1.SelStart:=contador;
  edit1.SelLength:=30 //tamaño del campo
end;

La variable "contador" la ponemos como public

En el evento OnCreate del form:

Código Delphi [-]
contador:=0;

Yo he puesto algunos eventos de teclado para evitar ciertas teclas (tab, enter, etc.) , pero eso ya va a gusto del consumidor, como dije antes, es totalemente mejorable. (Lo hice en Delphi 4 con una base de datos Paradox).
Un abrazo y espero le sirva a alguien.

Walter

Última edición por Walterdf fecha: 04-10-2004 a las 22:12:52. Razón: Equivoqué la posición de una etiqueta
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:29:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi