Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 19:29:18.


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