Over on the QDAC blog there is a solution for keeping controls visible when the virtual keyboard is shown on Delphi XE8 Firemonkey. The code is not perfect and it has only been tested on Android and not IOS but it is an automated solution as you simply add the unit to the uses clause and it works. There are multiple other solutions which we’ve talked about before for Delphi XE5 but they require implementing code in each form. This new unit for Delphi XE8 implements three different steps which are: a subscription to TVKStateChangeMessage, a timer every 100ms to check for a state change of the keyboard, and calling an event if the keyboard state changes. The original blog post is in Chinese so you’ll need to use a translator. This solution should also work with Appmethod.
I have update this unit in 2016.1.8.Please update the mirror.The new release fixed a bug in special action.
The new version for users out of china,I just share it in http://sourceforge.net/projects/qdac3/files/Misc/vkbdhelper.pas/download
I see there may be later versions. Will you share them?
But I see the following issue with all the solutions. On a clean launch of an app, if the very first TEdit entered (tapped) needs a scroll then no scrolling takes place. Closing the VKbd then entering the TEdit again does cause a scroll.
If the first TEdit entered does not need a scroll then the first one needing a scroll afterwards does scroll.
So it seems that some initialization is needed before the first invocation of the VKbd (?)
The last version is update in 2016.7.29 and fixed all known errors.Now it is a part of QDAC 3.0,so if you checkout from svn://www.qdac.cc/QDAC3 , you will found it in the Source directory.
Changes from 2016.1.8:
2016.7.29
========
* Fixed:Access volation when you set control return action to Next and the control is the last one
* Fixed:Segment fatal in special devices because scrollbox adjust render
* Optimize the speed when add the adjust layout
2016.7.19
========
* Fixed:Adjust is overload in specail scene
* Fixed:Form fill style is working correct
2016.7.18
========
* Fixed:When FLastControl is removed ,FLastControl not set to nil
2016.7.7
========
* Add Fix for system iOS virtualkeyboard error,detail see:http://blog.qdac.cc/?p=4003 (Chinese)
2016.6.8
========
* Add support for automic change focus control when you set edit ReturnKeyType to Next(You can disable it by set EnableReturnKeyHook to false
2016.6.1
=========
* rewrite the adjust code for speed and other bug fix
* rename to qdac_fmx_vkhelper
2016.4.15
+ Add support for iOS
2016.4.14
+ Add support for TMemo
2016.1.16
* Remove the timer for fast response(Use Idle message replace)
* Fix a bug when a focus control reshow virtualkeyboard(Thanks 似水流年)
* Fix a bug when use hide virtual keyboard by use hardware back key(Thanks 阿笨猫)
* Fix a FMX bug :after virtual keyboard shown,can’t use hardware back key to exit app
Thank you.
Excellent, fixes my report about initialization.
All I have changed is to add is a small margin above the VKbd so that text descenders are not clipped.
For example, ‘xyz’ looked like ‘xvz’.
problem when screen rotation , the Alcllient scrollbox and Layout get wring position , also if its start from landscape Position the rotation messed the design up
This is working for me on iOS.
http://docwiki.embarcadero.com/CodeExamples/Berlin/en/FMX.ScrollableForm_Sample
Android/IOS
https://github.com/rzaripov1990/vkbdhelper
its buggy