色の設定で &H からはじまる値の意味

解決


ゆうきん  2004-06-03 23:49:38  No: 83766

色の設定で、プロパティウィンドウには&Hからはじまる設定値が施されているんですが、いま某参考書で勉強していたら
  ピンク---  &HFF80FF&
  緑    ---  &HC000&
というコードが載ってました。てっきり、&から&まで16進数をあらわすHを除き
8桁で表されるものだと思ってたので面食らってます。

省略されているだけなのだと思うのですが、どのように省略できるのか自分の力で
ヘルプを調べても、わかりませんでした。

すいません。どなたかご教授ください。


nanashi  2004-06-04 01:03:46  No: 83767

まず、頭の『&H』は16進数であることを表しています。

その後の16進数は2Byteずつの色のデータを表しています。
00〜FFの256階調の色データで、右から赤、緑、青(RGB)の三原色です。

右からと言ったのは左側は場合によって省略できるからです。
ピンクの場合『&HFF80FF&』で、赤が256、緑が128、青が256です。
緑の場合『&H00C000&』で、赤が0、緑が192、青が0です。
普通の10進数の数字を考えてもらえば分かると思いますが、
左に来る0は省略できます。
『&H00C000&』と『&HC000&』は同じ値です。

最後に来る『&』はLong型である事を意味しています(VB6.0)。
これを付けないと値によってはInteger型だと判断されます。
『&HC000&』と『&HC000』では値が全く違うので注意が必要です。

えーと、私の理解ではだいたいこんなもんですがいかがでしょうか?


ゆうきん  2004-06-04 01:48:19  No: 83768

ありがとうございました〜!!!
すばらしい。

あっ、、、でもですね、最後の「&」なんですが、
コードウィンドウで勝手に消えちゃうんです。
ピンクの場合  

&HFF80FF&  

って入力すると

&HFF80FF

になっちゃいます。勝手に省略されてますよーて教えるために付いてしまう
記号なのかともおもったのですが、、、でもLong型を表す型宣言文字だという
ことがわかっただけで満足です。ありがとうございました。

あのー、すいません、あと、、、&Hと最後の&まで6桁ある場合は理解できたの
ですが、VBのプロパティウィンドウでは8桁ありますよね?

全部「&H00」から始まってるので、省略されてるんだと思ったのですが、
システムタブから適当に色を選ぶと「&H80」から始まる番号になるんです。

すいません。教えてください。きいてばっかですいませんです。


nanashi  2004-06-04 02:11:58  No: 83769

※訂正
> その後の16進数は2Byteずつの色のデータを表しています。
2Byteじゃなくて1Byte(2桁の16進数)ですねf^_^;

最後の『&』が省略されるのは、『&HFF80FF』が既にIntegerの範囲を越えているので
自動的にLong型と見なしているからです(だと思います)。

> 全部「&H00」から始まってるので、省略されてるんだと思ったのですが、
> システムタブから適当に色を選ぶと「&H80」から始まる番号になるんです。

これはシステムカラー用の番号のことですね。
『&H80000000』はスクロールバーの色
『&H80000001』はデスクトップの色

というように決められています。
なのでRGBとは直接関係無いです。


うにぃ  2004-06-04 02:15:25  No: 83770

プロパティウインドウで指定できる、"ボタンの表面"などの色指定は、
システムカラーといってプログラムを実行する環境に依存します。
それなので、&H8000000F&などは色を表すのではなくて、
"Windowsでボタンの表面設定されている色"に使う、ということになります。

ためしに、Windowsの"画面のプロパティ"の"デザイン"で色設定を変えてみるとわかりやすいかもしれません。

#と上記のように私は認識しています。


ゆうきん  2004-06-04 04:23:55  No: 83771

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

大変勉強になりました。ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加