Delphi2010 トラックバー(TrackBar)
2010/10/05
前回は[Win32]内の「RichEdit」(リッチエディット)について見ましたので、今回は同じく[Win32]内の「TrackBar」(トラックバー)について見てみます。
トラックバーは Delphi6 にもあります。
最初に、「テスト14」(フォルダ「014」)として新規作成しておきます。
取り合えず配置してみます。1つ目ですので
Name
プロパティは「TrackBar1」となります。
トラックバーは、スライドするゲージのような外観を持つインターフェイスを提供しており、スクロールバーと同様、スライダをマウスでドラッグすることによって位置を変更する事が出来ます。キーボードを使う場合は、矢印キー、又は、[PageUp]・[PageDown]キーを利用します。
トラックバーのスライダの現在の位置は、
Position
プロパティで取得・指定する事が出来ます。このプロパティ値の最小値は
Min
プロパティ、最大値は
Max
プロパティで指定します。デフォルト値はそれぞれ、
Position
プロパティ=「0」、
Min
プロパティ=「0」、
Max
プロパティ=「10」となっています。数値は整数型(Integer)ですので実数値を扱いたい場合は掛け率を決めるという事になります。
Min
値<
Max
値となり、
Position
値はこの範囲内の値となります。
それでは、この
Max
値を「100」にして、ラベルを追加し、トラックバーを操作したらそこにトラックバーの
Position
値を表示するようにしてみます。スライダを変更すると
OnChange
イベントが発生しますので、そのイベントハンドラを記述します。
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
Label1.Caption := IntToStr(TrackBar1.Position);
end;
保存・コンパイル(再構築)・実行すると、下記のようになります。
↓
スライダは矢印キー(←→↑↓)で動かすことが出来ます。1 ずつ増減します。これを例えば 5 ずつ増減させたい場合には、
LineSize
プロパティの値を「5」にします。また、スライダは[PageUp][PageDown]キーで動かすことも出来ます。2 ずつ増減します。これを例えば 10 ずつ増減させたい場合には、
PageSize
プロパティの値を「10」にします。
Max
値が10のときは、目盛は見易かったですが、
Max
値を100にすると目盛は詰まってしまって見難くなります。こういった場合は、
Frequency
プロパティによって間隔値を指定します。デフォルト値は「1」となっていますがこれを「5」にすると多少見易くなります。目盛はスライダ変更の際の目安にもなりますので分かりやすい値にしておくのが良いと思われます。
上記(デフォルト状態)では水平型のトラックバーでしたが、垂直型にする事も出来ます。
Orientation
プロパティを使います。デフォルトは「trHorizontal」(水平型)となっていますが、これを「trVertical」(垂直型)にすればOKです。
ThumbLength
プロパティは、スライダの長さ(水平型の場合はスライダの高さ)を指定します。デフォルトは「20」ですがこれを「30」にすると下記のようになります。
TickMarks
プロパティは、目盛を付ける場所を指定します。
tmBoth
tmBottomRight
(デフォルト)
tmTopLeft
PositionToolTip
プロパティは、トラックバー操作時、ツールチップを表示させる事が出来ます。デフォルトは「ptNone」となっていて表示されない状態ですが、水平型の場合には「ptLeft」(上側)又は「ptRight」(下側)を、垂直型の場合には「ptBottom」(右側)又は「ptTop」(左側)を指定する事で表示させる事が出来ます。
「ptLeft」を指定した場合
SelStart
プロパティと
SelEnd
プロパティは、選択範囲を表示する事が出来るようになります。デフォルト値は双方「0」で選択範囲無しの状態ですが、例えば、各々「30」「70」とすると下記のように表示されます。
この選択範囲は、マウスやキーボードを操作すれば表示されるようになる、という類のものではないらしく、デザイン時やプログラム実行時に値を指定する事で表示させるという感じのようです。なお、ヘルプには
SelStart は,Position に等しいかそれより小さくなくてはなりません。SelStart を Position より大きな値に設定した場合,Position が SelStart になります。SelStart は SelEnd に等しいかそれより小さくなくてはなりません。
SelEnd は,Position に等しいかそれより大きくなくてはなりません。SelEnd を Position より小さい値に設定すると,Position は SelEnd に変わります。SelEnd は,SelStart に等しいかそれより大きくなくてはなりません。SelEnd が SelStart と等しい場合,選択範囲はなくなり,Position の値は SelStart および SelEnd と等しくなります。
とありますが、上記の
OnChange
イベントハンドラによる
Position
値の表示への影響は無いようですし、プログラムコードで
SelStart
プロパティや
SelEnd
プロパティの値を変更するようにした場合も
Position
値による影響は無さそうです。
ですので、トラックバーでの値指定を行う場合の、最小値・最大値とはまた別に、例えば安全値の最小・最大を明示したいような場合に利用できるかもしれません。
SliderVisible
プロパティは、デフォルトは「True」ですが、「False」にするとスライダを非表示にする事が出来ます。が、非表示にすると操作出来なくなりますので普通は利用しないと思われます。操作できないようにするのなら通常は
Enabled
プロパティを「False」にしてグレー表示にしてしまう事でしょう。
そのほか<オブジェクトプロパティ>をざっと見た限りでは、特に変わった所もなく、特に記述することも無さそうに思われます。
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>
Delphi入門編
>
Delphi2010
▲2010/10/04
2010/10/05
▼2010/10/06
シェアウェア
Script!World
データベース
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.