FreeBASIC マニュアルのトップに戻る

FreeBASIC Color

目次→実行時ライブラリー参考→実行画面関連Color←オリジナル・サイト
目次→描画ライブラリー参考→2次元 描画関数Color←オリジナル・サイト

Color (色) 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

テキストの実行画面出力と、グラフィックス出力に使用される、前景色/背景色を設定します。

構文:
declare function Color ( byval foreground as ulong , byval background as ulong ) as ulong

用法:
Color [foreground] [, background]
result = Color [( [foreground] [, background] )]

パラメタ:
foreground
設定する前景色
background
設定する背景色

戻り値:
32ビットの値を返します。 low word は、現在の前景色を、high word は、現在の背景色を含んでいます。

hi/truecolor モードでは、前景色だけが返されます。32ビット全てを使っているからです。
現在の描画モードの色(前景色と背景色)を返すには、代わりに、ScreenControl を見てください。

古い色の値は、新しい色の値を設定すると同時に、取得できます。

解説:
Color 命令文は、現在の前景色、そして/または、背景色を設定します。
Circle (円), DRAW, Line (描画), CLS, PAINT, Print, PResetPSet は、全て、しかるべきところで、その色を指定しないと、この関数によって設定された最後の色を使用します。
Color が受け入れる色の値は、現在の描画モードに依存します。

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進の &hAARRGGBB 形式で、RGB色の値を直接指定できます。ここで、AA, RR, GG および BB は、&h00 から &hFF(10進法では、0 から 255) の範囲の、アルファと、赤と、緑と、青の要素です。
ハイ・カラー・モードとトゥルー・カラー・モード(hi/truecolor)で、有効な色の値を取得するのに、RGBRGBA マクロを、利用できます。

Screen モードに入るとき、あらかじめ設定されている、デフォルト・パレット が使われます。

例:
注: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 UInteger 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からの違い:

参照:
実行画面関連 に戻る
2次元 描画関数 に戻る
←リンク元に戻る プログラム開発関連に戻る

ページ歴史:2019-01-13 18:50:53
日本語翻訳:WATANABE Makoto、原文著作者:SysOp

ホームページのトップに戻る

表示-非営利-継承