|
Delphi2010 プログレスバー(ProgressBar) 2010/10/06 |
前回は[Win32]内の「TrackBar」(トラックバー)について見ましたので、今回は同じく[Win32]内の「ProgressBar」(プログレスバー)について見てみます。プログレスバーは Delphi6 にもあります。
取り合えず配置してみます。1つ目ですので Nameプロパティは「ProgressBar1」となります。
プログレスバーは、何らかの処理を行う際に長い時間が掛かるような場合、画面が止まったようになると、動いているのか動いていないのか、ひょっとしたらフリーズ状態になっているのか分からない、もしかすると利用者にアプリケーションを強制終了されてしまうかもしれない、というのを避けるため、その処理の進捗状況を表示するためのものです。
プログレスバーは、状況表示するためのコンポーネントで、マウスやキーボードでの操作というのは通常ありません。但し、OnMouse〜のイベントはあるようです。
プログレスバーの現在の位置は、Positionプロパティで取得・指定する事が出来ます。このプロパティ値の最小値は Minプロパティ、最大値は Maxプロパティで指定します。デフォルト値はそれぞれ、Positionプロパティ=「0」、Minプロパティ=「0」、Maxプロパティ=「100」となっています。数値は整数型(Integer)ですので実数値を扱いたい場合は掛け率を決めるという事になります。Min値<Max値となり、Position値はこの範囲内の値となります。
|
| Position値「0」 |
↓ |
|
|
|
| Position値「30」 |
↓ |
|
|
|
| Position値「60」 |
↓ |
|
|
|
| Position値「100」 |
それでは、<オブジェクトインスペクタ>を見ていきます。
BackgroundColorプロパティは、プログレスバーの背景色の指定・取得を行い、BarColorプロパティは、プログレスバーのバー部分の色の指定・取得を行い、双方ともデフォルトは「clDefault」となっていますが、Windows7のAero有効状態のためか、色を指定しても全く変わりありません。
MarqueeIntervalプロパティは、バーのアニメーション表示の更新時間(ミリ秒)を指定します、デフォルト値は「10」です(0.01秒)、とあります。このプロパティは、Styleプロパティが「pbstMarquee」の場合に有効のようです(デフォルトの「pbstNormal」の場合は変わり無しのようです)。
Orientationプロパティは、プログレスバーの向きを示します。「pbHorizontal」は水平型、「pbVertical」は垂直型、ですが、垂直型にするとプログレスバーが90度回転するのではなく、プログラム作成者が 幅 Widthプロパティ・高さ Heightプロパティで垂直型に綺麗に見えるよう整える必要があります。
Smoothプロパティは、ヘルプによると、「プログレスバーが滑らかなバーであるか(True),断片が連続するバーであるか(False)を指定します。」のようにありますが、これも Windows7のAero有効状態のためなのか正直違いが全く分かりません。
SmoothReverseプロパティは、ヘルプによると、
進捗バーの進捗の後退を表示する機能を設定および取得します。 |
と記載されていますが、正直なところ、文章の意味が分かりません。例えば
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer ;
begin
for i:=0 to 100 do begin
ProgressBar1.Position := i ;
end;
end; |
のようにボタンを押したらプログレスバーを表示させるようにした場合、SmoothReverseプロパティがFalseの場合は、ボタンを押すたびに、0から100へ変化するように見えますが、Trueにすると、1度目は0から100へ変化するように見えますが2度目以降は変化が見えなくなります。つまり、1度プログレスバーを表示させたら、逆方向への変化をさせるようにしても反映されない、というような事のようです。扱いがややこしい感じがしますので通常はデフォルトの False のまま利用したほうが良さそうです。
Stateプロパティは、プログレスバーの状態を示します。
pbsError | |
pbsNormal
(デフォルト) | |
pbsPaused | |
Styleプロパティは、プログレスバーでの進捗をどのように示すのかを指定するもので、デフォルトの「pbstNormal」の場合は、PositionプロパティをMin値からMax値へ変化させることで0%→100%の表示をさせるようにします。「pbstMarquee」にすると、バー全体で進捗状況を示す、とありますがこの場合、正直なところ、動いているな、というのは分かりますが、どのくらいまで進んでいるのか?というのはいまいちよく分からない感じがします。
このバーの部分の移動速度は、MarqueeIntervalプロパティで決まります。
そのほか<オブジェクトプロパティ>をざっと見た限りでは、特に変わった所もなく、特に記述することも無さそうに思われます。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/10/05
2010/10/06
▼2010/10/07
シェアウェア
Script!World
データベース
|