とりあえずのメモ書きです。
Surface Go で利用するアプリをDelphiでプロトタイプ的に作成していたら、タブレットモードのときに強制的にタッチキーボードを表示させたくなったのでしらべてみた。
ソフトウェアキーボードは2種類ある
昔ながらのオンスクリーンキーボードは osk.exe で起動します。
しかしWindows10 のタブレットモードではosk.exeではなくTabTip.exeが動作しているようです。
TEdit などの imeMode はosk.exeとtabtip.exeでは挙動が違うようだ
osk.exeの場合はimeModeによる制御は物理キーボードと同じように効くようだ。
しかしtabtip.exeの場合はimeDisableとそれ以外しか受け付けないように見える。
ソフトウェアキーボードを表示させたくなったらどうすればよいのか?
アプリケーションフォームへの onFocus でosk.exe と tabtip.exe のどちらも起動していないときに、使わせたいソフトウェアキーボードを起動すればよさそう。
WPFでの実装例がここにあるので、これを参考にしつつ実装すればよさげ。