In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Dudas sobre TUpDown y TMonthCalendar
Dudas sobre TUpDown y TMonthCalendar
No suelo utilizar este tipo de controles, pero en esta ocasión he decidido utilizarlos porque se ajustan a lo que busco.
TUpDown()
El problema que me he encontrado es que al establecer el :nWidth al objeto, éste me ha ignorado olímpicamente y sigue trabado en el valor 16 ( que viene por defecto ).
TMonthCalendar
El problema en este objeto viene cuando trato de establecer una tipografía distinta a la que viene por defecto en su objeto oFont. Me ignora totalmente.
Gracias por todo y un saludo.
TUpDown()
El problema que me he encontrado es que al establecer el :nWidth al objeto, éste me ha ignorado olímpicamente y sigue trabado en el valor 16 ( que viene por defecto ).
TMonthCalendar
El problema en este objeto viene cuando trato de establecer una tipografía distinta a la que viene por defecto en su objeto oFont. Me ignora totalmente.
Gracias por todo y un saludo.
Dudas sobre TUpDown y TMonthCalendar
Joan Ramón,
> TUpDown()
> El problema que me he encontrado es que al establecer el
> :nWidth al objeto, éste me ha ignorado olímpicamente y
> sigue trabado en el valor 16 ( que viene por defecto ).
Parece que aunque el IDE muestre la propiedad nWidth luego el sistema la
ignora.
> TMonthCalendar
> El problema en este objeto viene cuando trato de establecer
> una tipografía distinta a la que viene por defecto en su
> objeto oFont. Me ignora totalmente.
Acabo de probarlo en XP usando todo tipo de fuentes y tamaños y lo hace
bien tanto en diseño como en ejecución.
Saludos,
José Lalín
--
> TUpDown()
> El problema que me he encontrado es que al establecer el
> :nWidth al objeto, éste me ha ignorado olímpicamente y
> sigue trabado en el valor 16 ( que viene por defecto ).
Parece que aunque el IDE muestre la propiedad nWidth luego el sistema la
ignora.
> TMonthCalendar
> El problema en este objeto viene cuando trato de establecer
> una tipografía distinta a la que viene por defecto en su
> objeto oFont. Me ignora totalmente.
Acabo de probarlo en XP usando todo tipo de fuentes y tamaños y lo hace
bien tanto en diseño como en ejecución.
Saludos,
José Lalín
--
Dudas sobre TUpDown y TMonthCalendar
Gracias por la respuesta.
Solventaré el asunto del TUpDown a base de emularlo con un par de botones.
Sobre el calendario, en Windows 7 32Bits Profesional parece que me ignora... le echaré un ojo.
Solventaré el asunto del TUpDown a base de emularlo con un par de botones.
Sobre el calendario, en Windows 7 32Bits Profesional parece que me ignora... le echaré un ojo.
Dudas sobre TUpDown y TMonthCalendar
Jose
Ya pero si se utiliza W7 no funciona correctamente ¿Teneis prevista alguna solución?. No creo que sea un comportamiento normal
Saludos
Toni Sales
Ya pero si se utiliza W7 no funciona correctamente ¿Teneis prevista alguna solución?. No creo que sea un comportamiento normal
Saludos
Toni Sales
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Dudas sobre TUpDown y TMonthCalendar
Shadax escribió el mié, 21 diciembre 2011 16:26No suelo utilizar este tipo de controles, pero en esta ocasión he decidido utilizarlos porque se ajustan a lo que busco.
TUpDown()
El problema que me he encontrado es que al establecer el :nWidth al objeto, éste me ha ignorado olímpicamente y sigue trabado en el valor 16 ( que viene por defecto ).
TMonthCalendar
El problema en este objeto viene cuando trato de establecer una tipografía distinta a la que viene por defecto en su objeto oFont. Me ignora totalmente.
Gracias por todo y un saludo.
Confirmo que la asignación del font en TMonthCalendar funciona perfectamente en Windows 7 y Xailer 2.51 cuando no se usan los temas visuales de XP
En cuanto al TUpDown, el problema se produce debido a un error en el control nativo de Windows al utilizar el mensaje UDM_SETBUDDY. Con el siguiente 'work-around' en la clase TUpDown parece que funciona correctamente:
METHOD SetBuddy( oBuddy ) CLASS XUpDown
LOCAL nWidth
UPDATE ::FoBuddy TO oBuddy
IF ! Empty( ::Handle )
IF ::FoBuddy == Nil
::SendMsg( UDM_SETBUDDY, 0 )
ELSE
nWidth := ::nWidth
IF ::nBuddyAlign != alNONE
::FoBuddy:nWidth += ::nWidth - IIf( Empty( ::SendMsg( UDM_GETBUDDY, 0, 0 ) ), 1, 0 )
ENDIF
::SendMsg( UDM_SETBUDDY, ::FoBuddy:Handle )
::nWidth := nWidth
ENDIF
ENDIF
RETURN ::FoBuddy
Tambien se puede resolver en TForm:OnInitialize de la siguiente forma:
::oUpDown1:nWidth := ???
Saludos
TUpDown()
El problema que me he encontrado es que al establecer el :nWidth al objeto, éste me ha ignorado olímpicamente y sigue trabado en el valor 16 ( que viene por defecto ).
TMonthCalendar
El problema en este objeto viene cuando trato de establecer una tipografía distinta a la que viene por defecto en su objeto oFont. Me ignora totalmente.
Gracias por todo y un saludo.
Confirmo que la asignación del font en TMonthCalendar funciona perfectamente en Windows 7 y Xailer 2.51 cuando no se usan los temas visuales de XP
En cuanto al TUpDown, el problema se produce debido a un error en el control nativo de Windows al utilizar el mensaje UDM_SETBUDDY. Con el siguiente 'work-around' en la clase TUpDown parece que funciona correctamente:
METHOD SetBuddy( oBuddy ) CLASS XUpDown
LOCAL nWidth
UPDATE ::FoBuddy TO oBuddy
IF ! Empty( ::Handle )
IF ::FoBuddy == Nil
::SendMsg( UDM_SETBUDDY, 0 )
ELSE
nWidth := ::nWidth
IF ::nBuddyAlign != alNONE
::FoBuddy:nWidth += ::nWidth - IIf( Empty( ::SendMsg( UDM_GETBUDDY, 0, 0 ) ), 1, 0 )
ENDIF
::SendMsg( UDM_SETBUDDY, ::FoBuddy:Handle )
::nWidth := nWidth
ENDIF
ENDIF
RETURN ::FoBuddy
Tambien se puede resolver en TForm:OnInitialize de la siguiente forma:
::oUpDown1:nWidth := ???
Saludos
Dudas sobre TUpDown y TMonthCalendar
Gracias por tu respuesta Ignacio.
Es cierto que si funciona cuando deshabilitas el tema visual. ¿Tendréis en cuenta este comportamiento para la próxima versión y así parchearlo?, ¿O es algo que no podrá ser tocado?
Un saludo.
Es cierto que si funciona cuando deshabilitas el tema visual. ¿Tendréis en cuenta este comportamiento para la próxima versión y así parchearlo?, ¿O es algo que no podrá ser tocado?
Un saludo.
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Dudas sobre TUpDown y TMonthCalendar
Shadax escribió el jue, 05 enero 2012 16:12Gracias por tu respuesta Ignacio.
Es cierto que si funciona cuando deshabilitas el tema visual. ¿Tendréis en cuenta este comportamiento para la próxima versión y así parchearlo?, ¿O es algo que no podrá ser tocado?
Un saludo.
Me temo que eso se lo deberías preguntar a Bill Gates.
Un saludo
Es cierto que si funciona cuando deshabilitas el tema visual. ¿Tendréis en cuenta este comportamiento para la próxima versión y así parchearlo?, ¿O es algo que no podrá ser tocado?
Un saludo.
Me temo que eso se lo deberías preguntar a Bill Gates.
Un saludo
Dudas sobre TUpDown y TMonthCalendar
Toni, Joan Ramón,
> Ya pero si se utiliza W7 no funciona correctamente ¿Teneis
> prevista alguna solución?. No creo que sea un
> comportamiento normal
Me temo que es "cosa" de los temas visuales. Este es un asunto que yo
estudié a fondo hace mucho tiempo, en los inicios de Xailer, y por lo
tanto creo que puedo aportar más luz sobre este tema.
El sistema de temas visuales (que existe a partir de Windows XP),
permite a los desarrolladores de los temas definir cómo se pinta cada
control. Y no sólo cómo se pinta, sino incluso los colores y las fuentes
que va a utilizar. Pero claro, si el desarrollador decide que no va a
utilizar un color o una fuente determinada, entonces se utilizan los que
tenga definidos el control, que serían los que se utilizarían si el
control no tuviese los temas activados. Pero si el desarrollador decide
utilizar una fuente o un color concretos, entonces nosotros no podemos
hacer absolutamente nada.
Y eso tiene todo el sentido del mundo. Imagínate, por ejemplo, un tema
con colores oscuros (que los hay, y muchos). En esas circunstancias, si
se pinta el texto de un botón de una toolbar en negro, no se vería. En
cambio, un radiobutton depende completamente del contenedor que tenga
debajo. De ahí que el desarrollador del tema debe elegir un color claro
para el texto de los botones de una toolbar mientras que el color de los
radiobutton los deja sin definir. Es por eso que cada control es
distinto, porque depende de la decisión del desarrollador del tema. Y
aunque tenga menos lógica, también ocurre con la fuente y con el tamaño
de la fuente, supongo que por coherencia con la apariencia general del
tema activo.
La única forma de obligar a usar una fuente y/o un color concreto es
quitando el tema visual del control. Yo no lo aconsejo, porque con
muchos temas va a desentonar, pero si lo necesitáis, la forma de hacerlo
es así:
SetWindowTheme( <control>:Handle, "", "" )
Esa llamada la podéis poner en el evento OnInitialize del formulario.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
> Ya pero si se utiliza W7 no funciona correctamente ¿Teneis
> prevista alguna solución?. No creo que sea un
> comportamiento normal
Me temo que es "cosa" de los temas visuales. Este es un asunto que yo
estudié a fondo hace mucho tiempo, en los inicios de Xailer, y por lo
tanto creo que puedo aportar más luz sobre este tema.
El sistema de temas visuales (que existe a partir de Windows XP),
permite a los desarrolladores de los temas definir cómo se pinta cada
control. Y no sólo cómo se pinta, sino incluso los colores y las fuentes
que va a utilizar. Pero claro, si el desarrollador decide que no va a
utilizar un color o una fuente determinada, entonces se utilizan los que
tenga definidos el control, que serían los que se utilizarían si el
control no tuviese los temas activados. Pero si el desarrollador decide
utilizar una fuente o un color concretos, entonces nosotros no podemos
hacer absolutamente nada.
Y eso tiene todo el sentido del mundo. Imagínate, por ejemplo, un tema
con colores oscuros (que los hay, y muchos). En esas circunstancias, si
se pinta el texto de un botón de una toolbar en negro, no se vería. En
cambio, un radiobutton depende completamente del contenedor que tenga
debajo. De ahí que el desarrollador del tema debe elegir un color claro
para el texto de los botones de una toolbar mientras que el color de los
radiobutton los deja sin definir. Es por eso que cada control es
distinto, porque depende de la decisión del desarrollador del tema. Y
aunque tenga menos lógica, también ocurre con la fuente y con el tamaño
de la fuente, supongo que por coherencia con la apariencia general del
tema activo.
La única forma de obligar a usar una fuente y/o un color concreto es
quitando el tema visual del control. Yo no lo aconsejo, porque con
muchos temas va a desentonar, pero si lo necesitáis, la forma de hacerlo
es así:
SetWindowTheme( <control>:Handle, "", "" )
Esa llamada la podéis poner en el evento OnInitialize del formulario.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
Dudas sobre TUpDown y TMonthCalendar
OK
Entendido y explicado perfectamente.
Saludos
Entendido y explicado perfectamente.
Saludos