RGB カラーの設定をスクロールバーで自由に変更できるプログラムです。とても簡単に出来ます。まずStandard ページにある ScrollBar を3つフォームに貼り付けてください。 その後で、Label を6つ、Panel を1つ貼り付けて下さい。( Label は、貼り付けなくてもいいのですが、貼り付けた方がわかりやすいと思います)貼り付けた状態では、次のようになっていると思います。
3つのスクロールバーで R ( 赤 ), G ( 緑 ) , B ( 青 ) を調節するようにします。 パネルに色を表示したいので、Panel と表示されている文字が邪魔になるので、消しましょう。オブジェクトインスぺクタでPanelを選んで、Caption の所を消してください。 ついでに、Label も変更しちゃいましょう。( 同じく Caption で変更できます。) RGB はそれぞれ、0〜255までの値をとるので、スクロールバーの最大、最小の値をそれぞれ変更します。
後は、スクロールバーを動かした時に R, G, B のそれぞれの値が変更できるように、プログラムを組みます。 今回はスクロールバーが3つ同じような動きをするのでまとめて、procedure に書くことが出来ます。まず、フォームに貼り付けたスクロールバーをまとめて選択して、オブジェクトインスペクタでイベントページの OnChange をダブルクリックします。次の図を参考し似てください。
コードは以下のようになります。
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) ScrollBar1: TScrollBar; ScrollBar2: TScrollBar; ScrollBar3: TScrollBar; Panel1: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; procedure ScrollBar1Change(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ScrollBar1Change(Sender: TObject); var i1, i2, i3: Integer; begin // パネルの位置を変数に代入 i1 := ScrollBar1.Position; i2 := ScrollBar2.Position; i3 := ScrollBar3.Position; // パネルの色を設定 Panel1.Color := RGB(i1, i2, i3); // ラベルに値を代入 Label4.Caption := IntToStr(i1); Label5.Caption := IntToStr(i2); Label6.Caption := IntToStr(i3); end; end.
後は、それぞれの大きさを適当に変更すると完成です。こんな感じになりました。
ラベルに値を代入する時の IntToStr は、数値( Integer )とラベル( string )の型がそれぞれ異なっているので、型を合わせて代入します、ということです。(試しに、Label4.Caption := i1;としてコンパイルしてみてください) ここでは、i1を Integer から String に変更しますよ、と言うことです。