En c++ builder Yo meto todos los controles dentro de un VertScrollBox y en los eventos onVirtualKeyboardShown y onVirtualKeyboardHidden del formulario ejecuto lo siguiente, puedes usar l IA para que te lo traslade a Delphi:
bool keyvisible;
TRectangle *rectkeyboard; //Este es un objeto visual invisible que lo pongo alineado al bottom para que siempre este en la parte baja de la pantalla
void __fastcall TFormGasto::FormVirtualKeyboardShown(TObject *Sender, bool KeyboardVisible,
const TRect &Bounds)
{
TRectF LFocusRect;
FKBBounds = TRectF(Bounds);
rectkeyboard->Height = FKBBounds.Height() - rtgfooter->Height;
rectkeyboard->Visible = true;
keyvisible = true;
try{
if (ActiveControl) {
LFocusRect = ActiveControl->AbsoluteRect;
LFocusRect.Offset(VertScrollBox1->ViewportPosition.X, VertScrollBox1->ViewportPosition.Y);
VertScrollBox1->ViewportPosition = PointF(VertScrollBox1->ViewportPosition.X, LFocusRect.top - VertScrollBox1->Height);
}
}__finally{
}
}
//---------------------------------------------------------------------------
void __fastcall TFormGasto::FormVirtualKeyboardHidden(TObject *Sender, bool KeyboardVisible,
const TRect &Bounds)
{
rectkeyboard->Visible = false;
keyvisible = false;
}
|