2011-01-27 39 views
2

私はDelphi XEを使用しています。透明なPNG画像でTImageList

私のフォームにTAdvGlowButtonを追加し、画像のソースとして1つの透明なPNG画像を持つTImageListを追加しました。デザインモードでフォームを表示すると、ボタンが正確に表示され、イメージは透明になります。しかし、プログラムを実行すると、画像の背景が黒くなります。正しく読めない場合、これはTAdvGlowButtonのバグではなくTImageListです。

サードパーティのコンポーネントを使用せずにこれを修正する方法はありますか?

+1

イメージリストの 'ColorDepth'プロパティを' cd32bit'に設定しましたか?私はPNG画像の透明な画像を見ることができ、画像リストに保持され、ツールバーのボタンとして表示されます。ですから、私は 'TImageList'がそのような画像を扱うことができると思います。 –

+0

はい、ColorDepthはcd32bitに、DrawingStyleはdsTransparentに設定されています。 –

答えて

6

私はこれをプロジェクトマネージャからプロジェクト設定を開き、アプリケーション - >実行時テーマを有効にすることで解決しました。どのような愚かなオプションはこれですか?誰でもいつでもにしたくない場合は、は実行時テーマを有効にしますか?

+0

このオプションのデフォルト設定がチェックされているので、「いつ誰かがいつ**実行時テーマを有効にしたくないのですか?」という質問を自分自身に聞いてください。テーマを有効にしたときに実行されなかった他のコンポーネントを使用していた場合、おそらくランタイムテーマを無効にすると思います。 –

+0

これは以前の開発者がチェックを外している可能性があります。私はちょうどこの新しいコードベースで私の最初の一歩を踏み出しています。 –

+3

おそらくこのオプションが利用できなかった旧バージョンのDelphiのポートです。 IIRCの場合、これらのプロジェクトをアップグレードするときのデフォルトは、このスイッチをfalseに設定しています。 –

関連する問題