![]() |
Intentando con Try ....
Hola a todos...
Estoy intentando validar una entrada de fecha en un MaskEdit con el siguiente codigo: ******** procedure TfrmSolicitud.edFnacExit(Sender: TObject); var Hoy : TDateTime; Year, Month, Day: Word; begin try begin Hoy := strtodate(edFnac.text); // cargo Hoy con la cadena del MaskEdit DecodeDate(Hoy, Year, Month, Day); // intento la decodificación Editboxsiguiente.setfocus; // si la fecha es correcta y no ocurre error pasa siguiente control. end; except // Si ocurre un error : begin Application.MessageBox('Fecha erronea....', 'Advertencia',Mb_Ok+Mb_IconStop); // mensaje de error al usuario edFnac.setfocus; // escribir nuevamente la fecha end; end; **************** El caso es que cuando se introduce un fecha correcta, pasa al control siguiente sin problemas, pero al introducir una fecha erronea, primero me muestra una exepción y luego mi mensaje de fecha erronea. Obiamente quiero que salga mi mensaje para que el usuario corrija y no vea esa exepción. Que creen que este pasando? Saludos y gracias.... |
|
Seguramente será porque lo estás ejecutando desde el propio Delphi. Si lo ejecutas desde fuera de Delphi (directamente el exe que creas) no te saldrá el mensajito en inglés.
Aparte, a partir de Delphi 6 (creo) tienes la función TryDateToStr (o algo así) que ya te hace el trabajo del try..except..end; |
Cita:
// Saludos Para los cyber-arqueólogos del futuro: Este fue el mensaje 1000 :D |
Pues continualdo ese hilo... yo me quedaría con el TDateEdit de la Rx que ya la validan por ti :D
Cita:
|
Cita:
// Saludos |
Para llegar al milenario
un millar de mensajes es necesario. Enhorabuena Román. Un Saludo. |
Cita:
// Saludos |
el problema está en que tu no "atrapas" la excepción, con lo cual tiene que ser delphi quien lo haga, para ello prueba lo siguiente
Código:
|
Gracias amigos, voy a intentar las distintas propuestas y el hilo sugerido.
Con respecto a las Rx, las tengo pero me genero un error al interntar instalarlas en mi version de delphi (v2.0) y desisti. gracias... |
Cita:
|
Cita:
// Saludos |
En su momento baje 2 archivos: 1 para la version 7 y otro para las versiones anteriores; bueno, en el readme indicaba como instalarlas en cada version de delphi. Mañana les indicaria donde las consegui y el error que me presentó. Aunque la verdad es que quisiera usar una version mas actualizada, pero con el problema del dolar aqui en venezuela no puedo. He tratado de contactar en el mercado local, si fuera posible a alguien que me vendiera una versión que ya no use, pero son muy pocos los programadores con delphi en venezuela, por lo menos en Valencia.
Por otra parte, he escuchado que "delphi se hizo con delphi"; si esto es asi, puede alguien decirme como haceder a una funcion de delphi?. Es decir, me gustaria saber como codificaron la funcion IsLeapYead(). (Esa es una de las razones por la que paso calenteras cuando pruebo codigo propuesto por los colegas en mi version de delphi) Gracias por contestar, y valga por favor la pregunta. Si deciden que mejor añada un hilo, avisenme... :D |
Cita:
Cita:
Código:
function EsBisiesto(Año: Integer): Boolean; Sin embargo, la frase "Delphi está hecho con Delphi" se refiere a que el IDE (ambiente de desarrollo) de Delphi está hecho con Delphi pero hay partes del lenguaje que están programadas con C. // Saludos |
Mejor puedes utilizar la función IsLeapYear, que viene incorporada en la unidad SysUtils de Delphi.
Código:
procedure TForm1.Button1Click(Sender: TObject); |
Cita:
// Saludos |
Tienes toda la razón Román, tenía que haber insertado este código:
Código:
{ Date encoding and decoding } Un Saludo. |
Cita:
Por cierto, ¿no sería maravilloso que el código de la función EsBisiesto compilara? ¡Porque no compila! ;) // saludos |
Código:
function EsBisiesto(Agnus: Integer): Boolean; |
Cita:
Código PHP:
// Saludos |
La franja horaria es GMT +2. Ahora son las 09:20:58. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi