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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-12-2004
rebollo75 rebollo75 is offline
Miembro
 
Registrado: nov 2004
Posts: 46
Poder: 0
rebollo75 Va por buen camino
algo raro

hola a todos y feliz año 2005.

tengo un pequeño problema, bueno no tan pequeño. Tengo 2 datetimerpiker, el primero es una fecha inicial y el segundo una fecha final para hacer una busqueda entre las dos fechas.

en el de la fecha final, en el evento onchange tengo puesto:

if dtpfecfin.Date < dtpfecini.Date then
begin
showmessage('la fecha de finalizacion es menor que la de inicio.');
end;

bueno pues lo que me pasa es que el mensaje me sale 2 veces. haciendo el proceso paso a paso con f-8 cuando muestra la primera vez el mensaje y termina se me va a el evento ondrawcell y ya ahi se me queda colgado.

no entiendo nada de nada. si alguien sabe algo por favor que me ayude.

gracias.
Responder Con Cita
  #2  
Antiguo 29-12-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pues es cierto la pulsación sobre el botón aceptar provoca según parece el evento OnChange por segunda vez. Prueba con esto y verás como te funciona sin problemas.
Código Delphi [-]
 procedure TForm1.DateTimePicker2CloseUp(Sender: TObject);
 begin
   if DateTimePicker2.Date < DateTimePicker1.Date then
   begin
   showmessage('la fecha de finalizacion es menor que la de inicio.');
   end;
 end;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 30-12-2004
rebollo75 rebollo75 is offline
Miembro
 
Registrado: nov 2004
Posts: 46
Poder: 0
rebollo75 Va por buen camino
fue una solucion que pense, pero y si la modifica manualmente, sin tener que abrir la ventana?


gracias
Responder Con Cita
  #4  
Antiguo 30-12-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pues entonces utiliza el evento OnExit.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 30-12-2004
rebollo75 rebollo75 is offline
Miembro
 
Registrado: nov 2004
Posts: 46
Poder: 0
rebollo75 Va por buen camino
no me termina de convecer, pero es la unica forma que tengo de poder hacerlo.


muchas gracias y feliz año.
Responder Con Cita
  #6  
Antiguo 03-01-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Pon un boton de Buscar (TBitBtn, por ejemplo), al pulsarlo chequeas las fechas y muestras el mensaje.

De esta forma siempre que se pulse el boton, se habrá pasado por el evento OnExit de los controles de fechas.

Saludos
Responder Con Cita
  #7  
Antiguo 03-01-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Intenta algo como esto:

Código Delphi [-]
{$writeableconst on}
procedure TForm1.DateTimePicker2Change(Sender: TObject);
const
  Changing: Boolean = false;

begin
  if not Changing then
    ShowMessage('la fecha de finalizacion es menor que la de inicio.');

  Changing := not Changing;
end;
{$writeableconst off}

EDITO:

Lo anterior no funciona muy bien: si cambias con el teclado la fecha mientras está desplegado el calendario se muestra el mensaje una vez sí y otra no.

Veamos el siguiente intento:

Código Delphi [-]
procedure TForm1.DateTimePicker2Change(Sender: TObject);
begin
  if DateTimePicker1.Date <> Date then
  begin
    ShowMessage('Hola');
    Date := DateTimePicker1.Date;
  end;
end;

donde Date es una variable de tipo TDate que puedes inicializar con el valor de DateTimePicker2.Date.

// Saludos

Última edición por roman fecha: 03-01-2005 a las 08:23:06.
Responder Con Cita
Respuesta



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 20:56:44.


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