文字色「透明」の時の実際表示色No.25734
Kamonohasi さん 08/12/07 18:20
 
こんばんは、いつもお世話になっております。カモノハシです。

ファイルタイプ別設定のデザインで文字色や背景色に「透明」が指定されてい
る場合、画面上で、実際に表示されている色を取得することは出来るのでしょ
うか。
もちろんカーソル位置を指定した上でですが。

また、マクロのヘルプに透明関係の記載がないので、仕様を記載していただけ
ますでしょうか。

ここしばらく、表示関係は追っかけていなかったので、既知なら申し訳ありま
せん。
よろしくお願いし致します。

[ ]
RE:25734 文字色「透明」の時の実際表示色No.25735
Iranoan さん 08/12/07 21:07
 
 カモノハシさん今日は、Iranoan です。
> ファイルタイプ別設定のデザインで文字色や背景色に「透明」が指定されてい
> る場合、画面上で、実際に表示されている色を取得することは出来るのでしょ
> うか。
 確り確認していませんが、「透明」であるかにかかわらず、末尾の要領で色
が取得できる気がするのですがどうでしょう? 逆に透明なのかどうかが解りま
せんが....。
//------------------------------------------------------------
message hex( getconfigcolor( colorcode&31, 1 ) );

[ ]
RE:25735 文字色「透明」の時の実際表示色No.25736
Kamonohasi さん 08/12/07 21:30
 
こんばんは、いつもお世話になっております。稲見です。

> 確り確認していませんが、「透明」であるかにかかわらず、末尾の要領で色
>が取得できる気がするのですがどうでしょう? 逆に透明なのかどうかが解りま
>せんが....。
>//------------------------------------------------------------
>message hex( getconfigcolor( colorcode&31, 1 ) );

早速のレスありがとうございます。
ただ、そのコードだと取得できないと思います。

例えば、「http://www.sample.com/」の「URL部分」の一部
「sample」って文字列を特に強調3とかにして、文字色を変更したいけど、背
景色は変えたくないって場合に、「背景=透明」とします。
この状態で「sample」の上にカーソルを動かして、colorcodeを取得すると、
当然、「特に強調3」が帰ってきます。
で、getconfigcolorから素直に背景色を取得すると、0xFFFFFFFFとなり、透明
であることは分かるのですが、カーソル位置が実際に何色に着色されているの
かはその背景の、強調表示が何かによって違ってしまいます。
上記の例だと、「http://www.sample.com/」と「D:\sample.txt」のsample部
分はそれぞれ、別の色を表示させることが出来ますが、これをマクロから取得
出来ないのかな?
ってことです。

説明が下手で申し訳ありません。

[ ]
RE:25736 文字色「透明」の時の実際表示色No.25737
Iranoan さん 08/12/07 21:50
 
 カモノハシさん今日は、Iranoan です。
> 例えば、「http://www.sample.com/」の「URL部分」の一部
> 「sample」って文字列を特に強調3とかにして、文字色を変更したいけど、背
> 景色は変えたくないって場合に、「背景=透明」とします。
> この状態で「sample」の上にカーソルを動かして、colorcodeを取得すると、
> 当然、「特に強調3」が帰ってきます。
> で、getconfigcolorから素直に背景色を取得すると、0xFFFFFFFFとなり、透明
> であることは分かるのですが、カーソル位置が実際に何色に着色されているの
> かはその背景の、強調表示が何かによって違ってしまいます。
> 上記の例だと、「http://www.sample.com/」と「D:\sample.txt」のsample部
> 分はそれぞれ、別の色を表示させることが出来ますが、これをマクロから取得
> 出来ないのかな?
 御説明有難うございました。0xFFFFFFFF にはなりませんでしたが、
0xFFFFFF になることを確認できました。(他にもあるかもしれませんが、) 特
に強調で透明を指定すると、どの場合も「白」になるようですね。

[ ]
RE:25736 文字色「透明」の時の実際表示色No.25738
h-tom さん 08/12/07 22:00
 

h-tom です。

