Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Focus en un checkbox (https://www.clubdelphi.com/foros/showthread.php?t=72101)

Livey 27-01-2011 19:31:34

Focus en un checkbox
 
Buenos dias,
Estoy trabajando en Delphi 7, y estoy utilizando un check box, pero como este componente no tiene la propiedad de transparent, he recurrido a agregar el texto en un label, al cual si le puedo aplicar esta propiedad, y el checkbox, lo tengo del tamaño del cuadrito, de manera que cuando el focus esta posicionado en el componente no se ve el recuadro punteado alrededor(focus).
Les agradezco me ayuden con esto, ya sea que me expliquen como se puede agregar la propiedada transparent al checkbox o que se muestre el focus

Aleca 28-01-2011 13:50:46

:confused:es automatico la tranparencia del checkbox, me toma el color del fondo.

rgstuamigo 28-01-2011 13:52:30

Cita:

Empezado por Livey (Mensaje 389089)
...
Estoy trabajando en Delphi 7, y estoy utilizando un check box, pero como este componente no tiene la propiedad de transparent, he recurrido a agregar el texto en un label, al cual si le puedo aplicar esta propiedad, y el checkbox, lo tengo del tamaño del cuadrito...

Disculpame pero no me explico por que hacer eso;), aunque el checkBox no tiene la propiedad transparent, pues el caption del mismo si es transparente.;) ¿acaso eso no te sirve?
Cita:

Empezado por Livey (Mensaje 389089)
... de manera que cuando el focus esta posicionado en el componente no se ve el recuadro punteado alrededor(focus).
...

Bueno eso claramente ocurre por se trata de otro componente diferente al CheckBox.;)
Saludos...:)

Livey 28-01-2011 15:23:41

Cita:

Empezado por rgstuamigo (Mensaje 389168)
Disculpame pero no me explico por que hacer eso;), aunque el checkBox no tiene la propiedad transparent, pues el caption del mismo si es transparente.;) ¿acaso eso no te sirve?

Bueno eso claramente ocurre por se trata de otro componente diferente al CheckBox.;)
Saludos...:)


Hola de nuevo, estoy segura que es un checkbox, pero al caption no logro que quede con el color de fondo (el cual es una imagen y no un color sólido)

Aleca 28-01-2011 15:40:07

Cita:

Empezado por Livey (Mensaje 389185)
Hola de nuevo, estoy segura que es un checkbox, pero al caption no logro que quede con el color de fondo (el cual es una imagen y no un color sólido)

es cierto sobre la imagen hace eso. :(

Aleca 28-01-2011 15:53:53

cosa rara, lo probe de nuevo y lo hace perfectamente. fijate que la imagen no sea transparente.

roman 28-01-2011 16:03:36

Cita:

Empezado por Aleca (Mensaje 389187)
es cierto sobre la imagen hace eso. :(

Así es, la etiqueta del checkbox no es transparente.

Cita:

Empezado por Aleca (Mensaje 389190)
cosa rara, lo probe de nuevo y lo hace perfectamente. fijate que la imagen no sea transparente.

¿No sera que pusiste el XPManifest? A mi me pasó haberlo puesto y aunque lo quites sigue estando "activo" mientras no elimines la unidad xpman del uses.

// Saludos

Chris 28-01-2011 16:06:55

Yo creo que con un Class Inteceptor puede hacerse transparente. Yo lo hago con el TLinkLabel (incluido en D2009 y posteriores). Lamentablemente no tengo el código a mano para brindártelo. Te lo quedo debiendo para mañana talvez o espérame un momento, tal vez pueda encontrar la fuente de donde en su momento lo obtuve.

Saludos,
Chris

Aleca 28-01-2011 16:11:27

Uso delphi 2007 con la opción Enabled Runtime Themes seleccionado, cuando probé y no hizo transparente a la imagen la tenia dentro de un panel con la opción parentbackgound en true al ponerlo en false me lo hace transparente.

roman 28-01-2011 16:14:10

¿Cómo está eso del class interceptor?

// Saludos

Livey 28-01-2011 16:14:59

Cita:

Empezado por Chris (Mensaje 389196)
Yo creo que con un Class Inteceptor puede hacerse transparente. Yo lo hago con el TLinkLabel (incluido en D2009 y posteriores). Lamentablemente no tengo el código a mano para brindártelo. Te lo quedo debiendo para mañana talvez o espérame un momento, tal vez pueda encontrar la fuente de donde en su momento lo obtuve.

Saludos,
Chris

Lo malo es que en este caso estoy utilizando Delphi 7.

Pero quizas me puedas ayudar con lo que mencione al inicio.
Si el caption checkbox tiene texto, se muestra el focus, pero si no agrego texto y el tamaño del componente es igual al check, no se muestra el focus, entonces requiero que cuando se este posicionado en el checkbox, se muestre el focus.

Gracias a todos por su ayuda!!!:)

roman 28-01-2011 16:19:22

Cita:

Empezado por Aleca (Mensaje 389198)
Uso delphi 2007 con la opción Enabled Runtime Themes seleccionado, cuando probé y no hizo transparente a la imagen la tenia dentro de un panel con la opción parentbackgound en true al ponerlo en false me lo hace transparente.

¡Ah! Pero eso es usando los temas. El problema (aunque quizá me equivoque) es que al usar temas, al checkbox y otros controles no puedes modificarle el color. Pero si eso no mete ruido entonces en delphi 7 bastaría con agregar el XPManifest.

// Saludos

rgstuamigo 28-01-2011 16:23:22

Cita:

Empezado por roman (Mensaje 389203)
¡Ah! Pero eso es usando los temas. El problema (aunque quizá me equivoque) es que al usar temas, al checkbox y otros controles no puedes modificarle el color. Pero si eso no mete ruido entonces en delphi 7 bastaría con agregar el XPManifest.
...

Efectivamente roman, al poner un componente XPManifest se soluciona la cosa.;)
NOTA: Probado en Delphi 7 ;)
Saludos...:)

