ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

RGB マクロで色を自由に作成する 

更新 : 2009/04/09

 



解説:
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);
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.