Delphi2010 Proを使用しているTKです。
外部マニフェストファイルを使用しようしたいのですが、Delphi2010ではIDEオプションの「ランタイムテーマを有効にする」をOFFにしなければ外部マニフェストが適応されません。
※外部マニフェストはVista互換モードを削除する為に使用
しかしIDEオプションの「ランタイムテーマを有効にする」をOFFにするとIDE開発時のボタン等がクラシックスタイルになってしまいます。
「Vista互換モードを削除」し且つ「IDE開発時のボタンをルナスタイルにする」というのはDelphi2010で可能なのでしょうか?
回避方法をお持ちの方が居られましたら、お手数ですが教えてください。
以上、よろしくお願いいたします。
こんにちは。
デバッグビルドでは "ランタイムテーマを有効にする" をオンにして、
IDE 設計時にもランタイム有効で設計し、
リリースビルドでは "ランタイムテーマを有効にする" をオフにすればいいのではないかと思います。
外部マニフェストではなく内部マニフェスト(カスタム)ならば、上記対応を行った上で、
{$IFDEF RELEASE}
{$R 'AppName.exe.manifest.res'}
{$ENDIF}
のように、リリースビルドの時のみ
カスタムマニフェストリソースを埋め込むようにすればいいかと思います。
一番簡単なのは
・WindowsXP.res をバックアップ
・WindowsXP.res に ネイティブモードの記述を追加
・TXPManifest をフォームに貼る
・"ランタイムテーマを有効にする" オフ
ってやる事ですかね。
"ランタイムテーマを有効にする" オンと TXPManifest を同時には使えませので、
(使うとマニフェストリソースが 2 つ登録される)
TXPManifest はネイティブモード用に使うようにすればいいのではないでしょうか?
[アプリケーションマニフェスト (Delphi VCL Tips)]
http://ht-deko.minim.ne.jp/tech077.html
Delphi 7 〜 XE なら、WindowsXP.res を目的に合わせて複数用意しておいて、
$(BDS)\lib へコピーするバッチファイルを作って実行すればよろしいかと。
2007 以降なら [ビルドイベント] にバッチファイルを指定して、
ビルド前にバッチファイルを走らせる事ができます。
Ex.
cmd /c manifestcopy.cmd
DEKOさんお返事ありがとうございます。
今日は忙しくて確認が出来ないので、明日教えて頂いた内容を実行してみて、結果を報告させて頂きたいと思います。
DEKOさん、お返事が遅くなり申し訳ありません。
1.WindowsXP.resを改変したものをexe直下に用意
2.dprに{$R 'WindowsXP.res'}を追加
以上の対応で希望の動作が実現できました。
対応ありがとうございました。
解決をチェックし忘れておりました。
> 1.WindowsXP.resを改変したものをexe直下に用意
> 2.dprに{$R 'WindowsXP.res'}を追加
ぬ。そういう事であれば、"Manifest Ex" を使うと楽ですよ。
視覚的に何を使っているのか判り易いです。
[Manifest Ex]
http://ht-deko.minim.ne.jp/ft1303.html#130316_01
ツイート | ![]() |