AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
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.