エクスプローラ(Windows XP)にて、マウスを範囲選択(ドラッグ)すると、
デザインの配色が青の場合は、薄い青に塗りつぶされると思うのですが、
この色をTColorの定数で表すと、どの色になるのでしょうか。
それとも、別の方法で取得するのでしょうか。
1 getcol(フリーソフト) 等の画面の配色を得るプログラムで色を取得
2 RGB の並びを delphi用に変換
3 例 0a246a ->$6a240a 0000ff->$ff0000
4 unit Graphics;のソースにその色があるか調べる
5 例 clBlue = TColor($FF0000);
clHighlight 選択した文字の背景色
clHighlightText 選択した文字の色
ですか?
TSさん、igyさん、返信ありがとうございます。
TSさん>
確かにその方法で再現できると思うのですが、Themeが変更された場合に
対応できなさそうです。(画面のプロパティ→デザインタブ→配色等が変更された場合でも)
igyさん>
ファイル、フォルダの選択時の色ではなく、マウスをドラッグした場合の
矩形内の色と、囲い線の色を取得したいです。
ただ、色は近い色を表しているのですが、エクスプローラと比べると
濃いです。
うまく伝わりにくいので、絵で表現してみます。
+--------------+--------+--------------+--------------+
| 名前 | サイズ | 種類 | 更新日付 |←カラムヘッダ
+--------------+--------+--------------+--------------+
| FileNmae1 |
| FileNmae2 +---------------+←A |
| FileNmae3 | | |
| FileNmae4 | B | |
| FileNmae5 | | |
| FileNmae6 | | |
| FileNmae7 +---------------+ |
| FileNmae8 マウスドラッグ |
| FileNmae9 |
| .... |
+--------------+--------+--------------+--------------+
範囲選択するときに塗りつぶされる色、AとBを知りたいです。
すみません。
崩れてしましました。。。
こちらで試している環境では、ドラッグ中の範囲選択内に色が付きませんが、
ドラッグ中の範囲選択内に色をつけるには、何か設定が必要ですか?
こちらは
Windows Xp Home SP2 で
「画面のプロパティ」の「テーマ」タブで、
「テーマ」欄:「Windows XP」に切り替えた直後の状態で試しています。
igyさんの言われる様に色は付きませんね
選択時には選択され他物に色が付くみたいですが
Aは色というより黒のドットの線です
され他−>された
勘違いしてました。
この質問の意味は現在使われているシステムの色を取得するには
でしようか
igyさん、TSさん、返信ありがとうございます。
igyさん>
説明が下手ですみません。
直リンですが、画像をアップしました。
http://zetubou.mine.nu/timer/file/bomber16107_h60.png
見ていただけないでしょうか。
TSさん>
おそらく、システムの色を取得するのだとは思うのですが、
どの色なのかが分からずです。
こちらで試している環境では、ドラッグ中の範囲選択内に色が付きません。
これは、Windows Xp 標準の環境で実現されるものですか?
それとも、何かWindowsデスクトップをカスタマイズするアプリケーションで
実現しているのですか?
多分ドラッグ中ということではなくて選択中の間違いだと思われます
当方の環境(XP)では
画面のプロパティのデザインで指定した色と同じ色になります。
ただ色の取得より
囲んだ文字や色が半透明で見えるようにする方法がすごく難しいように
思えるのですが。
こちらのWinXP Pro SP2では標準のXpスタイルでも、クラシックのスタイルでも
ドラッグ中に選択範囲内が薄い青色になりますよ。
色がつくのは、Explorerやコントロールパネルなど。
デスクトップは色無し。
度々すみません。
補足:
こちらでは
Windows Xp 標準の環境で
実現されております。
あ、そうではなくて
配色の項目で指定した色と同じになります。
ただ、詳細設定で指定した色では変更できないので
GetSysColorで取得できますかね?
>こちらで試している環境では、ドラッグ中の範囲選択内に色が付きません。
「画面のプロパティ」の「デザイン」タブで、
「効果」:「ドラッグ中にウィンドウの内容を表示する」にチェックを付けたら、
色がつくようになりました。
>矩形内の色と、囲い線の色を取得したいです。
のうち、囲い線の色は
clHighlight 選択した文字の背景色
と同じ色のようですね。
勘ですが、私も clHighlight なのではないかと思います。
で、半透明になってますよね。
ので、色がclHighlightとは異っているのではないかと。
うちは、システムカラーが緑系で統一されているんですが、
うちも、囲い線の色はリストアイテムなどを選択した時の色である
clHighlightっぽいです。
で、囲いの中の色は透けてるから
IntToHex( trunc(clHighlight * 0.5),6)などとしてログか何かに
出して、画面のキャプチャーから BGRを得て、比較してアルファ値
を求めるというのはどうかなと。
半透明に関しては
アルファブレンディング機能を利用する(Windows2000)
http://homepage1.nifty.com/ht_deko/tech001.html#tech017
のようにできればいいのでしょうけどね。
皆さん、ありがとうございます。
試してみます。
一応、これで解決とさせていただきます。
また分からなくなったら、そのときはまたよろしくお願いします。
ツイート | ![]() |