PDA

Ver la Versión Completa : Aceptar solo un formato en DBEdit


forgiveness
12-11-2009, 18:09:14
Resulta que tengo un Ztable y varios DBEdit, uno de ellos es para insertar una fecha en el formato 'dd/mm/yyyy' pues resulta que al pasar a otro DBEdit con el tab si la fecha se escribió mal da un error y se termina el programa. Lo que deseo hacer es que el DBDEdit solo acepte un formato de fecha y si no es igual pues que mande mensaje "que el formato no es válido".
Espero haberme explicado bien.
Muchas gracias.

rgstuamigo
12-11-2009, 23:17:53
Resulta que tengo un Ztable y varios DBEdit, uno de ellos es para insertar una fecha en el formato 'dd/mm/yyyy' pues resulta que al pasar a otro DBEdit con el tab si la fecha se escribió mal da un error y se termina el programa. Lo que deseo hacer es que el DBDEdit solo acepte un formato de fecha y si no es igual pues que mande mensaje "que el formato no es válido".
Espero haberme explicado bien.
Muchas gracias.
Usualmente es muy raro que tu programa termine si se ha introducido una fecha errorea,:rolleyes:. Lo mejor que veo que puedes hacer es usar un componente que te haga todo el trabajo de validacion, es decir solo te permita introducir fechas validas por ejemplo puedes usar un TDBDateEdit de las librerias Rx, supongo que tambien se encuentra en los Componetes Jedi (http://jvcl.delphi-jedi.org/);Los componentes Rx estaban en el ftp (http://www.terawiki.clubdelphi.com/) del club pero creo que con el ultimo problema que ha tenido el servidor, supongo que se ha perdido todo, de todas formas creo que Neftali (http://www.clubdelphi.com/foros/member.php?find=lastposter&t=64923) puede quisas subirlo a algun lugar hasta que el FTP del club vuelva a funcionar. ;)
Saludos...:)

ixMike
12-11-2009, 23:49:14
Lo más cómodo sería instalarte un componente de alguna librería, como el TDBDateEdit que menciona rgstuamigo o algún TDBMaskEdit que pueda haber por ahí.

Otra cosa que puedes hacer es, en el evento OnExit del TDBEdit, comprobar la fecha y, si no tiene el formato adecuado, mostrar el mensaje de error y hacer que no pierda el foco.

Por ejemplo, se me ocurre esto (no sé si tendrá alguna carencia):


procedure TForm1.DBEdit1Exit(Sender: TObject);
var
Fecha: TDateTime;
begin
try
Fecha:=StrToDate(DBEdit1.Text);
except
ShowMessage('El formato de fecha introducido no es válido');
DBEdit1.SetFocus;
end;
end;



Por otra parte, y como también ha dicho rgstuamigo, es muy raro que el programa se cierre por un error como ese. ¿El error que te sale es el típico de Delphi "This is not a valid Date format", o es algún error más "extraño"? Podrías decirnos qué error te sale, a ver si se puede solucionar lo de que se cierre el programa ;)


Salu2 :)

forgiveness
16-11-2009, 15:10:36
Muchas gracias por responder, pero me di cuenta que no hay problema alguno ya que como rgstuamigo dice no tiene porque terminar el programa. El problema era que me daba un mensage que provee para decirme el error y que si deseo continuar el programa o que ya no apareciera el mensage... lo probe usando el .exe que tengo en la carpeta y ya no me sale el error, solamente aparece el mesaje de fecha invalida que provee mysql. Muchas gracias por responder.

cuan
06-12-2009, 04:08:54
Hola Buen dia, tengo un problema estoy guardando desde delphi dinero en campos decimal(18,8) en MYSQL, Solo que al campo donde el usuario guarda estos registros no tiene formato de dinero es decir que fuera "000,000.00" esto seria para poder evitar las validaciones correspondientes (solo numeros etc.), no saben como hacer para que el edit tenga este formato? creo en visual fox pro es una propiedad de los edits llamada FORMAT solo que aqui desconosco cual es la propiedad o elemento.


de antemano se los agradeceria

Lepe
06-12-2009, 21:10:18
pos DisplayFormat y EditFormat son las propiedades a tocar en el DBEdit. Aunque creo que el campo en cuestión, tambien tiene algunas propiedades al efecto (doble clic al TQuery o TTable y selecciona uno de los campos, mira las propiedades en el inspector).