FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour IsAppThemed()
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: IsAppThemed()
Posted: Thu Aug 26, 2010 05:32 PM

Juan,

Puedes por favor proporcionar un peque帽o ejemplo de c贸digo que reproduzca el error 贸 mostrar una imagen de la pantalla ? gracias

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 14
Joined: Fri Oct 21, 2005 10:05 AM
Re: IsAppThemed()
Posted: Fri Aug 27, 2010 08:30 AM

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

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: IsAppThemed()
Posted: Fri Aug 27, 2010 09:18 AM
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:
Code (fw): Select all Collapse
聽 聽 聽 bIsThemed = ( ( ( BOOL ) FindResource( GetResources(), MAKEINTRESOURCE( 1 ),
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 MAKEINTRESOURCE( 24 ) ) ) ||
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ( ( BOOL ) FindResource( GetInstance(), MAKEINTRESOURCE( 1 ),
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 MAKEINTRESOURCE( 24 ) ) ) 聽|| pIsAppThemed() );

Pero para poder solucionar el problema anterior que te comento (apariencia cl谩sica en Windows 7) hemos tenido que quitar la llamada a pIsAppThemed():
Code (fw): Select all Collapse
聽 聽 聽 bIsThemed = ( ( ( BOOL ) FindResource( GetResources(), MAKEINTRESOURCE( 1 ),
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 MAKEINTRESOURCE( 24 ) ) ) ||
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 ( ( BOOL ) FindResource( GetInstance(), MAKEINTRESOURCE( 1 ),
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 MAKEINTRESOURCE( 24 ) ) ) );

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 :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 14
Joined: Fri Oct 21, 2005 10:05 AM
Re: IsAppThemed()
Posted: Fri Aug 27, 2010 09:43 AM
Antonio,

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.


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.).

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


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.

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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: IsAppThemed()
Posted: Fri Aug 27, 2010 10:25 AM
Juan,

Tienes raz贸n. IsAppThemed() de uxtheme.dll funciona bien:
Code (fw): Select all Collapse
#include "FiveWin.ch"

function Main()

聽 聽MsgInfo( IsAppThemed() )

return nil

DLL static FUNCTION IsAppThemed() AS BOOL LIB "uxtheme.dll"

Vamos a buscar en estos foros la pregunta de soporte t茅cnico que di贸 lugar a ese cambio para ver que pudo pasar. Gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: IsAppThemed()
Posted: Fri Aug 27, 2010 10:38 AM
De paso comentar la existencia de la funci贸n IsThemeActive() que parece no funcionar bien en uxtheme.dll:
Code (fw): Select all Collapse
#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"

IsThemeActive() devuelve verdadero aunque no hemos definido un fichero manifest para la aplicaci贸n:

http://msdn.microsoft.com/en-us/library/bb759813(VS.85).aspx
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion