Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Tiempo en un evento (https://www.clubdelphi.com/foros/showthread.php?t=71399)

cmfab 16-12-2010 16:59:36

Tiempo en un evento
 
Hola amigos, acá de nuevo con mis dudas.

Como puedo programar el evento onkleyup de un objeto pero que el codigo programado en el se ejecute cada cieros milisegundos. me explico. por ejemplo el usuario escribe cierta cantidad de caracteres en un Tedit. a la par se van fuiltrando los campos de una tabla. necesito que este filtrado no sea por cada uno de los caracteres escritos, sino que se haga cada cierta cantidad de milisegundos. alguna idea. gracias

Neftali [Germán.Estévez] 16-12-2010 17:12:47

Cita:

Empezado por cmfab (Mensaje 385166)
Como puedo programar el evento onkleyup de un objeto pero que el codigo programado en el se ejecute cada cieros milisegundos.

Utiliza un TTimer, configura el intervalo y el el evento del Timer simplemente llama al OnKeyUp del control de edicion.

Código Delphi [-]
var 
 mKey:Word;
begin
  ...
  Self.Edit1KeyUp(nil, mKey, []);

No lo he probado, pero algo así debería funcionar. Pruébalo y dinos si hay algun problema con los parámetros.

ecfisa 16-12-2010 17:14:06

Hola.

No entiendo para que queres implementarlo así, pero se puede hacer con un TTimer.

Poné un TTimer, el Interval que quieras (1000 = 1s) y luego esto en el evento OnTimer del mismo:

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Query.Close;
  Query.SQL.Text:= 'SELECT * FROM TU_TABLA WHERE TU_CAMPO LIKE '+
    QuotedStr(Edit1.Text+'%');
  Query.Open;
end;

Saludos.

luisgutierrezb 16-12-2010 18:43:06

creo que aunque un timer puede funcionar no seria lo mas optimo segun lo que entiendo es que al estar escribiendo en el edit no haga consultas a lo loco por cada caracter que se escribe y si se utiliza el puro timer y no escribe nada tambien haria consultas inecesarias creo que lo que busca es una mezcla de los 2, o sea al momento de presionar la tecla pero que no busque tecla por tecla si no esperar cierto tiempo para dar tiempo de que escriban a lo mejor unos 3 caracteres y entonces hacer la busqueda y si no se sigue escribiendo nada entonces si que haga la busqueda por el tiempo, en base a esto puedes activar y desactivar el timer

cmfab 16-12-2010 19:52:02

Gracias a todos por responder lo que plantea ecfisa es justamente lo que quería. si teneis razon. establecer el filtro en el timer. solo queria agrgar que el timer se dispara al capturar una tecla oprimida por el usuario en el evento onkeyup del edit.

Gracias de nuevo a todos por interesarse


La franja horaria es GMT +2. Ahora son las 07:41:34.

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