Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Aceptar solo un formato en DBEdit (https://www.clubdelphi.com/foros/showthread.php?t=64975)

forgiveness 12-11-2009 18:09:14

Aceptar solo un formato en DBEdit
 
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

Cita:

Empezado por forgiveness (Mensaje 346364)
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;Los componentes Rx estaban en el ftp 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 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):

Código Delphi [-]
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).


La franja horaria es GMT +2. Ahora son las 23:09:31.

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