Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   teclado me ocupa la pantalla (https://www.clubdelphi.com/foros/showthread.php?t=95994)

giantonti1801 10-12-2022 03:51:52

teclado me ocupa la pantalla
 
hola amigo hoy con una nueva duda:

tengo una aplicacion de registro de usuario en android pero cuando sale el teclado en el telefono me ocupa unos campos donde voy a escribir no se como hacer para que el from se mueva y me deje ver lo que estoy escribiendo. estoy usando delphi 11

PepCat 10-12-2022 10:44:34

Hola,

Pueds intentar utilizar el evento "OnVirtualKeyboardShown", que se activa cuando el teclado virtual se muestra en la pantalla. Puedes utilizar este evento para redimensionar o reposicionar tu formulario y asegurarte de que no queda oculto por el teclado.

Aqui tienes un ejemplo para Delphi 11: https://docwiki.embarcadero.com/Code...bleForm_Sample

giantonti1801 10-12-2022 18:50:56

Cita:

Empezado por PepCat (Mensaje 549531)
Hola,

Pueds intentar utilizar el evento "OnVirtualKeyboardShown", que se activa cuando el teclado virtual se muestra en la pantalla. Puedes utilizar este evento para redimensionar o reposicionar tu formulario y asegurarte de que no queda oculto por el teclado.

Aqui tienes un ejemplo para Delphi 11: https://docwiki.embarcadero.com/Code...bleForm_Sample

Gracias lo implemente pero me da un error de
Código Delphi [-]
[DCC Error] Registred.pas(114): Incompatible types: 'string' and 'TStrings'
creo que tiene que ver con esto
Código Delphi [-]
uses UnitLoginMv, System.Math;

Código Delphi [-]
procedure TForm1.CalcContentBoundsProc(Sender: TObject;
           var ContentBounds: TRectF);
begin
   if FNeedOffset and (FKBBounds.Top > 0) then
  begin
    ContentBounds.Bottom := Max(ContentBounds.Bottom,
                            2 * ClientHeight - FKBBounds.Top);
  end;
end;

kurono 13-12-2022 05:01:38

1 Archivos Adjunto(s)
hola que tal existe una libreria llamada ControlMover que permite mover los controles por encima del teclado aqui esta el proyecto de ejemplo Archivo Adjunto 4052
comprobado en delphi Xe7

jhonalone 13-04-2023 18:20:26

Hola giantonti1801.
Si no has resuelto el problema, mira ésto a ver si te ayuda.
A mí me sirvió.
Saludos.

jhonalone 13-04-2023 21:20:25

Quizás este enlace también te pueda ayudar.
Un saludo.

ByNaR10 18-04-2023 21:05:04

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;
}


La franja horaria es GMT +2. Ahora son las 18:35:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi