エクスプローラ(WinXP)のマウスでドラッグしたときの色を取得するには

解決


SO  2006-04-16 17:54:19  No: 21053  IP: 192.*.*.*

エクスプローラ(Windows XP)にて、マウスを範囲選択(ドラッグ)すると、
デザインの配色が青の場合は、薄い青に塗りつぶされると思うのですが、
この色をTColorの定数で表すと、どの色になるのでしょうか。
それとも、別の方法で取得するのでしょうか。

編集 削除
TS  2006-04-16 20:00:41  No: 21054  IP: 192.*.*.*

1 getcol(フリーソフト) 等の画面の配色を得るプログラムで色を取得
2 RGB の並びを  delphi用に変換
3 例  0a246a ->$6a240a 0000ff->$ff0000  
4 unit Graphics;のソースにその色があるか調べる
5 例  clBlue = TColor($FF0000);

編集 削除
igy  2006-04-16 20:23:04  No: 21055  IP: 192.*.*.*

clHighlight     選択した文字の背景色
clHighlightText 選択した文字の色

ですか?

編集 削除
SO  2006-04-16 20:43:00  No: 21056  IP: 192.*.*.*

TSさん、igyさん、返信ありがとうございます。

TSさん>
確かにその方法で再現できると思うのですが、Themeが変更された場合に
対応できなさそうです。(画面のプロパティ→デザインタブ→配色等が変更された場合でも)

igyさん>
ファイル、フォルダの選択時の色ではなく、マウスをドラッグした場合の
矩形内の色と、囲い線の色を取得したいです。
ただ、色は近い色を表しているのですが、エクスプローラと比べると
濃いです。

編集 削除
SO  2006-04-16 21:03:29  No: 21057  IP: 192.*.*.*

うまく伝わりにくいので、絵で表現してみます。

+--------------+--------+--------------+--------------+
|     名前     | サイズ |     種類     |   更新日付   |←カラムヘッダ
+--------------+--------+--------------+--------------+
| FileNmae1                                           |
| FileNmae2           +---------------+←A            |
| FileNmae3           |               |               |
| FileNmae4           |       B       |               |
| FileNmae5           |               |               |
| FileNmae6           |               |               |
| FileNmae7           +---------------+               |
| FileNmae8                            マウスドラッグ |
| FileNmae9                                           |
| ....                                                |
+--------------+--------+--------------+--------------+

範囲選択するときに塗りつぶされる色、AとBを知りたいです。

編集 削除
SO  2006-04-16 21:04:34  No: 21058  IP: 192.*.*.*

すみません。
崩れてしましました。。。

編集 削除
igy  2006-04-16 21:39:21  No: 21059  IP: 192.*.*.*

こちらで試している環境では、ドラッグ中の範囲選択内に色が付きませんが、
ドラッグ中の範囲選択内に色をつけるには、何か設定が必要ですか?
こちらは
Windows Xp Home SP2 で
「画面のプロパティ」の「テーマ」タブで、
「テーマ」欄:「Windows XP」に切り替えた直後の状態で試しています。

編集 削除
TS  2006-04-16 21:52:43  No: 21060  IP: 192.*.*.*

igyさんの言われる様に色は付きませんね
選択時には選択され他物に色が付くみたいですが
Aは色というより黒のドットの線です

編集 削除
TS  2006-04-16 21:54:40  No: 21061  IP: 192.*.*.*

され他−>された

編集 削除
TS  2006-04-16 22:01:58  No: 21062  IP: 192.*.*.*

勘違いしてました。
この質問の意味は現在使われているシステムの色を取得するには
でしようか

編集 削除
SO  2006-04-16 22:34:05  No: 21063  IP: 192.*.*.*

igyさん、TSさん、返信ありがとうございます。

igyさん>
説明が下手ですみません。
直リンですが、画像をアップしました。

http://zetubou.mine.nu/timer/file/bomber16107_h60.png

見ていただけないでしょうか。

TSさん>
おそらく、システムの色を取得するのだとは思うのですが、
どの色なのかが分からずです。

編集 削除
igy  2006-04-17 08:59:41  No: 21064  IP: 192.*.*.*

こちらで試している環境では、ドラッグ中の範囲選択内に色が付きません。
これは、Windows Xp 標準の環境で実現されるものですか?
それとも、何かWindowsデスクトップをカスタマイズするアプリケーションで
実現しているのですか?

編集 削除
J  2006-04-17 09:25:21  No: 21065  IP: 192.*.*.*

多分ドラッグ中ということではなくて選択中の間違いだと思われます

編集 削除
たぬき  2006-04-17 09:27:17  No: 21066  IP: 192.*.*.*

当方の環境(XP)では
画面のプロパティのデザインで指定した色と同じ色になります。
ただ色の取得より
囲んだ文字や色が半透明で見えるようにする方法がすごく難しいように
思えるのですが。

編集 削除
すったんだーど?  2006-04-17 09:29:56  No: 21067  IP: 192.*.*.*

こちらのWinXP Pro SP2では標準のXpスタイルでも、クラシックのスタイルでも
ドラッグ中に選択範囲内が薄い青色になりますよ。
色がつくのは、Explorerやコントロールパネルなど。
デスクトップは色無し。

編集 削除
たぬき  2006-04-17 09:30:09  No: 21068  IP: 192.*.*.*

度々すみません。
補足:
こちらでは
Windows Xp 標準の環境で
実現されております。

編集 削除
たぬき  2006-04-17 09:34:21  No: 21069  IP: 192.*.*.*

あ、そうではなくて
配色の項目で指定した色と同じになります。
ただ、詳細設定で指定した色では変更できないので
GetSysColorで取得できますかね?

編集 削除
igy  2006-04-17 10:11:38  No: 21070  IP: 192.*.*.*

>こちらで試している環境では、ドラッグ中の範囲選択内に色が付きません。

「画面のプロパティ」の「デザイン」タブで、
「効果」:「ドラッグ中にウィンドウの内容を表示する」にチェックを付けたら、
色がつくようになりました。

>矩形内の色と、囲い線の色を取得したいです。

のうち、囲い線の色は

clHighlight     選択した文字の背景色

と同じ色のようですね。

編集 削除
そうかも  2006-04-17 15:05:50  No: 21071  IP: 192.*.*.*

勘ですが、私も clHighlight なのではないかと思います。
で、半透明になってますよね。
ので、色がclHighlightとは異っているのではないかと。

うちは、システムカラーが緑系で統一されているんですが、
うちも、囲い線の色はリストアイテムなどを選択した時の色である
clHighlightっぽいです。
で、囲いの中の色は透けてるから
IntToHex( trunc(clHighlight * 0.5),6)などとしてログか何かに
出して、画面のキャプチャーから BGRを得て、比較してアルファ値
を求めるというのはどうかなと。

編集 削除
igy  2006-04-17 20:28:34  No: 21072  IP: 192.*.*.*

半透明に関しては

アルファブレンディング機能を利用する(Windows2000)
http://homepage1.nifty.com/ht_deko/tech001.html#tech017

のようにできればいいのでしょうけどね。

編集 削除
SO  2006-04-17 21:57:34  No: 21073  IP: 192.*.*.*

皆さん、ありがとうございます。

試してみます。
一応、これで解決とさせていただきます。
また分からなくなったら、そのときはまたよろしくお願いします。

編集 削除