LoginSignup
7
3

More than 3 years have passed since last update.

Delphi FmxでVcl風のSpin edit を作る方法

Last updated at Posted at 2019-07-25

こんには、おひさしぶりやましょうです。

安心、安全のVclなのですが、今後のことを考えるとどうしても、Fmx化しておきたい。
(マルチプラットホーム化しておきたいと思う人間としての欲に負けてFmx化した訳です。)

VCL

VCL時代にSPINEDIT(ちょっと拡大したから、文字とのバランスが変!)を使いたくなったのですが、
(C#でいうところのNumericUpDownってやつですね。)
SnapCrab_NoName_2019-7-23_13-1-18_No-00.png

FMX

SnapCrab_NoName_2019-7-23_13-3-50_No-00.png
なぜかUPとDOWNが左右に別れるんですよね!
これ人間工学的には非常にわかりづらいのです。

ちなみにTIME EDITだとすべて右にくるのです。
SnapCrab_NoName_2019-7-23_13-6-46_No-00.png

さてどうする。

Time editのスタイルシートを見てみます。
SnapCrab_NoName_2019-7-23_13-9-33_No-00.png
構造をみるとimeEditspin1spinBottomButton1とimeEditspin1spinTopButton1でup/downがコントロールされていることがわかりますね。

変更の方法

1.SpinBoxを配置!

SnapCrab_NoName_2019-7-25_12-38-27_No-00.png
さらに右クリックして、カスタムスタイルの編集
SnapCrab_Project6 - RAD Studio 102 - Unit4_2019-7-25_12-42-27_No-00.png

2.別のdelphiを開いてTtimeを配置!

さらに右クリックして、カスタムスタイルの編集とする。
SnapCrab_Project5 - RAD Studio 102 - Unit3_2019-7-25_12-43-21_No-00.png

3spinboxのSpinBox1Style1にTimeEdit1Sytle1のGridrayout部をコピー

画像撮り忘れ略

4.spinboxのSpinBox1Style1のplusbutton とminusbuttonを削除

削除のため省略

5.spinboxのSpinBox1Style1にコピーしたGridrayout部のボタンのstylenameの名称を変更

upbutton=>plusbutton
downbutton=>minusbuttonに変更
SnapCrab_NoName_2019-7-25_12-50-31_No-00.png
理由:procedure TStyledSpinBox.ApplyStyleでこの名称で判定しているから

6.spinboxのSpinBox1Style1にTimeEdit1Sytleのボタンイメージをコピー

imeEdit1Style1spintopbutton1とimeEdit1Style1spinbottombutton1を最上位にコピーし
SytylenameをSpinBox1Style1Spintopbutton1SpinBox1Style1Spinbottombutton1に変更
そして、各visibleをfalseとする。

7.plusbutton とminusbuttonのStylelookup先を変更

plusbutton  :SpinBox1Style1Spintopbutton1
minusbutton :SpinBox1Style1Spinbottombutton1

8.SpinBox1Style1spinrightbutton1/SpinBox1Style1spinleftbutton1を削除

SpinBox1Style1spinrightbutton1/SpinBox1Style1spinleftbutton1を削除します。
SnapCrab_NoName_2019-7-25_12-56-44_No-00.png

9.完成

SnapCrab_NoName_2019-7-25_13-4-3_No-00.png

10.動作確認&感想

SnapCrab_NoName_2019-7-25_13-21-47_No-00.png
コードを一切書くことなくできたのですが、
結構面倒です。
だれか?簡単なやり方教えてください。

7
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3