Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-03-2009
jotaeme jotaeme is offline
Registrado
 
Registrado: mar 2009
Posts: 6
Poder: 0
jotaeme Va por buen camino
Solo una llamada a Onchange de tedit. ¿Se puede?

Hola,

Mi problema es el siguiente:

Tengo un Tedit y un TUpDown para insertar números. Cada vez que se modifica el valor del Tedit(ya sea por teclado o por el TUpDown) tengo que hacer una consulta a Base de Datos.

Estoy usando el evento OnChange del Tedit, pero el problema es por ejemplo, si tengo el valor 2 en el Tedit y el usuario pulsa 8 veces continuas en TUpDown para cambiarlo a 10, quiero que solo se haga la consulta del último valor, no las otras 7 consultas. ¿Sabeis si esto se puede hacer?, lo mismo me ocurre si el usuario escribe 143 en el tedit, no quiero que se hagan las consultas con los valores 1 y 14, solo cuando haya terminado de escribir todo.

Gracias
Responder Con Cita
  #2  
Antiguo 05-03-2009
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 18
juanlaplata Va por buen camino
y, segun lo dicho, el OnChange se produce cuando algo cambia dentro del TEdit, aun si lo estas borrando, por lo cual no conseguiras que no se ejecute la consulta la cantidad de veces que se produce eñ OnChange. Se me ocurre que tendrias que poner la opcion (boton, o lo que sea) que diga, "hay un valor definitivo" para el TEdit.
Tambien habria que ver que tan costosa es esa consulta, ya que tal ves no le va a tu diseño/manejo otra opcion (boton, etc).

PD: mirando un poco, ya dentro de delphi, esta el Evento OnExit, que es cuando el control pierde el foco, talves ahi es el momento de ejecutar la consulta.

PD 1 : Echa un vistazo a la pestaña "Samples" ahi esta el "SpinEdit" es un TEdit con UpDown Incorporado, todo un solo componente. Y este serviria mejor para el OnExit, yq que en tu caso se produciria OnExit al pasar del TEdit al UpDown y aun no te has hido por completo de la operacion.

Espero haber ayudado, estaremos por aqui para lo que podamos.
Responder Con Cita
  #3  
Antiguo 05-03-2009
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.732
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Puedes usar un TTimer para que haga la consulta, por ejemplo, 1/4 de segundo después de la última tecla.

Código Delphi [-]
procedure TForm1.OnCreate();
begin
   // Inicializo Timer
   TimerConsultaSQL.Enabled := False;
   TimerConsultaSQL.Interval := 250;
end;

procedure TForm1.TEditOnChange();
begin
   // Reseteamos el Timer
   TimerConsultaSQL.Enabled := False;
   TimerConsultaSQL.Enabled := True;
end;

procedure TForm1.TimerConsultaSQLOnTimer();
begin
   // Paramos el Timer
   TimerConsultaSQL.Enabled := False;
   // Hacemos consulta
   //...
   //...
   //...
end;
Responder Con Cita
  #4  
Antiguo 05-03-2009
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 288
Poder: 21
kalimero Va por buen camino
Hola.Pureba con esto
Código Delphi [-]
try
 miedit.onchange := ni;
 HAGO LO QUE SEA
finally
 miedit.onchange := miEditOnchange;
end;

saludos
Responder Con Cita
  #5  
Antiguo 06-03-2009
jotaeme jotaeme is offline
Registrado
 
Registrado: mar 2009
Posts: 6
Poder: 0
jotaeme Va por buen camino
Gracias,

Ya lo he solucionado. He usado el SpinEdit y un sleep dentro del Onchange.

El sleep no lo podia usar antes puesto que me daba problemas y se quedaba el foco en el TUpDown, pero con el SpinEdit no ocurre.

Un saludo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TEdit tipo Google, se puede??? NeoAnderson API de Windows 1 19-04-2008 18:08:46
Emular con cxCurrencyEdit evento OnChange de un TEdit. ¿ Alguien sabe ? calogero Varios 4 06-06-2007 22:24:56
¿Como hacer una Consulta en el Onchange de un TEdit? day_eli Conexión con bases de datos 8 28-01-2007 04:06:53
se puede personalizar un TEdit? fedelphi Varios 4 05-12-2006 16:29:28
TEdit que acepte solo integer Dave B. Varios 2 09-09-2004 02:14:48


La franja horaria es GMT +2. Ahora son las 03:34:54.


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