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 24-11-2004
jam888 jam888 is offline
Miembro
 
Registrado: sep 2004
Posts: 115
Poder: 20
jam888 Va por buen camino
Question Como soluciono esto?

Que tal foro, tanto tiempo he vuelto inundado de dudas la primera es saber validar una fecha
Por Ejemplo: tengo en una variable de tipo string fecha:=10/10/2004 como hago para validar esto, es decir
que no cargue mes 13, dia 32, y año 2006, esto me sucede con los maskedit dejan cargar cualquier
dato.Tambien me gustaria Validar que si el mes es febrero el campo dia no supere el nº28,
he tratado luego de cargar la varible hacer una validacion de este tipo
if (strtodate(fecha))then
begin
variable:=fecha
end
else
begin
showmessage('fecha incorrecta');
end;

pero me da error como que no puede hacer eso, tampoco puedo definir la varible de tipo date ¿que pasa?
Como soluciono esto?
Responder Con Cita
  #2  
Antiguo 24-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
StrToDate lanzará una excepción en caso de que la cadena no represente una fecha válida así que más bien podrías manejar la excepción para determinar si es o no correcta. Por ejemplo, esta función

Código Delphi [-]
function IsValidDate(S: String): Boolean;
var
  Date: TDate;

begin
  Result := true;

  try
    Date := StrToDate(S);
  except
    on EConvertError do
      Result := false;
  end;
end;

Sin embargo toma en cuenta que una misma cadena dada puede ser o no una fecha válida dependiendo de la configuración regional del sistema; específicamente de las variables globales DateSeparator y ShortDateFormat.

// Saludos
Responder Con Cita
  #3  
Antiguo 24-11-2004
LordSigma LordSigma is offline
Miembro
 
Registrado: nov 2004
Posts: 20
Poder: 0
LordSigma Va por buen camino
Lo que dijo roman es excelente, yo ademas le agregaria lo siguiente :

Código Delphi [-]
function IsValidDate(S:String): Boolean;
var Date: TDate;
     // Donde guardo la configuracion original del sistema.
     ShortDateFormatOriginal: String; 
 
begin
 
  Result := true;
 
  try
 
    // Guardo la configuracion original del sistema.
    ShortDateFormatOriginal := ShortDateFormat;
 
    // Configuro el formato de fecha segun lo quiero validar.
    ShortDateFormat := 'mm/dd/yyyy' 
    // O la configuracion de dia/mes/año que utilizas.
 
    try
      Date := StrToDate(S);
    except
      on EConvertErrordo
        Result := false;
    end;
 
  finally
 
    // Reestablezco la configuracion original del sistema.
    ShortDateFormat := ShortDateFormatOriginal;
 
  end;
 
end;

Perdon pero no se formatear el texto como hizo roman para que aparezca como codigo Delphi, si alguien me puede dar una mano ...
__________________
Sistemas web
www.f5-sistemas.com.ar

Última edición por roman fecha: 24-11-2004 a las 16:30:46.
Responder Con Cita
  #4  
Antiguo 24-11-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por LordSigma
Perdon pero no se formatear el texto como hizo roman para que aparezca como codigo Delphi, si alguien me puede dar una mano
Muy sencillo. Utiliza la etiqueta [delphi] que te reserva las indentaciones y te colorea automáticamente el texto. Al principio de cada foro hay un aviso que habla acerca de ello. Ahora me tomé la libertad de editar tu mensaje para colocar las etiquetas. Entra a editarlo para que veas cómo se usan.

// Saludos
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


La franja horaria es GMT +2. Ahora son las 01:26:43.


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