PDA

Ver la Versión Completa : Registrar solo la hora con DBTimepicker


victor Julio
23-11-2016, 06:05:27
Tengo una dificlutad en un form tengo que poner fecha y hora en una celda cada una, con un DBtimePicker modificando la función Kind: a dtkTime se observa solo la hora pero al grabar y en el dbgrid se ve una fecha de 1890 y la hora que se registro. Quisiera solo que registre la hora.
Muchas gracias por la ayuda que pueda recibir
PD: la base es access y delphi 10.1 berlin en windows 8.1.

ecfisa
23-11-2016, 06:48:37
Hola.

DBtimePicker no es un componente estándar de Delphi. ¿ Tenes alguna documentación sobre él a la que podamos acceder ? (busqué pero no pude encontrar nada...)

Saludos :)

AgustinOrtu
23-11-2016, 10:40:50
Pone el codigo que usas para grabar

Otra opcion es sacarle la fecha al momento de mostrar el DBGrid. Investiga el evento OnGetText del TField. En ese evento, se te suministra una variable Text de tipo string que te permite asignar el valor que queres que muestre el campo, mas alla del valor que tenga almacenado

El problema esta en que el Grid para obtener el valor seguramente haga algo como Campo.AsString. Ademas acordate que las horas se modelan como un TDateTime, osea implicitamente siempre esta la parte de la fecha

roman
23-11-2016, 15:45:29
Tengo una dificlutad en un form tengo que poner fecha y hora en una celda cada una, con un DBtimePicker modificando la función Kind: a dtkTime se observa solo la hora pero al grabar y en el dbgrid se ve una fecha de 1890 y la hora que se registro. Quisiera solo que registre la hora.
Muchas gracias por la ayuda que pueda recibir
PD: la base es access y delphi 10.1 berlin en windows 8.1.

Bueno, esto es porque el campo que muestra el DBGrid debe se de tipo DateTime y la parte de la fecha es 0, que en Delphi equivale a 1890. O ajustas para que sea un campo de tipo Time o usas la propiedad DisplayFormat del DataSet para que sólo muestre la hora.

LineComment Saludos

lgarcia
23-11-2016, 19:37:51
yo cuando voy a mostrar la parte fraccionaria de la fecha lo hago asi:

DTP.Time:= Frac(Mostrarsalida.Value);

donde dpt es un DateTimePicker y Mostrarsalida.Value es un campo de un sp que me devuelve en este caso la hora de salida
Cuando es en un grid formateo la celda del grid con esto:

hh:mm am/pm


Espero te sirva.

Saludos
Luis Garcia