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)
-   -   Edit visible con teclado virtual. (https://www.clubdelphi.com/foros/showthread.php?t=93928)

look 11-05-2019 17:08:54

Edit visible con teclado virtual.
 
Hola amigos, econtre esto:
https://forums.embarcadero.com/threa...00928&tstart=0

este codigo aparentemene hace lo que quiero, mantener el edit visible :

Código Delphi [-]
// Include System.Messaging in the uses clause
 
type
  TForm1 = class(TForm)
  private
    procedure VirtualKeyboardRectChangeMessageHandler(const Sender: TObject; const M: TMessage);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;
 
...
 
uses
  DW.Messaging, DW.VirtualKeyboard.Helpers;
 
constructor TForm1.Create(AOwner: TComponent);
begin
  inherited;
  TMessageManager.DefaultManager.SubscribeToMessage(TVirtualKeyboardRectChangeMessage,
VirtualKeyboardRectChangeMessageHandler);
end;
 
destructor TForm1.Destroy;
begin
  TMessageManager.DefaultManager.Unsubscribe(TVirtualKeyboardRectChangeMessage,
VirtualKeyboardRectChangeMessageHandler);
  inherited;
end;
 
procedure TForm1.VirtualKeyboardRectChangeMessageHandler(const Sender: TObject; const M: TMessage);
var
  LRect: TRect;
begin
  LRect := TVirtualKeyboardRectChangeMessage(M).Value;
  // LRect now contains the actual rect of the VK
end;

aqui el link a git : https://github.com/DelphiWorlds/KastriFree

he segido todos los pasos, agregado las units necesarias, pero no funciona, no veo ningun efecto, ¿Alguien podria hecharme una mano?

por cierto,hago el build con delphi berlin

Ñuño Martínez 13-05-2019 14:16:25

No entiendo muy bien cómo funciona Android, porque en teoría el teclado debería aparecer cuando el usuario marca un campo de entrada (TEdit o lo que sea) sin tener que programar nada, ¿o no? Porque si no, vaya mi€rd@ de sistema operativo...

Siento no dar solución, pero es que según aprendo más cosas de Android, me gusta menos.

roman 13-05-2019 14:38:38

Cita:

Empezado por Ñuño Martínez (Mensaje 531979)
porque en teoría el teclado debería aparecer cuando el usuario marca un campo de entrada

En teoría y en la práctica. Pero no sé qué es lo que desea el compañero.

pd: ¿Qué es lo que no te gusta de Android? ¿Prefieres iOS?

// Saludos

look 13-05-2019 15:33:05

Cita:

Empezado por roman (Mensaje 531981)
En teoría y en la práctica. Pero no sé qué es lo que desea el compañero.

pd: ¿Qué es lo que no te gusta de Android? ¿Prefieres iOS?

// Saludos

hola, uno de los problemas en desarrollos en android es que al crear forms, ... digamos tienes varios edits y uno de los edits esta en el pie del form, al dar click en el se abre el teclado virtual de android, entonces no puedes ver lo que estas escribiendo en el porque el teclado lo tapa, hay varias soluciones a esto, pero , el ejuemplo que he puesto, "supuestamente" pone el edit en una rect en la parte superior de del teclado de android, de ese modo , puedes ver en todo momento lo que estas escribiendo.
El problema que tengo con el ejemplo, es que no se ve tal efecto y no tengo idea porque, he visto los pas y demas y hace referencia a los compiladores de berlin , tokio y creo que rio, pero no se donde pueda estar el problema.

roman 13-05-2019 17:22:46

Cita:

Empezado por look (Mensaje 531985)
hola, uno de los problemas en desarrollos en android es que al crear forms, ... digamos tienes varios edits y uno de los edits esta en el pie del form, al dar click en el se abre el teclado virtual de android, entonces no puedes ver lo que estas escribiendo en el porque el teclado lo tapa

No sé si ése sea un problema con Delphi, pero en todo caso no lo es en general con Android. Por defecto, al abrir el teclado, el EditText se desplaza solo para ser visible. Más bien lo que puede pasar es que otro contenido (por ejemplo, otros EditText) más arriba queden fuera de la pantalla cuando el que tiene el foco se desplaza. Entonces, si tienes que ver esos datos mientras editas, tienes que meterlo en un ScrollView para poder desplazarlos.

// Saludos

look 13-05-2019 17:52:01

Cita:

Empezado por roman (Mensaje 531988)
No sé si ése sea un problema con Delphi, pero en todo caso no lo es en general con Android. Por defecto, al abrir el teclado, el EditText se desplaza solo para ser visible. Más bien lo que puede pasar es que otro contenido (por ejemplo, otros EditText) más arriba queden fuera de la pantalla cuando el que tiene el foco se desplaza. Entonces, si tienes que ver esos datos mientras editas, tienes que meterlo en un ScrollView para poder desplazarlos.

// Saludos

ScrollView ?, no veo ningun componente con ese nombre

roman 13-05-2019 18:15:06

Es que lo que te digo es con Android puro, o sea java. Y lo que quiero dar a entender es que por defecto Android hará el desplazamiento del EditText para que sea visible. No hay que hacer ningún truco especial.

En cuanto al scroll me refiero a esto:



Nota que cuando se abre el teclado, el input se reacomoda y el resto se puede desplazar sin problema.

Con Java simplemente estoy poniendo un ConstraintLayout (por defecto), dentro un ScrollView, dentro otro ConstraintLayout y dentro los EditText. Nada más

// Saludos

look 13-05-2019 18:47:08

Cita:

Empezado por roman (Mensaje 531990)
Es que lo que te digo es con Android puro, o sea java. Y lo que quiero dar a entender es que por defecto Android hará el desplazamiento del EditText para que sea visible. No hay que hacer ningún truco especial.

En cuanto al scroll me refiero a esto:



Nota que cuando se abre el teclado, el input se reacomoda y el resto se puede desplazar sin problema.

Con Java simplemente estoy poniendo un ConstraintLayout (por defecto), dentro un ScrollView, dentro otro ConstraintLayout y dentro los EditText. Nada más

// Saludos

Hola amigo, que api de android utilizas en delphi?, podrias proporcionarme ese ejemplo que muestras?, es delphi berlin?

Ñuño Martínez 13-05-2019 20:45:18

Cita:

Empezado por roman (Mensaje 531981)
pd: ¿Qué es lo que no te gusta de Android? ¿Prefieres iOS?
// Saludos

No es que prefiera iOS (nunca lo he usado) pero es que leo cosas de Android y me da la sensación de que es absurdamente complejo en cualquier cosa. No sólo cuando quieres usar algo no soportado oficialmente (por ejemplo, LAMW para Lazarus), sino el propio SDK, que desde que ya terminas el programa hasta que lo publicas hay que hacer una ristra de cosas que no entiendo para qué sirven (que si firmas, que si registros...).

No sé, será que me hago viejo o qué sé yo...

look 14-05-2019 18:39:08

Cita:

Empezado por roman (Mensaje 531990)
Es que lo que te digo es con Android puro, o sea java. Y lo que quiero dar a entender es que por defecto Android hará el desplazamiento del EditText para que sea visible. No hay que hacer ningún truco especial.

En cuanto al scroll me refiero a esto:



Nota que cuando se abre el teclado, el input se reacomoda y el resto se puede desplazar sin problema.

Con Java simplemente estoy poniendo un ConstraintLayout (por defecto), dentro un ScrollView, dentro otro ConstraintLayout y dentro los EditText. Nada más

// Saludos

esto es de android studio?

roman 15-05-2019 15:21:38

Cita:

Empezado por look (Mensaje 532008)
esto es de android studio?

Así es. Te digo que yo no sé cómo sea con Delphi, pero el comportamiento por defecto es el que se muestra en la imagen. Creo que e Target era Lollipop (Api 21)

// Saludos

jhonalone 24-05-2019 14:10:00

Hola, Look.

Este código es un poco antiguo, pero con alguna modificación del código fuente, se podría mejorar.

Un saludo

look 24-05-2019 17:35:07

Cita:

Empezado por jhonalone (Mensaje 532161)
Hola, Look.

Este código es un poco antiguo, pero con alguna modificación del código fuente, se podría mejorar.

Un saludo



Gracias amigo!
Saludos!


La franja horaria es GMT +2. Ahora son las 10:31:55.

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