こんには、おひさしぶりやましょうです。
安心、安全のVclなのですが、今後のことを考えるとどうしても、Fmx化しておきたい。
(マルチプラットホーム化しておきたいと思う人間としての欲に負けてFmx化した訳です。)
VCL
VCL時代にSPINEDIT(ちょっと拡大したから、文字とのバランスが変!)を使いたくなったのですが、
(C#でいうところのNumericUpDownってやつですね。)
FMX
なぜかUPとDOWNが左右に別れるんですよね!
これ人間工学的には非常にわかりづらいのです。
さてどうする。
Time editのスタイルシートを見てみます。
構造をみるとimeEditspin1spinBottomButton1とimeEditspin1spinTopButton1でup/downがコントロールされていることがわかりますね。
変更の方法
1.SpinBoxを配置!
2.別のdelphiを開いてTtimeを配置!
3spinboxのSpinBox1Style1にTimeEdit1Sytle1のGridrayout部をコピー
画像撮り忘れ略
4.spinboxのSpinBox1Style1のplusbutton とminusbuttonを削除
削除のため省略
5.spinboxのSpinBox1Style1にコピーしたGridrayout部のボタンのstylenameの名称を変更
upbutton=>plusbutton
downbutton=>minusbuttonに変更
理由: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を削除します。