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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
Delphi2010 Samples のコンポーネント(2) 2010/11/12
 
前回は [Samples]内のコンポーネントのゲージ(Gauge)・カラーグリッド(ColorGrid)について見てみました。今回は、スピンボタン(SpinButton)・スピンエディット(SpinEdit)について見てみます。
 
[Samples]内
TGaugeプログレスバーのような感じ?
TColorGrid色選択用のコンポーネントですね
TSpinButtonTUpDownの前身でしょうか
TSpinEditEditコンポーネントとの合体版
TDirectoryOutline[Win3.1]内のDirectoryListBoxと?
TCalendar[Win32]内のMonthCalendarと?
 
それではまず、スピンボタン(SpinButton)を配置し、位置と大きさを合わせます。配置して保存をすると uses節に「Spin」が追加されます。スピンボタンだけだと分からないのでラベルも配置しておきます。

上ボタンの絵は DownGlyphプロパティ、下ボタンの絵は UpGlyphプロパティでBMPファイルを指定することで変更できる様子です。まぁ滅多に変更する事はないと思いますが。アップダウン(UpDown)コンポーネントのような Minプロパティ・Maxプロパティ・Positionプロパティというものはないようです。プログラムで自分で行うという感じでしょうか。まずは変数を宣言。
・・・
type
 TForm1 = class(TForm)
 ・・・
 private
  { Private 宣言 }
  pos : integer ;
・・・
Form1の OnShowイベントのハンドラを作成します。
procedure TForm1.FormShow(Sender: TObject);
begin
 pos := 0 ;
 Label1.Caption := IntToStr(pos);
end;
スピンボタンの上ボタン(▲)をクリックした時のイベントは OnUpClickイベント、下ボタン(▼)をクリックした時のイベントは OnDownClickイベントですので、これらのイベントハンドラを記述します。
// 下ボタンをクリック
procedure TForm1.SpinButton1DownClick(Sender: TObject);
begin
 Dec(pos);
 Label1.Caption := IntToStr(pos);
end;
 
// 上ボタンをクリック
procedure TForm1.SpinButton1UpClick(Sender: TObject);
begin
 Inc(pos);
 Label1.Caption := IntToStr(pos);
end;
保存・コンパイル(再構築)・実行をして動作確認をします。

最大値・最小値の制御は行っていませんが、必要であればそのようにプログラミングすればよいでしょう。マウスボタンを押しっぱなしにすると連続クリック状態になるようです。
今回はラベルを使いましたが、エディットを使った場合、FocusControlプロパティにエディットを使えば、それにフォーカスを移動させることが出来ると思われます。
 
あとは<オブジェクトインスペクタ>を見れば、これまでのコンポーネントと同じ名前=同じ意味のものも多いですから、すぐに分かると思います。

 

 
 
次に、スピンエディット(SpinEdit)を見てみます。配置して位置・大きさを合わせます。配置して保存をすると uses節に「Spin」が追加されます。

とりあえずそのまま保存・コンパイル(再構築)・実行をしてみます。

上ボタン・下ボタンをクリックすると、エディット内容が変化します。マウスボタン押しっぱなしは可能です。エディット内容では数値入力以外は出来ません。最大値は MaxValueプロパティ(デフォルト「0」)、最小値は MinValueプロパティ(デフォルト「0」)で、これが同じ数値の場合には、最大値・最小値の入力制限は行われません。現在値は Valueプロパティ(デフォルト「0」)です。「エディット」といっても<オブジェクトインスペクタ>に Textプロパティは無いようです。親は TCustomEditですから実行時に強引に指定はできますが、整数以外を指定すると「整数ではない」という例外が発生しますので止めておいた方がいいでしょう。
増分は Incrementプロパティで指定出来ます。例えば「10」と指定すれば、0→10→20→30→・・・と変化します。
 
あとは<オブジェクトインスペクタ>を見れば、これまでのコンポーネントと同じ名前=同じ意味のものも多いですから、すぐに分かると思います。

 

 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
▲2010/11/11
 2010/11/12
▼2010/11/13
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.