PDA

Ver la Versión Completa : Activar y desactivar un Datetimepicker


Delphitest
03-09-2008, 16:18:23
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:

'You must be in ShowCheckbox mode to set to this date'

Edit: Bueno, logré generar la excepción citada, con el siguiente código:


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 (http://www.clubdelphi.com/foros/showpost.php?p=16686&postcount=2).

// 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
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