FreeBASIC Color
目次→実行時ライブラリー参考→実行画面関連→Color←オリジナル・サイト
目次→描画ライブラリー参考→2次元 描画関数→Color←オリジナル・サイト
テキストの実行画面出力と、グラフィックス出力に使用される、前景色/背景色を設定します。
構文:
用法:
Color [foreground] [, background]
result = Color [( [foreground] [, background] )]
パラメタ:
foreground
設定する前景色
background
設定する背景色
戻り値:
32ビットの値を返します。
low word は、現在の前景色を、
high word は、現在の背景色を含んでいます。
hi/truecolor モードでは、前景色だけが返されます。32ビット全てを使っているからです。
現在の描画モードの色(前景色と背景色)を返すには、代わりに、
ScreenControl を見てください。
古い色の値は、新しい色の値を設定すると同時に、取得できます。
解説:
Mode
モード |
意味 |
1 |
前景色は、画面色(0-15の範囲)です。
背景色は、使われるエミュレートされたCGAパレットです:
0 (緑色、赤、茶色)、1(青緑、赤紫色、白)、2(0と同じだが、さえた色)、3(1と同じだが、さえた色)
|
2, 11 |
前景色は、現在のパレットの色指数(範囲は、0-1)です。
背景色は現在のパレットの色指数(範囲は、0-1)です。
|
7, 8 |
前景色は、現在のパレットの色指数(範囲は、0-15)です。
背景色は、現在のパレットの画面色指数(範囲は、0-15)です。
|
9 |
前景色は、現在のパレットの色指数(範囲は、0-63)です。
背景色は、現在のパレットの画面色指数(範囲は、0-63)です。
|
12 |
前景色は、現在のパレットの色指数(範囲は0-15)です。
背景色は、現在のパレットの色指数(範囲は、0-15)です。
|
13 以上 |
前景色は、現在のパレットの色指数(範囲は、0-255)です。
背景色は、現在のパレットの色指数(範囲は、0-255)です。
|
8bpp 以上の濃淡の色を使っているなら、前景色と背景色に、16進の &h
AARRGGBB 形式で、
RGB色の値を直接指定できます。ここで、
AA,
RR,
GG および
BB は、&h00 から &hFF(10進法では、0 から 255) の範囲の、アルファと、赤と、緑と、青の要素です。
ハイ・カラー・モードとトゥルー・カラー・モード(hi/truecolor)で、有効な色の値を取得するのに、
RGB か
RGBA マクロを、利用できます。
Screen (Graphics) モードに入るとき、あらかじめ設定されている、
デフォルト・パレット が使われます。
例:
注:FreeBASIC 1.08〜 で、SetEnviron を追加しなくても、日本語環境で描画画面が表示されるように改善されました。
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")
' 32bpp色濃淡の 320x240 画面を設定
Screen 14,
32
'オレンジの前景色と、濃紺の背景色を設定します
Color RGB(255,
128,
0),
RGB(0,
0,
64)
' 背景色で、画面を塗りつぶします
Cls
'「Hello World! (こんにちは、世界!)」を、画面の中央に表示
Locate 15,
14
Print "Hello World!"
Sleep
Dim c
As UInteger
'現在の色の値を検索します
c =
Color()
'変数 c から、LOWORDとHIWORDを使って、色の値 (デフォルト・パレット) を抽出します
Print "実行画面の色:"
Print "前景色: " &
LoWord(c
)
Print "背景色: " &
HiWord(c
)
Sleep
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")
' 32ビット色深度では、Function Color() は前景色のみを返します
#include
"fbgfx.bi"
'' screencontrol は integer/uinteger を期待します
Dim As Long fgcolor, bkcolor
ScreenRes 500,
500,
32
Width 500\
8,
500\
16
Color &HFFFF00, &H0000FF
Cls
Print "From Function Color():"
Print " Foreground Color: ";
Hex(Color(),
8)
Print
ScreenControl FB.GET_COLOR, fgcolor, bkcolor
Print "From Sub ScreenControl():"
Print " Foreground Color: ";
Hex(fgcolor,
8)
Print " Background Color: ";
Hex(bkcolor,
8)
Sleep
QBからの違い:
- QBは、直接色モードを、サポートしていませんでした。
- 境界引数は有りませんでした。
参照:
ページ歴史:2023-07-09 00:11:10
日本語翻訳:WATANABE Makoto、原文著作者:SysOp