FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con el TDate.
Hola a todos, mi problema es que tengo un componente del tipo DAtaTimePicker que comienza con la fecha del sistema, pero cuando hago click sobre el para elegir una fecha la fecha del Tdate se modifica y no hay forma de volverle a introducir la fecha actual. El problema es que si queremos hacer una reserva para una fecha que ya pasó me encuentro con dos problemas:
- doy el mensaje de error pero la fecha sigue modificada y sigue pudiéndose hacer la selección de reservas en fechas pasadas. - Si hago un bucle como la fecha no se actualiza no sale nunca (se cuelga). He probado de actualizar el Tdate con la hora del sistema incluso haciendo una función, o ligándola al botón de reservas pero no se puede. ¿Existe alguna posibilidad?. Gracias de antemano. Código:
DtDAta.DAte(DAte)
__________________
"La perseverancia es el camino del éxito" |
#2
|
||||
|
||||
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
No se puede cambiar fecha al Tdate.
El problema sigue siendo el mismo, es muy curioso pero nbo se puede ¿no existe otra función?.
__________________
"La perseverancia es el camino del éxito" |
#4
|
||||
|
||||
El ejemplo que te estoy dando es para un DateTimePicker.
Qué componente estás utilizando, o al menos muestra el código al completo para ver que es lo que está ocurriendo. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
|||
|
|||
El componente DataTimePicker no se actualiza.
HOla, pongo el trozo de código, se trata de un programa que hace reservas y claro no se pueden hacer reservas de días pasados, ni con más de una semana de anticipación para eso hice una función para saber los dias pasados y otra para saber si la fecha es anterior. Hasta aquí todo muy bien, pero al final del código el TData.Date no hay forma de ponerle la fecha de hoy (al principio cuando el programa comienza sí), he probado con todo incluso he hecho una función para coger la fecha del sistema (que es una tonteria pero por probar). No sé que hacer al final la única opción que veo y poco elegante es poner en el botón de hacer reservas que si la fecha no es correcta obligue al usuario a moficarla manualmente (esta opción no me gusta nada).
Cita:
__________________
"La perseverancia es el camino del éxito" |
#6
|
||||
|
||||
DtData.Date
Hola.
No queda me queda muy claro el código, que indicas, de todas formas la lógica de lo que deseas hacer es algo tal que así?? Código:
if (Condicion1) and (Condicion2) then begin Showmessage('Fecha OK!!'); {NOTA: no puc canviar la data a la data actual} // --> Pero la fecha es valida!! // luego no hay que... DtData.Date:=DataSistema(Date); end else begin Showmessage('Error'); DtData.Date:=Date; end; end.
__________________
"Es imposible hacer un programa 100% contra tontos, ya que éstos son muy ingeniosos"
|
#7
|
|||
|
|||
No se actualiza el DataTimePicker
Quiero decir que si comienzas un programa actualizando el DataTimePicker después no puedes actualizarlo otra vez, el código que tú tienes ya lo probé y tampoco me va. . ASí que no sé como hacer para cambiarlo. Gracias.
__________________
"La perseverancia es el camino del éxito" |
#8
|
||||
|
||||
El DateTimePicker lo puedes actualizar las veces que desees:
Aquí tienes un ejemplo, necesitas. 1 DateTimePicker 3 Botones. Copia el códiigo y haz la prueba, fíjate que utilizo Now en vez de Date, esto es para que me actualice fecha y hora cuando pulse los botones 2 y 3 con el botón 1 visualizo la fecha y hora actuales para ver como cambia.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#9
|
|||
|
|||
Hola Alfredosg19,
Solo quería decirte que te ocurre lo que a mí: te curras todo a mano, incluso funciones que ya existen. Tengo cientos de líneas de código sustituidas por una sola función que trae Delphi, y que descubrí tras largas horas de trabajo y buenos dolores de cabeza. Para saber si la fecha introducida es anterior a la fecha actual o una semana posterior utiliza las funciones DaysSpan y CompareDate: Código:
if CompareDate(FechaD.Date,Now)=-1 then ShowMessage('¡Aviso! Estas realizando una reserva en un día anterior a hoy'); if Round(DaysSpan(Fecha1.Date,Now))<0 then ShowMessage('Anterior a hoy'); Código:
DtData.Date:=Now; Código:
DTFechaYHora.DateTime:=Now; DTSoloHora.Time:=Now; Puedes comprobar la validez de la fecha al salir del campo DTData. Yo lo hago de la siguiente forma: Evito que el usuario introduzca una fecha a mano: en el evento OnKeyPress pongo una función con un Código:
Key:=#0; Código:
var FHBuena : TDateTime; begin if (not TryStrToDate(DateToStr(FechaD.Date), FHBuena)) or (not TryStrToDate(DateToStr(FechaH.Date), FHBuena)) or (not TryStrToTime(HoraD.Text, FHBuena)) or (not TryStrToTime(HoraH.Text, FHBuena)) then begin ShowMessage('¡Error! Faltan datos (fecha u hora) para poder realizar la reserva'); Exit; // podría haberlas inicializado FechaD.Date:=NOW; .... end; Seguimos en contacto.
__________________
Rafita. Última edición por rafita fecha: 15-03-2005 a las 13:08:08. |
|
|
|