Web・IT うんたらら

業務系とWeb系の狭間でIT業界を彷徨いながら備忘録と足跡を残していきます

FireMonkeyでTEditがキーボードで隠れないように位置をずらす

当然ながら、フォームの下の方にあるTEditをタップすると、出現したキーボードに入力先のTEditが隠れてしまいます。

手っ取り早い対策としてはこちら。
http://blogs.embarcadero.com/teamj/2012/03/09/2836/


ただし、Delphi XE4以降ではTScrollBoxからVScrollBarなどのプロパティがprivateになってしまっているので、該当箇所を以下のような形式に変更します。

ScrollBox1.ViewportPosition := PointF(ScrollBox1.ViewportPosition.X, ずらす縦位置);

ScrollByというメソッドもありますが、これは現在の位置に指定した値分マイナススクロールするという謎の仕様なため使わない方がよさそう。


より汎用的な対策としては以下のサンプルがおすすめです。
http://docwiki.embarcadero.com/CodeExamples/XE4/en/FMX.Mobile.ScrollableForm_Sample