FreeBASIC ScreenCons
目次→実行時ライブラリー参考→実行画面関連→SCREEN (実行画面)←オリジナル・サイト
指定位置の、文字や色属性を取得します。
構文:
用法:
result = Screen
( row, column [, colorflag ] )
パラメタ:
row
実行画面の左上隅を起点にして、1から始まる行方向のオフセット。
column
実行画面の左上隅を起点にして、1から始まる桁方向のオフセット。
colorflag
0 にすると、
ASCII コードが返されます。0 以外の場合は、色属性が返されます。
省略すると、デフォルトとして 0 になります。
戻り値:
記述:
Screen は、実行画面出力の指定の位置で見つけた、文字か色属性を、戻り値として取得します。
この関数は、実行画面モードだけでなく、描画モードでも同様に機能します。
色属性の表示形式は、現在の色の深度に依存します:
色タイプが、画素あたり最大4ビットの「パレットタイプ」(例えば
Win32 実行画面など)であれば、カラー属性は8ビットの値になります。この場合、上位の4ビットはセル背景色を保持して、下位の4ビットが前景(キャラクタ)色を保持します。
色タイプが8ビットのパレットであれば、色属性は16ビットの値です。上位バイトが背景色で、下位バイトが文字表示色になります。
色タイプがフルカラーであれば、色属性は32ビットの整数で、単一色値を保持します。
colorflag が 1 なら、文字表示色が返されます。
colorflag が 2 なら、背景色が返されます。
標準の16色パレットの色の値は、以下の通りです。
Value | 値 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Color | 色 | Black | Blue | Green | Cyan | Red | Magenta | Brown | White |
黒 | 青 | 緑 | シアン | 赤 | マゼンタ | ブラウン | 白 |
|
Value | 値 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Color | 色 | Gray | Bright Blue | Bright Green | Bright Cyan | Bright Red | Pink | Yellow | Bright White |
グレー | 明るい青 | 明るい緑 | 明るいシアン | 明るい赤 | ピンク | 黄色 | 明るい白 |
例:
Dim character_ascii_value As Ulong
Dim attribute As Ulong
Dim background As Ulong
Dim cell_color As Ulong
Dim row As Long, col As Long
character_ascii_value = Screen
( row, col )
attribute = Screen
( row, col, 1 )
background = attribute Shr 4
cell_color = attribute And &hf
Sleep
'' 1画素あたり4ビット色深度の描画画面を開けます
'' (あるいはまた、この行をコメント・アウトして、実行画面を使ってみてください)
ScreenRes 320, 200, 4
'' 1文字を表示します
Color 7, 1
Print "A"
Dim As Ulong char, col, fg, bg
'' 上で表示した文字の ASCII値を取得します
char = Screen
(1, 1, 0)
''色属性を取得します
col = Screen
(1, 1, 1)
fg = col And &HF
bg = (col Shr 4) And &HF
Print Using "ASCII value:
###
(""!"")
";char;
Chr
(char)
Print Using "Foreground color:
##";
fg
Print Using "Background color:
##";
bg
Sleep
'' 1画素あたり8ビットで描画画面を開けます
ScreenRes 320, 200, 8
'' 1文字を表示します
Color 30, 16
Print "Z"
Dim As Ulong char, col, fg, bg
'' 上で表示した文字の ASCII値を取得します
char = Screen
(1, 1, 0)
''色属性を取得します
col = Screen
(1, 1, 1)
fg = col And &HFF
bg = (col Shr 8) And &HFF
Print Using "ASCII value:
###
(""!"")
";char;
Chr
(char)
Print Using "Foreground color:
###";
fg
Print Using "Background color:
###";
bg
Sleep
'' フルカラー描画画面を開けます
ScreenRes 320, 200, 32
'' 1文字を表示します
Color RGB(255, 255, 0), RGB(0, 0, 255) '青色の背景色の上に、黄色の文字を表示します
Print "M"
Dim As Ulong char, fg, bg
'' 上で表示した文字の ASCII値を取得します
char = Screen
(1, 1, 0)
''色属性を取得します
fg = Screen
(1, 1, 1)
bg = Screen
(1, 1, 2)
Print Using "ASCII value:
###
(""!"")
";
char;
Chr
(char)
Print Using "Foreground color:
&";
Hex
(fg, 8)
Print Using "Background color:
&";
Hex(bg, 8)
Sleep
プラットホーム差:
-
リナックス版では、戻り値は、実行画面に示されている文字と異なることができます。
例えば、Printed 文字の終わりの後ろに暗黙のうちに起こる LF 文字 (10) など、表示に適さない制御コードは、その位置で触れない文字の代わりに抽出することができます。
QBからの違い:
-
QB Screen では、座標が画面を外れたら、エラーになりました
参照:
ページ歴史:2022-03-26 02:43:08
日本語翻訳:WATANABE Makoto、原文著作者:
AntoniGual