2011-09-23 11 views
10

Sto provando a lasciare che l'utente scelga se vuole usare lo stile a tema oppure no. È possibile "caricare" dinamicamente XPManifest?È possibile utilizzare in modo condizionato XPManifest in fase di esecuzione?

Se l'utente accetta lo stile tematico, utilizzare il manifest, altrimenti utilizzare il tema classico. all'avvio del programma dopo il dialogo con la selezione stile chiude vorrei fare qualcosa di simile:

if UserWantsThemedStyle then 
    LoadManifestSomehow 
else 
    UseClassicStyle; 

E 'anche possibile farlo in fase di esecuzione?

Grazie

+1

Spunta questa domanda http://stackoverflow.com/questions/4393723/how-to-switch-an-application-between-themed-and-not-themed-at-run-time – RRUZ

risposta

12

Sì, è possibile farlo. È necessario utilizzare lo activation context API che consente di attivare diversi manifest in fase di esecuzione. L'ho usato per abilitare i temi in un componente aggiuntivo di Excel.

+0

grazie. Sembra quello che sto cercando. Ho trovato [la tua risposta] (http://stackoverflow.com/questions/5132679/apply-windows-theme-to-office-com-add-in/5133222#5133222) ma non capisco come usarlo. Sto usando Delphi 2009, quindi devo modificare un po 'il tuo codice per compilare. Lo incollo nella mia domanda. – TLama

+0

Il codice in questa domanda va bene in D6, penso. Stavo usando D6 quando l'ho scritto. Potrebbe essere necessario mettere il manifest in una DLL separata piuttosto che in un exe per evitare che venga prelevato e applicato dal loader. –

+0

sì, lo vedo ora. Quindi questo è il mio problema Quindi se lo metto in una DLL e carico questa DLL, la faccio funzionare? – TLama

Problemi correlati