Help us understand the problem. What is going on with this article?

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

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

安心、安全の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
コードを一切書くことなくできたのですが、
結構面倒です。
だれか?簡単なやり方教えてください。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away