仮想キーボードのサイズに応じて、Memoのサイズを変えるには?

解決


かんとく  2016-10-31 19:49:29  No: 48361

お世話になっております。
Windows10、DelphiXE8です。

新規作成→マルチデバイスアプリケーション
で、スマホ用アプリを作成しています。

FormにMemoを配置して、フォームと同じサイズに設定しています。
プログラム実行時に、Memoをタップして、文字入力しようとすると、画面下部に仮想キーボードが表示され、Memoの下部が隠れてしまい、その部分のMemoに内容が見られません。
FormにLayoutを配置して、AlignをClientにして、その上にMemoを配置する、とかを試してみましたが、うまくいきませんでした。

仮想キーボードのサイズに応じて、Memoのサイズを変えるには、どうしたらよいでしょうか?
よろしくお願いします。


山本隆  2016-11-02 06:09:39  No: 48362

仮想キーボードの高さはフォームのOnVirtualKeyboardShownイベントの引数Boundsで取得できます。
http://docwiki.embarcadero.com/Libraries/XE8/ja/FMX.Forms.TCommonCustomForm.OnVirtualKeyboardShown

仮想キーボードについては、サンプルプロジェクトのVirtualKeyboardDemoが参考になると思います。
Object Pascal\Multi-Device Samples\User Interface\KeyboardTypes\VirtualKeyboardDemo.dpr
サンプルプロジェクトは、[スタート|プログラム|Embarcadero RAD Studio 10.1 Berlin|サンプル]にインストールされます。


かんとく  2016-11-04 01:56:05  No: 48363

ありがとうございます。

フォームにOnVirtualKeyboardShownイベントというのがあるのを知りませんでした。
これを使えば、簡単でしたね。

Memo1のAlignプロパティをTopにして、
OnVirtualKeyboardShownイベントで、
memo1.Height:=Bounds.Top;
にしたら、思い通りのことができました。

ほんとに、ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加