version 2004 (Modified)
SET RGB COLORS ({*; }object; foregroundColor; backgroundColor{; altBackgrndColor})
| 引数 | 型 | 説明 | |
| * | 指定時, Objectはオブジェクト名 (文字列) | ||
| 省略時, Objectはフィールドまたは変数 | |||
| object | フォームオブジェクト | オブジェクト名 (* 指定時), または | |
| フィールドまたは変数 (* 省略時) | |||
| foregroundColor | 数値 | 前景色のRGBカラー | |
| backgroundColor | 数値 | 背景色のRGBカラー | |
| altBackgrndColor | 数値 | 奇数行の背景色RGBカラー |
説明
SET RGB COLORS コマンドは、引数objectとオプション引数の * によって指定されるオブジェクトの前景色と背景色を変更します。コマンドがリストボックスに対して適用される場合、引数を更に使用して奇数行の背景色を変更することができます。
オプションの * 引数を指定した場合、objectはオブジェクト名です (文字列) 。オプションの * 引数を省略すると、objectはフィールドまたは変数です。この場合、文字列ではなくフィールドまたは変数参照 (フィールドまたは変数のみ) を指定します。オブジェクト名に関する詳細はオブジェクトプロパティの節を参照してください。
オプションの引数altBackgrndColorを使用して、奇数行の背景色を設定することができます。この引数は、指定されたオブジェクトがリストボックスまたはリストボックスの列である場合にのみ使用できます。この引数を使用した場合、backgroundColor引数は偶数行に対してのみ使用されます。奇数行背景色を使用すると、リストがより読みやすくなります。
object がリストボックスオブジェクトを指す場合、奇数行背景色はリストボックス全体に対して使用されます。object がリストボックスの任意の列を指す場合、設定した色はその列に対してだけ使用されます。
引数foregroundColor、backgroundColor、altBackgrndColorにはRGBのカラー値を指定します。RGBの値は、4バイトの倍長整数です。そのフォーマット(0x00RRGGBB)は、以下の表で説明します(バイトには、右から左へ順に0から3までの数字が付けられます):
| Byte | 説明 |
| 3 | 絶対RGBカラーの場合0でなければなりません。 |
| 2 | カラーの赤コンポーネント (0..255) |
| 1 | カラーの緑コンポーネント (0..255) |
| 0 | カラーの青コンポーネント (0..255) |
以下はRGBカラーの例です:
| 値 | 説明 |
| 0x00000000 | 黒 |
| 0x00FF0000 | 明るい赤 |
| 0x0000FF00 | 明るい緑 |
| 0x000000FF | 明るい青 |
| 0x007F7F7F | グレイ |
| 0x00FFFF00 | 明るい黄 |
| 0x00FF7F7F | パステル赤 |
| 0x00FFFFFF | 白 |
カラーが自動で設定されるオブジェクトの描画を、4Dが使用する"システム"カラーで定義できます。以下の定義済み定数が提供されます:
| 定数 | 型 | 値 |
| Foreground color | 倍長整数 | -1 |
| Background color | 倍長整数 | -2 |
| Dark shadow color | 倍長整数 | -3 |
| Light shadow color | 倍長整数 | -4 |
| Highlight text background color | 倍長整数 | -7 |
| Highlight text color | 倍長整数 | -8 |
| Highlight menu background color | 倍長整数 | -9 |
| Highlight menu text color | 倍長整数 | -10 |
| Disable highlight item color | 倍長整数 | -11 |
これらのカラーを以下に示します:
警告: これらの自動カラーはシステムに依存します。システムカラーが変更されると、4Dも変更された自動カラーを使用します。自動カラー値はシステムカラーを使用する際に指定してください。上記例のカラーを直接指定するためには使用できません。
例題
以下のフォームにはvsColorValueとvsColorという2つの入力不可変数とthRed、thGreen、thBlueという3つのサーモメータが含まれます。
以下は、これらのオブジェクト用メソッドです:
` vsColorValue non-enterable Object Method Case of : (Form event=On Load) vsColorValue:="0x00000000" End case ` vsColor non-enterable variable Object Method Case of : (Form event=On Load) vsColor:="" SET RGB COLORS(vsColor;0x00FFFFFF;0x0000) End case ` thRed Thermometer Object Method CLICK IN COLOR THERMOMETER ` thGreen Thermometer Object Method CLICK IN COLOR THERMOMETER ` thBlue Thermometer Object Method CLICK IN COLOR THERMOMETER
3つのサーモメータから呼ばれるプロジェクトメソッドは以下のとおり:
` CLICK IN COLOR THERMOMETER Project Method SET RGB COLORS(vsColor;0x00FFFFFF;(thRed << 16)+(thGreen << 8)+thBlue) vsColorValue:=String((thRed << 16)+(thGreen << 8)+thBlue;"&x") If (thRed=0) vsColorValue:=Substring(vsColorValue;1;2)+"0000"+Substring(vsColorValue;3) End if
サーモメータの値からカラー値を計算するためにビットワイズ演算子を使用しています。
実行sれるとフォームは以下のように表示されます:
参照
Select RGB Color, SET COLOR, ビットワイズ演算子.