「色の作成」No.39357
styth さん 21/11/18 11:41
 
    setcompatiblemode 0x0F;
//  colormarker 16777215 , 16744576 , 0 , 0;//(1)
//  colormarker 0xffffff , 0xFF8080,  0 , 0;//(2)
    colormarker 16777215 , 0x8080FF , 0 , 0;//(3)
    escape;

 一時的なカラーマーカーで、マクロの記録をやりました。
 背景色を一番右列の上から3番目にしました。


colormarker 16777215 , 16744576 , 0 , 0;//(1)
 と記録されました。

 色指定「16744576」を、ネットで調べて16進数にしました。
colormarker 0xffffff, 0xFF8080, 0, 0;//(2)

 「色の作成」で、10進の「16744576」が16進で何かと思い、「色の作成」の最
下段にあるRGB(1)で、10進の「16744576」が16進で何かと思い、見ると、
「8080FF」でした。
 そこで、
colormarker 16777215 , 0x8080FF , 0 , 0;//(3)

 1と3で色が違っています。
 1と2なら同じです。

 使い方が間違っていたら、ご指摘下さい。
 カラーマーカーで背景色を調合している時に気が付きました。

[ ]
RE:39357 「色の作成」No.39359
秀丸担当 さん 21/11/18 15:46
 
colormarker文の色の指定は、赤が0x0000ff、緑が0x00ff00、青が0xff0000になって
います。
これは1つの数値をバイト列にしたとき、リトルエンディアンで考えると、下位バイ
トが先になることに由来しています。
由来しているというだけで、最初から逆になるように作っていればよかったのですが、
一度こういう仕様として作ったので、これが変わることは無いです。
ややこしくてすみません。
昔はけっこうこの考え方が多かったと思うのですが、最近はRGB順の考えのほうが多
いと思います。
色の指定ダイアログのRGB入力欄は赤が先になっています。
前に似たような話もあったので、colormarker文でもHTMLのようにRGB順で指定できる
方法もできたらいかもしれません。
例えば数値でなく文字列で"#8080FF"とか、"#88F"とか指定できたらいいので、そう
いう方法も1つのネタにしておこうと思います。

[ ]
RE:39359 「色の作成」No.39365
styth さん 21/11/18 23:26
 
 ありがとうございます。分かりました。
 ところで、「色の指定」ダイアログの表記なんですが、
 一番右の方で、

 赤(R):
 緑(G):
 青(U):
 となっています。

 青(B):
 という表記の方が良いのではないでしょうか?

[ ]
RE:39365 「色の作成」No.39367
秀丸担当 さん 21/11/19 15:04
 
色の作成のダイアログは、基本的にWindows共通のものになっていて、それを独自に
拡張したものになっています。
Windows共通のものは、もともと「基本色(B)」があってそれと被るためUにしている
のだと思います。
秀丸エディタはそれに合わせていますが、「基本色(B)」は無くてどちらもでいいの
で、Bにしようと思います。

[ ]