|
DelphiXE3 [FMX]スクロールバー(ScrollBar) 2013/10/02 |
前頁で[Standard]内の「ProgressBar」(プログレスバー;進捗バー)について書きましたので次は、同じく[Standard]内の「ScrollBar」(スクロールバー)です。
【Delphi2010の記事はこちら】
【DelphiXE3[VCLアプリケーション]の記事はこちら】
| |
|
(ヘルプより)
Max
スライダーの最大位置に相当するこのスクロールバーの最大値を示します。
Maxプロパティを使用すると、このスクロールバーのスライダーが移動できる最大の値を設定することができます。たとえば、Max が 100(デフォルト値)に設定されている場合、スライダーを最大まで移動させると、Value は 100 となります。 |
Min
スライダーの最小位置に相当するこのスクロールバーの最小値を示します。
Minプロパティを使用すると、このスクロールバーのスライダーが移動できる最小の値を設定することができます。たとえば、Min が 0(デフォルト値)に設定されている場合、スライダーを最小まで移動させると、Value は 0 となります。 |
Orientation
このスクロールバーの方向を示します(左から右、または、下から上)。
Orientationプロパティを使用すると、このスクロールバーがどのように表示されるか(左から右へか、下から上か)を指定できます。Orientationは、次の値のいずれかを取ります:
orVertical
スクロールバーは、下から上の方向へレンダリングされます。
orHorizontal
スクロールバーは、左から右の方向へレンダリングされます。 |
Value
このスクロールバーの現在値を示します。
Valueを設定または取得することにより、このスクロールバーの現在値を指定または取得することができます。実行時に、Valueをプログラムまたは UI で設定することができます。この値は、Min および Max で区切られる範囲以内の値となります。 |
SmallChange
このスクロールバーのスライダーが、minまたはmaxボタンを押すたびに移動することができる位置の数を制御します。
SmallChangeプロパティを使用すると、このスクロールバーのスライダーが、maxまたはminボタンを押すのに応じて前後に動く位置の数を制御することができます。 |
ViewportSize
このスクロールバーのスライダーのサイズを、ピクセルで示します。
ViewportSizeプロパティを使用すると、スクロールバーのビューポート、つまり、スクロールのスライダーの領域のサイズを、ピクセルで指定することができます。 |
|
(ヘルプより)
ウィンドウ、フォーム、コントロールの内容をスクロールするのに使用される標準的なスクロールバーを表します。
TScrollBar は、独立のスクロールバーをフォームに追加するものです。多くのコントロールには、コントロールの不可欠な部分となるスクロールバーを追加するプロパティがあります。ただし、TScrollBar を使用すると、スクロールバーが組み込まれていないコントロールや、コントロールグループを、ユーザーによる TScrollBar オブジェクトの操作時にスクロールさせることができます。 |
というわけで、画面上に表示させる別のコンポーネント等を移動表示したい、というような場合を想定している感じですが、数値入力をスライダーで行いたい場合とか、プログレスバーのような状況表示に使いたい場合とか、利用方法は色々とあるかもしれません。
下図のようにコンポーネントを配置をして、下記のようなプログラムを入力します。
procedure TForm1.FormShow(Sender: TObject);
begin
ScrollBar1.Max := Panel1.Width ;
ScrollBar2.Max := Panel1.Height ;
ScrollBar1.Value := Label1.Position.X ;
ScrollBar2.Value := Label1.Position.Y ;
end;
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
Label1.Position.X := ScrollBar1.Value ;
end;
procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
Label1.Position.Y := ScrollBar2.Value ;
end; |
保存・コンパイル・実行を行います。
スクロールバーを操作すると、ラベル(Label1)の位置が変わります。
動かせばすぐに分かりますが、スクロールバーの位置とラベルの位置が若干ずれていますが、これは、スクロールバーの端にあるMinボタン・Maxボタンの大きさを考慮していないからです。
ついでに、小スクロールバー(SmallScrollBar)についても見ておきます。
|
(ヘルプより)
標準のスクロールバーの変形版を表します。
TSmallScrollBar コンポーネントは、標準の TScrollBar から min ボタンと max ボタンを取り除いてスリム化したものです。それ以外の動作は変わりません。 |
|
ということで、下記のようにコンポーネントを配置して、プログラムを変更します。
procedure TForm1.FormShow(Sender: TObject);
begin
ScrollBar1.Max := Panel1.Width ;
ScrollBar2.Max := Panel1.Height ;
ScrollBar1.Value := Label1.Position.X ;
ScrollBar2.Value := Label1.Position.Y ;
SmallScrollBar1.Max := Panel1.Width ;
SmallScrollBar2.Max := Panel1.Height ;
SmallScrollBar1.Value := Label1.Position.X ;
SmallScrollBar2.Value := Label1.Position.Y ;
end;
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
Label1.Position.X := ScrollBar1.Value ;
SmallScrollBar1.Value := ScrollBar1.Value ;
end;
procedure TForm1.ScrollBar2Change(Sender: TObject);
begin
Label1.Position.Y := ScrollBar2.Value ;
SmallScrollBar2.Value := ScrollBar2.Value ;
end;
procedure TForm1.SmallScrollBar1Change(Sender: TObject);
begin
Label1.Position.X := SmallScrollBar1.Value ;
ScrollBar1.Value := SmallScrollBar1.Value ;
end;
procedure TForm1.SmallScrollBar2Change(Sender: TObject);
begin
Label1.Position.Y := SmallScrollBar2.Value ;
ScrollBar2.Value := SmallScrollBar2.Value ;
end; |
保存・コンパイル・実行を行います。
スクロールバーを操作すると、ラベル(Label1)の位置が変わります。Minボタン・Maxボタンがありませんし、小さいが故に画面レイアウトしやすいかもしれません。
スクロールバーも他のコンポーネントと同様、スタイルによって概観は変化します。スタイルブックを追加し、スタイル「Air.Style」を指定した状態です。
保存・コンパイル・実行を行います。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/10/02
2013/10/02
▼2013/10/03
シェアウェア
Script!World
データベース
|