Juan,
Puedes por favor proporcionar un pequeño ejemplo de código que reproduzca el error ó mostrar una imagen de la pantalla ? gracias
IsAppThemed()
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
-
- Posts: 14
- Joined: Fri Oct 21, 2005 10:05 am
Re: IsAppThemed()
Antonio,
No le demos más vueltas ...
Todos los efectos secundarios que estoy sufriendo se deben al cambio en el comportamiento de la función IsAppThemed().
Tal como hemos comentado en el transcurso de la conversación, ahora retorna .T. por el mero hecho de tener fichero manifest enlazado en el ejecutable mientras que antes requería que **además** Windows tuviera temas activos.
Personalmente me parece un poco peligroso hacer este tipo de cambios por las "toneladas" de código que pueden cambiar su comportamiento. Quizás habría sido mejor una nueva función (p.e. IsManifestIncluded()), un argumento ...
¿ Hay alguna forma de conseguir el comportamiento anterior ?
Saludos
Juan
No le demos más vueltas ...
Todos los efectos secundarios que estoy sufriendo se deben al cambio en el comportamiento de la función IsAppThemed().
Tal como hemos comentado en el transcurso de la conversación, ahora retorna .T. por el mero hecho de tener fichero manifest enlazado en el ejecutable mientras que antes requería que **además** Windows tuviera temas activos.
Personalmente me parece un poco peligroso hacer este tipo de cambios por las "toneladas" de código que pueden cambiar su comportamiento. Quizás habría sido mejor una nueva función (p.e. IsManifestIncluded()), un argumento ...
¿ Hay alguna forma de conseguir el comportamiento anterior ?
Saludos
Juan
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: IsAppThemed()
Juan,
La razón de haber modificado la función IsAppThemed() es debido a que en Windows 7, aún teniendo los temas desactivados y mostrando la apariencia "clásica antigua" de Windows, IsAppThemed() contenida en uxtheme.dll devuelve verdadero.
En nuestro código anterior una de las comprobaciones que se hacian era:
Pero para poder solucionar el problema anterior que te comento (apariencia clásica en Windows 7) hemos tenido que quitar la llamada a pIsAppThemed():
Nosotros no hemos advertido ningún inconveniente con este cambio. Pero tu, como dices, si.
Por eso, si eres tan amable de proporcionar un ejemplo ó un pantallazo veremos la forma de solucionarlo. Si no colaboras en tan poco que te pedimos, realmente es dificil poder ayudarte
La razón de haber modificado la función IsAppThemed() es debido a que en Windows 7, aún teniendo los temas desactivados y mostrando la apariencia "clásica antigua" de Windows, IsAppThemed() contenida en uxtheme.dll devuelve verdadero.
En nuestro código anterior una de las comprobaciones que se hacian era:
Code: Select all
bIsThemed = ( ( ( BOOL ) FindResource( GetResources(), MAKEINTRESOURCE( 1 ),
MAKEINTRESOURCE( 24 ) ) ) ||
( ( BOOL ) FindResource( GetInstance(), MAKEINTRESOURCE( 1 ),
MAKEINTRESOURCE( 24 ) ) ) || pIsAppThemed() );
Code: Select all
bIsThemed = ( ( ( BOOL ) FindResource( GetResources(), MAKEINTRESOURCE( 1 ),
MAKEINTRESOURCE( 24 ) ) ) ||
( ( BOOL ) FindResource( GetInstance(), MAKEINTRESOURCE( 1 ),
MAKEINTRESOURCE( 24 ) ) ) );
Por eso, si eres tan amable de proporcionar un ejemplo ó un pantallazo veremos la forma de solucionarlo. Si no colaboras en tan poco que te pedimos, realmente es dificil poder ayudarte
-
- Posts: 14
- Joined: Fri Oct 21, 2005 10:05 am
Re: IsAppThemed()
Antonio,
En mi caso, los inconvenientes son mayores porque tenemos código de FWH modificado y algunas de esas modificaciones se apoyan en IsAppThemed().
Saludos
Juan
Pero éso NO era así en anteriores versiones. Yo estoy probando FWH 9.01 sobre Win7 con los temas desactivados y funciona perfectamente (retorna .F.).La razón de haber modificado la función IsAppThemed() es debido a que en Windows 7, aún teniendo los temas desactivados y mostrando la apariencia "clásica antigua" de Windows, IsAppThemed() contenida en uxtheme.dll devuelve verdadero.
Sí existen inconvenientes, prueba samples\TestMDI.prg con temas desactivados y verás como p.e. NO aparecen los grippers de la TBar y la TMsgBar.Nosotros no hemos advertido ningún inconveniente con este cambio. Pero tu, como dices, si.
Por eso, si eres tan amable de proporcionar un ejemplo ó un pantallazo veremos la forma de solucionarlo. Si no colaboras en tan poco que te pedimos, realmente es dificil poder ayudarte
En mi caso, los inconvenientes son mayores porque tenemos código de FWH modificado y algunas de esas modificaciones se apoyan en IsAppThemed().
Saludos
Juan
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: IsAppThemed()
Juan,
Tienes razón. IsAppThemed() de uxtheme.dll funciona bien:
Vamos a buscar en estos foros la pregunta de soporte técnico que dió lugar a ese cambio para ver que pudo pasar. Gracias!
Tienes razón. IsAppThemed() de uxtheme.dll funciona bien:
Code: Select all
#include "FiveWin.ch"
function Main()
MsgInfo( IsAppThemed() )
return nil
DLL static FUNCTION IsAppThemed() AS BOOL LIB "uxtheme.dll"
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: IsAppThemed()
De paso comentar la existencia de la función IsThemeActive() que parece no funcionar bien en uxtheme.dll:
IsThemeActive() devuelve verdadero aunque no hemos definido un fichero manifest para la aplicación:
http://msdn.microsoft.com/en-us/library ... S.85).aspx
Code: Select all
#include "FiveWin.ch"
function Main()
MsgInfo( IsAppThemed() )
MsgInfo( IsThemeActive() )
return nil
DLL static FUNCTION IsAppThemed() AS BOOL LIB "uxtheme.dll"
DLL static FUNCTION IsThemeActive() AS BOOL LIB "uxtheme.dll"
http://msdn.microsoft.com/en-us/library ... S.85).aspx