フォーラム


ゲスト  

ようこそ ゲスト さん。このフォーラムに投稿するには 登録が必要です。

ページ: [1]
トピック: TSpinButton / TSpinEdit
DEKO
管理者
投稿数: 2690
TSpinButton / TSpinEdit
on: 2013/06/14 23:50 Fri

サンプルコンポーネントである 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

DEKO
管理者
投稿数: 2690
Re: TSpinButton / TSpinEdit
on: 2014/08/07 16:55 Thu

TSpinEdit を TEdit + TUpDown に置き換えた場合の対応表を書いておきます。

TSpinEdit.MaxValue -> TUpDown.Max
TSpinEdit.MinValue -> TUpDown.Min
TSpinEdit.Value -> TUpDown.Position
TSpinEdit.Increment -> TUpDown.Increment
TSpinEdit.EditorEnabled-> TEdit.ReadOnly (論理値は逆になる)
TSpinEdit.OnChange -> TEdit.OnChange (TEdit 側が入力可能な場合) / TUpDown.OnClick

 
TEdit と TUpDown の紐付けは TUpDown.Associate で行います。紐付けを行うと、TUpDown の位置は TEdit の右端になります。

ページ: [1]
WP Forum Server by ForumPress | LucidCrew
バージョン: 1.7.5 ; ページロード: 0.04 sec.