>で、getconfigcolorから素直に背景色を取得すると、0xFFFFFFFFとなり、透明
>であることは分かるのですが、カーソル位置が実際に何色に着色されているの
>かはその背景の、強調表示が何かによって違ってしまいます。
>上記の例だと、「http://www.sample.com/」と「D:\sample.txt」のsample部
>分はそれぞれ、別の色を表示させることが出来ますが、これをマクロから取得
>出来ないのかな?
>ってことです。

カーソル位置の文字色/背景色なら、getcolormarkerで取得できますよ。
文字色:getcolormarker(0x11);
背景色: getcolormarker(0x12);

[ ]
RE:25738 文字色「透明」の時の実際表示色No.25739
Iranoan さん 08/12/07 22:23
 
 秀丸担当さん、h-tom さん今日は、Iranoan です。
> カーソル位置の文字色/背景色なら、getcolormarkerで取得できますよ。
 仰るとおり、実現できそうですね。

 ただヘルプには、
    カーソル位置の文字がcolormarker文によってカラーマーカーが付けられ
    ている場合、その情報を取得します。
とありますが、「colormarker文によってカラーマーカーが付けられている場
合」という条件は必要ないようですね。

[ ]
RE:25738 文字色「透明」の時の実際表示色No.25740
Kamonohasi さん 08/12/07 22:33
 
こんばんは、いつもお世話になっております。カモノハシです。

>文字色:getcolormarker(0x11);
>背景色: getcolormarker(0x12);
おお!出来ました!
Iranoanさんと同じくgetcolormarkerが、マーカー以外でも利用できると知りません
でした。
0x10なんてフラグがあったんですね。

ありがとうございました。

P.S.
0xFFFFFFFF は4byte長で-1をそのまま持ってるんですね。

[ ]
RE:25734 文字色「透明」の時の実際表示色No.25744
Kamonohasi さん 08/12/09 15:10
 
秀丸担当 様
こんにちは、いつもお世話になっております。カモノハシです。

マクロのヘルプについて、お願いがあります。
・「colorcode」の解説について
 0x00000018 (25) ... HTMLでのスクリプト部分
 0x00000019 (26) ... #ifdef等での無効部分
 0x0000001A (27) ... 数値(V7.08以降)
 とありますが、
 それぞれ、 0x19 0x1A 0x1B であったように思います。

・「configcolor」について
 色に透明を指定したときの取り扱いが記載されていません。
 記載して仕様を確定させていただけますでしょうか。

・「configcolor」/「getconfigcolor」について
 色に透明が指定されているときの、実際表示色を取得する方法が、記載されていま
せん。
 h-tom さんのご指摘で getcolormarker を使えば取得できることが分かりましたが、
 こちらも記載していただけますでしょうか。

よろしくお願いし致します。

[ ]
RE:25744 文字色「透明」の時の実際表示色No.25745
秀丸担当 さん 08/12/09 17:18
 

>マクロのヘルプについて、お願いがあります。
>・「colorcode」の解説について
> 0x00000018 (25) ... HTMLでのスクリプト部分
> 0x00000019 (26) ... #ifdef等での無効部分
> 0x0000001A (27) ... 数値(V7.08以降)
> とありますが、
> それぞれ、 0x19 0x1A 0x1B であったように思います。

その通りでした。ヘルプの記載ミスでした。
ご指摘ありがとうございます。
ヘルプを修正しておきます。

>・「configcolor」について
> 色に透明を指定したときの取り扱いが記載されていません。
> 記載して仕様を確定させていただけますでしょうか。

configcolorで透明を指定することは想定していなかったのですが、ヘルプに書
いておこうと思います。
configcolorでは透明を設定する場合は0xffffffffではできないです。
configcolorの場合は、調べてみたら内部的にレジストリに覚えておく値なので
すが、0x02000000を指定することでできました。
getconfigcolorは透明の場合は0xffffffffが返ります。

>・「configcolor」/「getconfigcolor」について
> 色に透明が指定されているときの、実際表示色を取得する方法が、記載されていま
>せん。
> h-tom さんのご指摘で getcolormarker を使えば取得できることが分かりましたが、
> こちらも記載していただけますでしょうか。

こちらもヘルプのgetcolormarkerにリンクを付けておこうと思います。

[ ]