Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Controlar fecha menor en DateTimePicker (https://www.clubdelphi.com/foros/showthread.php?t=33401)

Caro 05-07-2006 21:21:52

Controlar fecha menor en DateTimePicker
 
Hola a todos

Quisiera hacer un control en mis DateTimePicker, en el primero se introduce la fecha inicial y en el segundo la fecha final. La fecha final no debe ser nunca menor que la fecha inicial, eso es lo que quiero controlar. Que cuando este cambiando la fecha final y resulte ser menor que la fecha inical me saque un mensaje indicando que no puede cambiar la fecha y la fecha que tenia se mantenga sin cambiar a la nueva fecha, podrian darme una idea de como hacer esto lo intentado pero no he conseguida.

Código Delphi [-]
procedure TForm1.DateTimePicker2Change(Sender: TObject);
begin
     IF DateTimePicker2.DateTHEN
     begin
        showmessage('La Fecha Final debe ser mayor que la Fecha Inicial');
     end;
end;

He intentado primeramente sacar un mensaje, pero con el codigo que he puesto arriba se cicla mi programa. Las pruebas que hice, cuando marco una fecha menor en el mismo mes, me muestra 2 veces el mensaje, pero si le cambio a un mes menor se cicla, no desaparece el mensaje y se nota que empieza a recorrer por todos los meses :eek:. Me podrian decir que es lo que pasa por favor, y como hago para no permitirle cambiar la fecha si es menor

Muchisimas gracias por adelantado

luisgutierrezb 05-07-2006 21:31:41

porque no usas algo asi:
Código Delphi [-]
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
    DateTimePicker2.MinDate := DateTimePciker1.Date;
end;

marcoszorrilla 05-07-2006 21:45:38

Pues yo propongo el siguiente cambio:
Código Delphi [-]
procedure TForm1.FormActivate(Sender: TObject);
begin
DateTimePicker2.MinDate:=DateTimePicker1.Date;
end;

Porque, lo propuesto va a funcionar el 90% de las veces, salvo que el usuario cambie únicamente el DateTimePicker2, entonces al no haber pulsado antes en el 1 no tendría ningún tipo de limitación.

Un Saludo.

Caro 05-07-2006 22:02:06

Muchisimas Gracias luisgutierrezb y marcoszorrilla, es lo que necesitaba, pero vi un pequeñito problema, ya sea poniendolo en el evento onchange del dateTimePicker o en el onActivate del formulario.

Por ejemplo, mi fecha ini = 05/07/2006 y mi fecha fin = 21/07/2006
Si en mi DateTimePicker de mi fecha final elijo la fecha 05/07/2006 me saca un mensaje 'Date is less than minimum of 05/07/2006' y me lo cambia a esa fecha al precionar aceptar, el problema esta ahi la fecha ya seria igual a la inicial la cual debe ser mayor, pero si elijo una fecha mucho menor a 05/07/2006 funciona super bien, no me cambia la fecha ni me deja salir del dateTimePicker. Como puedo solucionarlo amigos.

marcoszorrilla 05-07-2006 22:19:04

Código Delphi [-]
 procedure TForm1.FormActivate(Sender: TObject);
begin
DateTimePicker2.MinDate:=DateTimePicker1.Date + 1;
end;

Un Saludo.

Caro 06-07-2006 01:52:59

Muchas Gracias marcoszorrilla


La franja horaria es GMT +2. Ahora son las 20:40:53.

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