|
||
解説: RGB マクロ(Win32)を使って、いろいろな色を表示してみます。このマクロは、 引数を指定することで、自由に色を選択できます。 RGB (赤、 緑、 青) の形で使用し、各パラメータは各々の輝度を表します。 戻り値は、得られた RGB 色を返します。 使用例: 今回は、RGB マクロで取得したランダムな色を使って円を描いてみます。 アプリ起動後、Button をクリックするたびに様々な色で円が描かれます。 コンポーネントは、Panel を配置した上に PaintBox を配置してください。そこから少し離れた場所(Left = 112, Top = 208 など)に Button をひとつ配置してください。 コーディングの流れとしては、起動時、randomize で乱数発生ルーチンを初期化しています。次に、Panel1 と PaintBox1 のプロパティに初期値を代入しています(位置的にまずい場合は、適宜変更してください)。 OnClick では、乱数で座標位置と各輝度を取得しています。その値を使って、PaintBox の円を描いています。 四角形や三角形なども描いてみてください。 //------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { // 乱数発生ルーチンを初期化。 randomize(); // Panel の設定 Panel1->Caption = ""; Panel1->Color = clWhite; Panel1->BevelOuter = bvLowered; Panel1->Width = 265; Panel1->Height = 177; // PaintBox の設定 PaintBox1->Align = alClient; } //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { // 変数 int x, y, r, g, b; // ポジションを乱数で取得 x = random(PaintBox1->Width); y = random(PaintBox1->Height); // 色を乱数で取得 r = random(256); g = random(256); b = random(256); // RGB を Color に変換 PaintBox1->Canvas->Pen->Color = TColor(RGB(r, g, b)); PaintBox1->Canvas->Brush->Style = bsClear; // 円を描く PaintBox1->Canvas->Ellipse(x - 20, y - 20, x + 20, y + 20); } //------------------------------------------------------------------- |