2011-09-23 11 views
10

Estoy tratando de dejar que el usuario elija si quiere usar estilo temático o no. ¿Es posible "cargar" dinámicamente el XPManifest?¿Es posible usar condicionalmente XPManifest en tiempo de ejecución?

Si el usuario acepta el estilo temático, utilice el manifiesto; de lo contrario, utilice el tema clásico. al inicio del programa después de dialogar con la selección de estilo cierra Me gustaría hacer algo como:

if UserWantsThemedStyle then 
    LoadManifestSomehow 
else 
    UseClassicStyle; 

¿Es incluso posible hacerlo en tiempo de ejecución?

Gracias

+1

Compruebe esta pregunta http://stackoverflow.com/questions/4393723/how-to-switch-an-application-between-themed-and-not-themed-at-run-time – RRUZ

Respuesta

12

Sí, puedes hacer esto. Necesita usar el activation context API que le permite activar diferentes manifiestos en el tiempo de ejecución. Lo he usado para habilitar temas en un complemento de Excel.

+0

gracias. Parece lo que estoy buscando. Encontré [su respuesta] (http://stackoverflow.com/questions/5132679/apply-windows-theme-to-office-com-add-in/5133222#5133222) pero no entiendo cómo usarlo. Estoy usando Delphi 2009, así que tengo que modificar un poco tu código para compilarlo. Lo pegaré en mi pregunta. – TLama

+0

El código en esa pregunta está bien en D6, creo. Estaba usando D6 cuando lo escribí. Es posible que deba colocar el manifiesto en una DLL separada en lugar de en su exe para evitar que el cargador lo recoja y lo aplique. –

+0

sí lo veo ahora. Entonces ese es mi problema Entonces, si lo pongo en un dll y cargo este dll, ¿lo hago funcionar? – TLama

Cuestiones relacionadas