Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Validar Fecha (https://www.clubdelphi.com/foros/showthread.php?t=31056)

Gustavo Gowdak 26-04-2006 23:28:48

Validar Fecha
 
Hola amigos como estan, les hago una pregunta, tengo una TEditMask para un campo fecha, luego de ingresar la fecha al salir del campo quiero validar (saber si esta bien escrito) por ejemplo si ingreso '10/12/06' me valide pero si por error ingreso 33/12/06 me tire un error, si no es mucha molestia si me tiran con la linea de codigo mejor gracias.....

egostar 26-04-2006 23:47:09

Hola Gustavo

Si es obligado usar el TEditMask puedes usar esta rutina, aunque se complica porque debes de identificar si el mes es de 28, 29, 30 o 31 dias.


Código Delphi [-]
procedure TForm1.MaskEdit1Exit(Sender: TObject);
begin
  If (copy(MaskEdit1.Text,1,2) < '00') or
     (copy(MaskEdit1.Text,1,2) > '31') then begin
     showmessage('Dia mal capturado');
  end;
  If (copy(MaskEdit1.Text,4,2) < '00') or
     (copy(MaskEdit1.Text,4,2) > '12') then begin
     showmessage('Mes mal capturado');
  end;
end;



Yo te sugiero que mejor uses un TDateTimePicker y te olvidas de las validaciones.

Saludos

PD. Edite el mensaje porque no me puso bien el codigo, algun error en el resaltador de sintaxis delphi.

seoane 27-04-2006 01:48:40

Para validar una fecha tambien puedes usar esto:
Código Delphi [-]
var
  Fecha: TDateTime;
begin
  if not TryStrToDate(MaskEdit1.Text, Fecha) then
  begin
    ShowMessage('Algo va mal');
  end;
end;

vtdeleon 27-04-2006 03:30:31

Saludos

Yo mejor usaria un DateTimePicker y caso resuelto. ¿no?

Josep_Lluís 27-04-2006 14:53:03

TryStrToDate
 
:eek: no conocía la función TryStrToDate, muchas gracias!!!

Si bien es cierto que lo mejor es usar un DateTimePicker, también es cierto que no siempre es posible, por ejemplo, programando para intraweb :mad:

Entonces yo hasta ahora siempre escribia algo como:

try
fecha:= StrToDate(edit1.text)
except
ShowMessage('nastideplasti')
end;

Lo que no me acaba de quedar claro es:

TryStrToDate(MaskEdit1.Text, Fecha)

si devuelve true, asigna el valor del maskedit a fecha?
si devuelve false, que valor le asigna a fecha?

:cool: Zenkiu verimach

Delfino 27-04-2006 15:01:52

Cita:

Yo mejor usaria un DateTimePicker y caso resuelto. ¿no?
Mejor es el JvDateEdit y su propiedad CheckOnExit, y sus eventos OnAcceptDate y OnInvalidDate..

vtdeleon 27-04-2006 18:02:54

Saludos
Cita:

Empezado por Delphino
Mejor es el JvDateEdit y su propiedad CheckOnExit, y sus eventos OnAcceptDate y OnInvalidDate..

Cierto, pero no queria enrollar al forista con tantos componentes de la JVCL:D:D.

Delfino 03-05-2006 20:24:37

La JVCL se ha convertido en un estandar de facto para los programadores Delphi/BCB, asi q hay q recomendarla a todos para q la base de sus usuarios se amplia y eso beneficia al proyecto open source sobre todo en correccion de bugs..


La franja horaria es GMT +2. Ahora son las 17:52:36.

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