Livey 28-01-2011 16:24:43

Cita:

Empezado por Aleca (Mensaje 389198)
Uso delphi 2007 con la opción Enabled Runtime Themes seleccionado, cuando probé y no hizo transparente a la imagen la tenia dentro de un panel con la opción parentbackgound en true al ponerlo en false me lo hace transparente.

Que pena, pero no te entendi, donde esta "Enabled Runtime Themes ", pero no se si no me explique bien, lo que necesito que quede transparente es el caption del checkbox, como cuando se le aplica la propiedad a un label.
En mi caso no es un color sólido, sino una imagen de fondo.

rgstuamigo 28-01-2011 16:28:45

Cita:

Empezado por Livey (Mensaje 389207)
Que pena, pero no te entendi, donde esta "Enabled Runtime Themes ", pero no se si no me explique bien, lo que necesito que quede transparente es el caption del checkbox, como cuando se le aplica la propiedad a un label.
En mi caso no es un color sólido, sino una imagen de fondo.

Amiga Livey, tu problema se resuelve poniento en tu formulario un componente XPManifest que se encuentra el la pestaña Win32 de la paleta de componente y eso es todo;)
Saludos...:)

Chris 28-01-2011 16:34:05

Cita:

Empezado por roman (Mensaje 389200)
¿Cómo está eso del class interceptor?

// Saludos

Bueno, me confundí, no es Class Interceptor, es Interceptor Classes. O clases interceptoras.

Saludos,
Chris.

Aleca 28-01-2011 16:34:18

Cita:

Empezado por rgstuamigo (Mensaje 389208)
Amiga Livey, tu problema se resuelve poniento en tu formulario un componente XPManifest que se encuentra el la pestaña Win32 de la paleta de componente y eso es todo;)
Saludos...:)

asi es, al delphi 7 no lo usé, pase del 6 al 2007, si tenes ese componente usalo y listo, lo acabo de probar y funciono.
PD: el foco lo recibe, pero no te das cuenta graficamente.:)

Chris 28-01-2011 16:38:38

En este hilo de StackOverflow puedes encontrar como hacer un transparente un TLinkLabel. Seguramente el mismo código de puede servir con TCheckbox y TRadioButton. El código mostrado es para crear una clase heredada, pero si no quieres entrar en ese rollo, puedes utilizar un interceptor de clases. Puedes leer al respecto de ellos en el enlace que proporcioné anteriormente.

Saludos,
Chris

rgstuamigo 28-01-2011 16:40:03

Cita:

Empezado por Chris (Mensaje 389209)
Bueno, me confundí, no es Class Interceptor, es Interceptor Classes. O clases interceptoras.

De hecho a eso Ian Marteens lo llama Clases interpuestas
;)

roman 28-01-2011 16:44:50

Cita:

Empezado por Chris (Mensaje 389209)
Bueno, me confundí, no es Class Interceptor, es Interceptor Classes. O clases interceptoras.

¡Ah! Ya sé a qué te refieres. Es lo que Ian Marteens llama clases interpuestas. Incluso varios aquí citan a Ian como el inventor de la técnica, aun cuando él mismo aclara que la técnica ya existía.

Edito ¡Oh! No había visto el comentario de rgstuamigo. :o

// Saludos


La franja horaria es GMT +2. Ahora son las 22:30:28.

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