Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Comprobación del formato de fecha (https://www.clubdelphi.com/foros/showthread.php?t=35561)

luxus 13-09-2006 23:39:25

Comprobación del formato de fecha
 
Hola,
¿Me podeis decir como verificar si el formato de fecha introducido por el usuario es el correcto?
Gracias y saludos a todos

seoane 13-09-2006 23:52:08

Usa algo como esto:

Código Delphi [-]
function isDate(Date: string): boolean;
var
  D: TdateTime;
begin
  Result:= TryStrToDate(Date,D);
end;

ContraVeneno 14-09-2006 00:23:41

Por eso yo prefiero usar un DTPicker, no tengo que hacer ese tipo de validaciones.....

anghell77 14-09-2006 04:13:55

Posiblemente empleando un MaskEdit con máscara de Fecha:

Código Delphi [-]
procedure TForm1.MaskEdit1Exit(Sender: TObject);
begin
try
Tabla.CampoFECHA.Value:=StrToDate(MaskEdit1.text);
 //Captura al Campo de tipo Fecha de la Tabla X el valor del MaskEdit

  except
    Application.MessageBox('Formato de fecha incorrecto','Atención',mb_Ok +mb_IconQuestion);
    MaskEdit1.SetFocus;
  end;
end;

Aunque también puedes ver aqui y aqui algo interesante.


{Saludos}

ContraVeneno 14-09-2006 15:37:02

A lo que me refería era que para que quieres usar un control que tienes que disfrazar para utilizar fechas, cuando tienes un control específico para las fechas.

Estoy de acuerdo que con un Mask puedes hacer que funcione, hasta con un Edit puedes hacer que funcione. Pero el DTPpicker ya te da muuuuchas opciones y posibilidades listas para usarse; que si utilizaras un mask o un edit tendrías que re-programar todo eso.

Como por ejemplo, tener que validar que una fecha sea válida....

Así que insisto, ¿para que usar un mask cuando puedes usar un DTPicker?

anghell77 14-09-2006 19:04:58

Claro, Toda la Razón. Sin embago, únicamente, proponiendo un control con MaskEdit, por aquello de que a luxus, le siga pareciendo mejor emplear otro control....

Por Cierto Contra, en que evento es bueno evaluar una fecha con un DTPicker?....en una suposición, Existe fecha de Préstamo (asignada a la fecha de HOY, mediante:
Código Delphi [-]
DateTimePicker1.Date:=Date;
, ) y también está Fecha de Devolución. En que evento de un segundo DateTimePicker puedo evaluar que la Fecha de devolución no sea menor que la primera?

He hecho lo siguiente:
Código Delphi [-]
procedure TForm1.DateTimePicker2CloseUp(Sender: TObject);
begin
If(DateTimePicker2.Datethen
begin
 ShowMessage('La Fecha seleccionada no es válida. Asigne una fecha posterior');
 DateTimePicker2.Date:=Date;
end;
end;

Pero me gustaría saber en que controles del DateTimePicker2, se puede implementar la resta, para que al clickear sobre la flechita que retrocede el mes apunte a lo mismo: "La Fecha seleccionada no es válida. Asigne una fecha posterior". O es que el MinDate puede evitar que aparezcan los meses anteriores?....No o si? (Bueno ya estoy probando, pero agradeceria las opiniones)...

{Saludos}
Cita:

//EDITO: No me regañen, puede ser que ésta pequeña exposición de duda le parezca a luxus algo complementaria ya que entramos en el manejo de DTPicker

ContraVeneno 14-09-2006 22:21:26

Pues si, se puede hacer cualquiera de las dos cosas, pero creo qu yo lo haría en el evento OnChange del dtpicker, ya sea asignar un nuevo valor a MinDate o mostrando un mensaje

Caral 14-09-2006 22:35:18

Hola
No se si esto servira pero para validar dos fechas de dos DTPicK yo lo hago asi:
En El evento del DTPick ( OnCloseUp ):
Código Delphi [-]
procedure TFRepDatos.DTP2CloseUp(Sender: TObject);
begin
   If DTP2.Date < DTP1.Date then
   begin
      MessageDlg('Fecha del fin no puede ser menor que fecha de inicio.',mtError,[mbOK],0);
      DTP2.DateTime := DTP1.DateTime;
   end;
end;
Con esto la primera no puede ser mayor que la segunda fecha.
Tal Vez sirva
Saludos


La franja horaria es GMT +2. Ahora son las 21:59:10.

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