Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Activar y desactivar un Datetimepicker (https://www.clubdelphi.com/foros/showthread.php?t=59653)

Delphitest 03-09-2008 16:18:23

Activar y desactivar un Datetimepicker
 
Buenas Tardes a tod@s,

al igual que se pueden activar y desactivar los Dbedit con enabled := true o false me interesa hacer con varios DatetimePicker ya que un form lo requiere para diferenciar el modo edición del modo lectura.

El caso es que si pongo esto:

Datetimepicker1.enabled := true (o false)

me salta un error diciendo que tengo que activar el checkbox de este componente, de hecho si lo activo efectivamente hace lo que quiero. Mi duda es si es la única forma de hacerlo ya que estéticamente no quedan muy bien esos checkbox por todos los sitios en el form. He hecho incluso un apaño para 'esconderlo' aunque está de fondo pero no me convence.

¿Hay algún truco para que no aparezcan los checkbox y se pueda activar o desactivar el datetimepicker?

Muchas gracias y que paseis una buena tarde.

Caro 03-09-2008 16:25:54

Hola Delphitest, cuando activo o inactivo con enabled el DateTimePicker, me lo hace bien, no me pide que active ningún checkBox, talvez tengas algo mas por ahí.

Saluditos

roman 03-09-2008 16:28:47

Perdón, pero ¿de qué checkbox hablas? :confused: En Delphi 7 pongo un DateTimePicker y no veo ningún checkbox por ningun lado.

// Saludos

TOPX 03-09-2008 16:28:56

Buenos días (por acá),

Hasta donde he visto, en Delphi en sí, un DateTimePicker no tiene relación directa con un CheckBox. Entonces, la restricción que describe tal vez esté por el diseño de su aplicación. Y el mensaje de error exacto (supongo que en inglés), podrá aclarar mejor la situación.

Delphitest 03-09-2008 16:40:19

Gracias por contestarme tan rápido.

En el object inspector (Delphi 7) del DateTimePicker hay una linea que pone ShowCheckBox.

El caso es que acabo de probar en un form en blanco con dos botones, uno que activa y otro que desactiva y la verdad es que teneis razón, funciona perfectamente.

Estoy intentando ponerlo en un form con varios DBEdit y enlaces a varias tablas, quizas el problema venga por ahi. El error ademas es claramente el que digo, si activo la opción que comento va bien y si la quito me salta el error diciendo en ingles que para poder usar la opción enabled hay que activar el showcheckbox.

No lo entiendo...

roman 03-09-2008 16:47:25

Ya, pues pido disculpas porque realmente nunca habia visto ese checkbox pero ya veo que ahí está. Haciendo pruebas, no noto nada raro. Quizá tienes algún evento asociado al control que esté generando el problema?

// Saludos

TOPX 03-09-2008 16:55:04

Jeje, yo tampoco conocía esa propiedad ShowCheckBox. Y también hice pruebas, pero no he podido generar la dichosa excepción, que creería que es:

Cita:

'You must be in ShowCheckbox mode to set to this date'
Edit: Bueno, logré generar la excepción citada, con el siguiente código:

Código Delphi [-]
  
  DateTimePicker1.Date := 0;
  DateTimePicker1.Time := 0;

Lo que me hace suponer que es la forma esperada de "reiniciar mal" un DateTimePicker.

Caro 03-09-2008 17:03:57

Yo tampoco he podido generar el error, con checkBox o sin me lo hace bien, porque no pruebas de poner otro DateTimePicker borrando el que tienes y utilizando el nuevo con el mismo nombre del anterior.

Saluditos

Delphitest 03-09-2008 19:03:34

Pues creo que por ahi van los tiros, cuando el DateTimePicker toma un valor.

Tengo un form que muestra un registro de una tabla, entre los campos está el de la fecha y logicamente cuando uso los botones de cambio de registro el datetimepicker tiene que tomar por valor la fecha del campo de la tabla y pienso que es ahi cuando da el error.

Lo raro es que ese mismo sistema lo uso con el checkbox activo y no salta el error.

cosas de la programacion... voy a hacer mas prueba y os cuento si veo algo nuevo

gracias de nuevo por vuestra ayuda

roman 03-09-2008 19:13:00

A ver, si no te entiendo mal, tú en realidad no quieres esos checkboxes. ¿Por qué no mejor nos dices exactamente lo que quieres lograr?

Si lo que deseas es lidiar con fechas "vacías", podría servirte esto.

// Saludos

Delphitest 03-09-2008 19:33:58

Esto es una parte del formulario que tengo:

http://cjoint.com/?jduE4jRFhu

Si os fijais hay varias zonas que requieren fechas, algunas tienen que quedar vacias y otras no. Hasta ahora lo hacia como aparece, con un DBEdit vinculado a un campo de la tabla y con un boton que permite abrir un calendario para elegir la fecha.

Soy un poco corto en esto y ahora me he dado cuenta que existe el DateTimePicker que hace todo lo que yo me he tenido que ingeniar para el tema del calendario y he pensado sustituir todos esos DBEdit por unos DateTimePicker. En las pruebas que he hecho todo sale bien excepto cuando intento cambiar de registro, ahi es cuando me salta el error si uso un DateTimePicker (meto en el evento onclick de los botones de cambio de registro que tome el valor del campo de la tabla).

Eso de dejar en blanco la fecha me viene muy bien, tambien era algo pendiente que tenía. Gracias

egostar 03-09-2008 19:37:23

Perdon pero ya me perdi del tema, ahora entiendo menos el asunto, seria bueno que mejor colocaras el código para ver mas a detalle el asunto.

Salud OS

PD. yo tampoco he tenido problema de deshabilitar y habilitar el TDateTimePicker.

roman 03-09-2008 19:53:39

Cita:

Empezado por Delphitest (Mensaje 311574)
En las pruebas que he hecho todo sale bien excepto cuando intento cambiar de registro, ahi es cuando me salta el error si uso un DateTimePicker

Pero, ¿sucede esto con cualquier cambio de registro? Porque pudiera ser justamente que el error salte si tratas de cambiar a un registro con un valor NULL en la fecha.

// Saludos


La franja horaria es GMT +2. Ahora son las 02:31:03.

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