Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Componentes DATE (https://www.clubdelphi.com/foros/showthread.php?t=76009)

RafaelGV 03-10-2011 21:19:12

Componentes DATE
 
Tengo un inconveniente: es en la elección de los componentes adecuado.
Problema: Cuando un debemos ponerle a usuarios el nro de vto del seguro o de su licencia. Probamos al principio ponerlo como string con un Tedit.
Usamos TDateTimePicker , TAdvDateTimePicker (TMS) , TDateEdit (RX), pero no logramos hacer que si no ponemos fecha pueda pasarle un NULL a la base.
Resolvimos esto poniendo un chkbox pero es demasiado codigo y creo que nos estamos pasando por alto algun modo mas simple.
TDateTimePicker , TAdvDateTimePicker (TMS) tienen la opcion que lei hoy aca que es ShowCheckBox que en cierta manera seria util pero, hay otra manera de pasarle o no la fecha NULL?
Si no ponemos Fecha me toma 31/12/1899 y no esta bien. Usamos Una base Firebird.

Gracias
Código Delphi [-]
procedure TfrmEmpleadosAM.chkLicenciaClick(Sender: TObject);
begin
if chkLicencia.Checked then
   begin
     dLicencia.Enabled := True
   end
   else
   begin
     dLicencia.Enabled := False;
     dLicencia.Clear;
   end;
end;

ecfisa 03-10-2011 21:51:19

Hola Rafael y bienvenido a los foros de Club Delphi :)

Te invito a que leas la Guía de estilo y especialmente te ruego que cuando incluyas código Delphi, lo hagas entre las etiquetas [delphi] [/delphi] .

Un saludo.

ecfisa 03-10-2011 22:04:25

Hola de nuevo.
Cita:

hay otra manera de pasarle o no la fecha NULL?
No sé si estoy entendiendo bién lo que buscas hacer, pero usando un TDateTimePicker, se me ocurre lo siguiente:

Inicializar el DateTimePicker:
Código Delphi [-]
  DateTimePicker1.Format:= ' ';

Luego en algún punto evaluar:
Código Delphi [-]
  if DateTimePicker1.Format = ' ' then
  begin
    IBDataSet1.Edit;
   // de los dos modos siguientes se envía NULL al campo
    IBDataSet1.FieldByName('FECHA').Clear; // modo 1
    IBDataSet1.FieldByName('FECHA').AsVariant:= NULL; // modo 2
  end;

Un saludo.


La franja horaria es GMT +2. Ahora son las 07:17:51.

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