|
Delphi2010 スクロールバー(ScrollBar) 2010/08/24 |
前頁で[Standard]内の「ComboBox」(コンボボックス)について書きましたので次に、同じく[Standard]内の「ScrollBar」(スクロールバー)について見てみます。スクロールバーは Delphi6 にもあります。
配置します。1つ目なので Nameプロパティは「ScrollBar1」となります。
スクロールバーは、画面を移動したりするのに利用される、と推測されるのですが、例えば、フォーム、リストボックス、文字列グリッド、などは必要となった時に自動的にスクロールバーが表示されますし、メモ等は明示的に ScrollBarsプロパティで表示するか否かを指定する事が出来ます。ですのでこれらのコンポーネントを利用する場合には、スクロールバーコンポーネントは必要ありません。また、画面の一部をスクロール領域にしたいような場合でも、[Additional]頁のスクロールボックス(ScrollBox)コンポーネントの方が使いやすい場合も多く、このスクロールバーは他のコンポーネント等と自動的に連動する訳でもなく、スクロールバーを操作した時にはそれ用のイベントで自分でコーディングを行う必要があります。という状態で、スクロールバーは余り利用されないかもしれません。
スクロールバーの下にラベルを配置します。
<オブジェクトインスペクタ>のイベント頁でスクロールバーの OnScrollイベントの処理を下記のようにします。
procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer);
begin
Label1.Caption := IntToStr(ScrollBar1.Position) ;
end; |
これを保存・コンパイル(再構築)して実行します。スクロールバーを操作すればラベルの内容をするようにしているだけですが、すぐに確認できると思います。
このように、スクロールバーの位置を取得したい場合は、Positionプロパティを参照します。初期位置は<オブジェクトインスペクタ>で指定する事が可能です。
スクロールバーの最小値は Minプロパティ、最大値は Maxプロパティで指定できます。Kindプロパティを「sbHorizontal」にした場合には水平スクロールバー、「sbVertical」にした場合は垂直スクロールバーとなります。両端の三角をクリックした場合は、SmallChangeプロパティで指定した分ずつ位置が変わります。また、スクロールバーのバーの部分をクリックした場合は LargeChangeプロパティで指定した分ずつ位置が変わります。
なお、これらの位置関連のプロパティは全て、整数(Integer)となっています。実数値を使うことは出来ませんので、実数にしたい場合は、換算を行う必要があります。
スクロールバーは、最小〜最大の範囲内で操作を行います。ですので、有限空間の移動は出来ますが、無限空間の移動には向いていません。例えば、CADでの空間を移動させる場合、無限空間を移動するというような場合には、イマイチ使えません。また、用紙範囲内と有限空間に限った場合でも、画面をかなり拡大した状態では、整数値範囲を簡単にオーバーしてしまい、スクロールが粗くなってスムーズに行かなくなるというようなことになるやもしれません。その辺り、使い方をある程度限定して利用しやすいように扱うのが良いと思われます。
<オブジェクトインスペクタ>を見た感じでは、変わった所はあまり無さそうです。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/08/23
2010/08/24
▼2010/08/25
シェアウェア
Script!World
データベース
|