サンプルコンポーネントである TSpinButton / TSpinEdit は便利なのですが、ちょっと困ったこともあります。
- コンポーネントのプロパティエディタ / コンポーネントエディタに使うと VclSmp に依存してしまう。
- 見た目が Windows 標準とは異なる。
- 右寄せができない (TSpinEdit)。
上段が "TSpinEdit" / "TSpinButton" で、下段が "TEdit + TUpDown" / "TUpDown" です。
Delphi インストール時にサンプルコンポーネントをインストールしないと (TSpinButton / TSpinEdit を利用している) コンポーネントがインストールできなくなってしまいます…まぁ、初期状態ではインストールされますが。それでも依存するパッケージは少ない方がいいですよね。
見た目が Windows 標準とは異なるのはちょっとアレです。
VCL スタイルを適用すればマシになります。
右寄せは…できん事はないです。
var wh: Integer; begin wh := GetWindowLong(SpinEdit1.Handle, GWL_STYLE); SetWindowLong(SpinEdit1.Handle, GWL_STYLE, (wh and $FFFFFFFC) or ES_RIGHT); SpinEdit1.Invalidate; end;
総合的に考えると "メンドイ" 事に変わりはありません。個人的には TEdit + TUpDown で置き換えた方がいいような気がします。TUpDown の使い方は AFsoft さんとこの説明が詳しいです。
[Delphi2010 アップダウン(UpDown) 2010/10/07 (AFsoft)]
http://afsoft.jp/program/p11_059.html
エディタ部は TEdit なので、NumbersOnly を True にして、Alignment を taRightJustify にすれば数値入力しかできず、右寄せ表示が可能となります。「いやいや、コンポーネント 2 つ使うのはメンドイよ」 というモノグサな方には岡野さん作の TWinSpinEdit をオススメします。
[TWinSpinEdit (Vector)]
http://www.vector.co.jp/soft/win95/prog/se279521.html
[TWinSpinEdit (Bitbucket)]
https://bitbucket.org/tokibito/winspinedit/
[[Delphi]SpinEditとWinSpinEditの違い (偏った言語信者の垂れ流し)]
http://d.hatena.ne.jp/nullpobug/20081115/1226735577
|