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 08-06-2008
ale_metall ale_metall is offline
Miembro
 
Registrado: sep 2007
Posts: 53
Poder: 17
ale_metall Va por buen camino
maskedit: como corroborar datos validos de fecha?

necesito ingresar en una consulta parametrica un dato tipo fecha en un maskedit; una vez hecha la mascara correspondiente.. en mi caso: !99/99/00;1;_ como puedo controlar el ingreso de datos para que no me quede algun espacio vacio o dato erroneo y evitar el error al ejecutar la consulta?? osea.. como pregunto si el dato fecha del maskedit esta completo y con datos validos para una fecha?? q no me deje ingresar un mes 13 por ej. O si hay otra forma de controlar esto, estaria agradecido si pueden hacermela saber.

saludos..
Responder Con Cita
  #2  
Antiguo 08-06-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Una posible solución, que encontré en Torry's, es usar cierta función de la unidad "SysUtils" y comprobar si se produce una excepción o no:

Código Delphi [-]
function IsValidDate(AString : string; 
 var ADateTime : TDateTime): Boolean;
begin
  Result := True;
  try
    ADateTime := StrToDateTime(AString);
  except
    ADateTime := 0;
    Result := False;
  end;
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 08-06-2008
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Te puede servir la función TryStrToDate de Delphi..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #4  
Antiguo 10-06-2008
ale_metall ale_metall is offline
Miembro
 
Registrado: sep 2007
Posts: 53
Poder: 17
ale_metall Va por buen camino
Parece interesante la funcion IsValidDate, pero no conosco mucho de funciones y no se como llamarla. Mi dato tipo fecha a corroborar esta en un maskedit.

saludos y disculpen las molestias.
Responder Con Cita
  #5  
Antiguo 10-06-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por ale_metall Ver Mensaje
Parece interesante la funcion IsValidDate, pero no conosco mucho de funciones y no se como llamarla. Mi dato tipo fecha a corroborar esta en un maskedit.

saludos y disculpen las molestias.
Y no te sirve usar el TDateTimePicker en lugar de un TMaskEdit?

Digo, te evitarias muchos dolores de cabeza y sobre todo tiempo y esfuerzo.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 10-06-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola ale_metall, la función IsValidDate te indica si un año, mes y dia corresponden a una fecha valida, si la fecha es valida te devuelve True, esta función la puedes utilizar de esta forma, pero talvez tengas que hacer mas controles.

Código Delphi [-]
var
 Anio, Mes, Dia : Word;
begin
 Dia := StrToInt(Copy(MaskEdit1.Text,1,2));
 Mes := StrToInt(Copy(MaskEdit1.Text,4,2));
 Anio := StrToInt(Copy(MaskEdit1.Text,7,2));
 if IsValidDate(Anio,Mes,Dia) then
  showmessage('La fecha es correcta')
 else
  showmessage('La fecha es incorrecta');
end;

para mi, sería mejor que utilices la función TryStrToDate y te evitas de hacer un monton de controles, lo utilizas de esta forma.

Código Delphi [-]
var
 Fecha : TDateTime;
begin
 if TryStrToDate(MaskEdit1.Text, Fecha) then
  showmessage('La fecha es correcta')
 else
  showmessage('La fecha es incorrecta')

o utilizas un TDateTimePicker como te dice el amigo Egopolice .

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Maskedit que me acepte datos incompletos ingabraham Varios 2 13-02-2008 01:26:56
Como configurar un MasKEdit para Money$ ?? Fabricio Varios 5 06-03-2007 23:44:13
Problemas con la fecha en un maskedit federico1 Varios 2 28-11-2006 00:19:57
Validar datos MaskEdit Arkaz Varios 2 06-11-2005 22:57:03


La franja horaria es GMT +2. Ahora son las 23:32: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