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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [FMX]スピンボックス(SpinBox)2013/10/16
 
前頁で[Additional]内の「NumberBox」(数値入力ボックス)について書きましたので次は、同じく[Additional]内の「SpinBox」(スピンボックス)について見ていきます。
 
Delphi2010・VCLアプリケーションでは、表示状態や詳細は異なりますが、
  スピンエディット(SpinEdit)というコンポーネントがあります。
  【DelphiXE3[VCLアプリケーション]の記事はこちら】
 
 


(ヘルプより)
DecimalDigits
表示された数値の桁数。
Increment
このスピンボックスに対するインクリメントまたはデクリメントの単位として使用される、数字の値を示します。
具体的には、Increment 値が 5 のときに、プラス(インクリメント)のボタンが押されたとすると、表示されている値は 5 増加します。マイナス(デクリメント)ボタンを押すと、表示されている値は 5 減少します。
 
しかしながら、たとえば Value が 4、Increment が 5、そして Min が 0 の場合には、マイナス(デクリメント)ボタンを押したとき、値は 0 になります。同様に、たとえば Value が 8、Increment が 5、そして Max が 10 の場合には、プラス(インクリメント)ボタンを押したとき、値は 10 になります。
Max
編集コントロールによって表示される数値が表すことのできる、最大値を保持します。
Max は、数値のみ操作できる編集コントロールが表示できる、最大値を設定します。
Min
編集コントロールによって表示される数値が表すことのできる、最小値を保持します。
Min は、数値のみ操作できる編集コントロールが表示できる、最小値を設定します。
Text
この編集コントロールで表示されるテキストが保有されています。
Textプロパティを使用すると、この編集コントロールのテキストを読み込んだり、表示する新しい文字列を指定することができます。
Value
編集コントロールに表示されるデフォルト数値を保持します。
ValueType
編集コントロールによって表示される数値の型。
vtInteger:整数
vtFloat :実数
 
(ヘルプより)
TSpinBox は、表示された値を増減させるためのボタンの付いた、特殊な編集ボックスです。
 
TSpinBox コンポーネントは、特殊な TEdit の 1 つで、数値のみを表示し、値を増減するための 2 つのボタンが付いています。TSpinBox のこの上下ボタンを押すと、TSpinBox の値が増減します。
 
というわけで、まずは、下記のように配置を行います。
SpinBox1(上のほう)のValueTypeプロパティは「vtInteger」
SpinBox2(下のほう)のValueTypeプロパティは「vtFloat」としています。

SpinBox の 変更イベントハンドラを下記のように記述します。
procedure TForm1.SpinBox1Change(Sender: TObject);
begin
 Label3.Text := SpinBox1.Text ;
 Label4.Text := FloatToStr(SpinBox1.Value) ;
end;
 
procedure TForm1.SpinBox2Change(Sender: TObject);
begin
 Label3.Text := SpinBox2.Text ;
 Label4.Text := FloatToStr(SpinBox2.Value) ;
end;
Label3には Textプロパティの内容、Label4には Valueプロパティの内容を表示させます。なお、ValueTypeプロパティ内容に関わらず Valueプロパティは実数型ですので、IntToStr関数はエラーになります。
 
保存・コンパイル・実行してみます。

NumberBox1で数値入力を行なってみます


整数のほうでは、-、0〜9の半角文字のみ入力可能です
Textプロパティは入力中、そのままの内容が出ていますが
Valueプロパティはいきなり Min〜Max制約を受けています


フォーカスを移動すると、Textプロパティ内容も
Min〜Max制約を受けた内容にかわりました


実数のほうでは、-、.、0〜9の半角文字のみ入力可能です
Textプロパティは入力中、そのままの内容が出ていますが
Valueプロパティはいきなり Min〜Max制約を受けています


フォーカスを移動すると、Textプロパティ内容も
Min〜Max制約を受けた内容にかわりました
 
さて、DecimalDigitsプロパティは「表示された数値の桁数との事ですが、NumberBox同様、実数型での小数点以下桁数のことのようです。



Textプロパティのほうは四捨五入されて丸め処理されています。しかし、Valueプロパティのほうは丸め処理されていません。この辺りは、どちらを取るのか、注意したほうがいいでしょうね。Valueプロパティは Single型(単精度実数)ですので細かい精度に対応していませんから誤差がついています。より細かい精度の数値を扱う必要がある場合は、Textプロパティのほうから利用されるのが良いでしょうね。
 
スピンボックス(SpinBox)では、両端の三角ボタンをクリックすることで値を増減させる事が出来ますが、マウスホイール回転での増減も行う事は出来ます。但し、数値入力ボックス(NumberBox)にあるマウス左ボタンドラッグでの数値変更の機能はありません。
 
 
それでは各スタイルでの画面状態を確認しておきます。
なし
Air.Style
Amakrits.Style
AquaGraphite.style
Blend.Style
Dark.Style
GoldenGraphite.Style
Light.Style
MetropolisUIBlack.Style
MetropolisUIBlue.Style
MetropolisUIDark.Style
MetropolisUIGreen.Style
RubyGraphite.style
Transparent.Style
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/10/16
 2013/10/16
▼2013/10/17
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.