Ver Mensaje Individual
  #4  
Antiguo 20-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola rufo.

Como te dijo Delphius, con otros componentes la taréa se simplifica muchísimo...

Usando edits, vas a tener que realizar varias comprobaciones para que sea realmente operativo (nunca se sabe que ingresará el usuario).

Básicamente es la idea que te ya te dió mi amigo : Comparar la cadena ingresada en Edit2 con los meses del año.

Te pongo una función que incluye la comprobación y acorto la comparación de meses aprovechando la variable LongMonthNames, pero los nombres de los meses dependerán de la configuración regional. Y si no estas seguro cuál tendrá el S.O, es mejor que utilices una solución como la que te sugirió Caral.
Código Delphi [-]
(* Devuelve dd/mm/aaaa o cadena vacía si hay error *)
function ComponeFecha(Dia, Mes, Anio: string): string;
{$J+}
const DM: array[1..12] of Byte=(31,28,31,30,31,30,31,31,30,31,30,31);
{$J-}
var
  m,d,a: Integer;
  v: array of string;
begin
  DM[2]:= 28; 

  SetLength(v, 12);
  for m  := 0 to 11 do v[m] := UpperCase(LongMonthNames[m+1]);
 
  m := AnsiIndexStr(UpperCase(mes), v) + 1;
  if TryStrToInt(Dia, d) and (m > 0) and TryStrToInt(Anio,a) then
  begin
     if (((a mod 4) = 0)and((a mod 100) <> 0)or(a mod 400 = 0)) then Inc(DM[2]);
     if d in [1..DM[m]] then
      Result := StringOfChar('0', 2-Length(Dia)) + Dia + '/' +
        StringOfChar('0', 2-Length(IntToStr(m))) + IntToStr(m) + '/' + Anio;
  end;
end;

Llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(ComponeFecha(Edit1.Text, Edit2.Text, Edit3.Text));
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita