Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-04-2017
jhonalone jhonalone is offline
Miembro
 
Registrado: Sep 2007
Ubicación: Madrid
Posts: 398
Poder: 11
jhonalone Va por buen camino
Problema con TMemo en Android 6.0.1

Hola compañeros.
Debo ser el pupas del Universo. Todos los problemas me los encuentro.
Bien tengo una aplicación que utiliza varios TMemo's.
Ha funcionado correctamente hasta que he actualizado mi dispositivo Samsung Galaxy J5 al nuevo firmware.

El dispositivo llevaba avisándome hace ya unas semanas de que lo actualizara. (¡No me gusta mucho...!)

Por fin he caído en la trampa y lo he actualizado. (¡En muy mala hora!)

Cuando he intentado usar el dicho programa, he observado el siguiente inconveniente:

Cuando estoy escribiendo en el TMemo, (con el teclado predictivo activado), ocurre lo siguiente:

Imaginemos que quiero escribir "Prueba", pero me equivoco y escribo "Pruebo", escribo a continuación el correspondiente "espacio".
Como me doy cuenta de que me he equivocado, borro el "espacio" y letra "o".
Bueno ahora, para corregir escribo la letra "a" (Para que ponga "Prueba")
Cuál no es mi sorpresa, cuando observo que en el memo queda escrito lo siguiente: "PruebaPrueba"

Alucino...

Pienso... "quizás es que en el programa, he configurado de alguna forma extraña el Memo". Pues NO.

He generado un proyecto simplísimo con un botón que aborta el programa y un Memo en el que no he variado nada y el problema es el mismo.

No he subido el programa de prueba, porque es tan SIMPLÍSIMO, no merece la pena. Si es necesario lo puedo subir.

No sé si alguien ha tenido el mismo problema o si es otra "limitación" de nuestro querido Delphi XE

Agradecería algún comentario o solución al respecto, pues me niego a pensar que soy yo el único que ha observado este problema.

¡Ah...! He probado otros programas, p.e. "WhatsApp" y no ocurre el problema que os comento. Tampoco en otro dispositivo Samsung más antiguo con la versión 4.1.2

Saludos a todos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)

Última edición por jhonalone fecha: 05-04-2017 a las 20:28:07.
Responder Con Cita
  #2  
Antiguo 05-04-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
 
Registrado: Aug 2013
Ubicación: Argentina
Posts: 1.840
Poder: 9
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
En el teléfono actualizaste la versión de Android? De que versión y cual es l nueva? Actualizaste el SDK de Android? Que versión de Delphi? La XE no compila para Android
Responder Con Cita
  #3  
Antiguo 05-04-2017
jhonalone jhonalone is offline
Miembro
 
Registrado: Sep 2007
Ubicación: Madrid
Posts: 398
Poder: 11
jhonalone Va por buen camino
Gracias por interés Agustín.
El teléfono ya tenía la versión actualizada a la 6. No sé si a la 6.0.0 o a la 6.0.1.
El programa estaba funcionando anteriormente en varias versiones y correctamente.
No he compilado de nuevo el programa ni he actualizado el SDK
La versión de Delphi es la Seattle.
La XE no es la Seattle?
Todo funciona correctamente excepto los Memos, que dan el problema que he explicado. En las demás versiones no he detectado el problema.
Saludos, Agustín.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #4  
Antiguo 06-04-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
 
Registrado: Aug 2013
Ubicación: Argentina
Posts: 1.840
Poder: 9
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Yo probaria actualizar el SDK

Delphi XE llego hasta XE 8 (con uno o dos updates, no recuerdo ahora), a partir de ahi se llama Delphi 10 <Nombre Ciudad>
Responder Con Cita
  #5  
Antiguo 06-04-2017
jhonalone jhonalone is offline
Miembro
 
Registrado: Sep 2007
Ubicación: Madrid
Posts: 398
Poder: 11
jhonalone Va por buen camino
Hola Agustín.
Tienes razón con lo de la versión. Quise decir DX donde dije XE.
A ver si soy capaz de actualizar el SDK, vuelvo a compilar el programa y te cuento. Pero vamos, que tengo muy pocas esperanzas de que se resuelva el problema.
Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #6  
Antiguo 06-04-2017
jhonalone jhonalone is offline
Miembro
 
Registrado: Sep 2007
Ubicación: Madrid
Posts: 398
Poder: 11
jhonalone Va por buen camino
Hola, de nuevo. Agustín.
Estoy informándome cómo actualizar el SDK y me encuentro en la ayuda de Delphi lo siguiente:

Cita:
Go Up to SDK Manager


Tools > Options > Environment Options > SDK Manager > Add

Project Manager | right-click a platform in Target Platforms | Properties | Add New (SDK (Software Development Kit))


The Add a New SDK dialog box lets you add a new SDK to the SDK Manager.

For either Mac OS X or iOS applications, adding an SDK is required.
For more information, see Adding a Mac OS X or iOS SDK.
For Android applications, you do not need to add an SDK if you are using the default Android SDK and NDK as installed during product installation.
For more information, see Installing the Android Development Tools.
For troubleshooting information, see SDK Manager.

Entiendo que PARA LA PLATAFORMA ANDROID, NO ES NECESARIO ACTUALIZAR.

Miedo me da actualizarla y descomponer el sistema de alguna manera.
Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #7  
Antiguo 06-04-2017
jhonalone jhonalone is offline
Miembro
 
Registrado: Sep 2007
Ubicación: Madrid
Posts: 398
Poder: 11
jhonalone Va por buen camino
Otra vez aquí.
Bueno, a pesar de mis reticencias, he intentado actualizar el SDK. Este es el resultado:


Bien. He intentado subir el pantallazo, pero se queda tan pequeño, que no se vería bien.
El mensaje de DX es: " A SDK Android SDK 24.3.3 32bit already exists."
Conste que yo seleccioné la opción "Add New" (No elegí ninguna versión específica)

Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #8  
Antiguo 07-04-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
 
Registrado: Aug 2013
Ubicación: Argentina
Posts: 1.840
Poder: 9
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Eso lo que haces es configurar el IDE para que utilice el SDK, donde estan las rutas y los programas que necesita, etc

Con actualizar el SDK me refiero a esto, si bien la imagen es algo vieja (de XE5), deberias poder guiarte. Debes iniciar el Android SDK Manager, que queda instalado en tu menu inicio dentro de la carpeta de RAD Studio:



Fuente imagen

Deberias ver algo como esto:



Ahi actualizas a la API que haga falta. Luego deberias actualizar en el IDE de Delphi (lo que hiciste antes) las rutas a la nuevas versiones de las API

Sino se me ocurre que puedas buscar en el sitio de incidencias: https://quality.embarcadero.com/ a ver si alguien tuvo este problema con TMemo. Tambien podria ser adecuado abrir una nueva incidencia alli mismo

Una busqueda rapida arrojo estos resultados (no es exactamente tu problema, pero es similar)

https://quality.embarcadero.com/browse/RSP-14985
https://quality.embarcadero.com/browse/RSP-16895
https://quality.embarcadero.com/browse/RSP-16149
https://quality.embarcadero.com/browse/RSP-16935

Al parecer hay problemas con el teclado de google, el texto predictivo, el autocompletar y la correccion de fallas ortograficas
Responder Con Cita
  #9  
Antiguo 07-04-2017
jhonalone jhonalone is offline
Miembro
 
Registrado: Sep 2007
Ubicación: Madrid
Posts: 398
Poder: 11
jhonalone Va por buen camino
Millón de gracias por el esfuerzo que supone tu respuesta, Agustín.
Nunca hice lo que me propones.
Prometo esforzarme para entender todo. Es lo menos que puedo hacer para que tu esfuerzo no haya quedado baldío.
Es mucha la información que has recopilado en tu respuesta.
Voy a estudiarlo detenidamente y te cuento.
Pero antes de arriesgarme a equivocarme en el proceso, me gustaría que tú o alguien que haya detectado el mismo problema, me confirmara que va a ser efectivo.
Un efusivo saludo para ti, Agustín.
En Madrid ya es muy tarde.
Mañana seguiré.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #10  
Antiguo 07-04-2017
jhonalone jhonalone is offline
Miembro
 
Registrado: Sep 2007
Ubicación: Madrid
Posts: 398
Poder: 11
jhonalone Va por buen camino
Hola, de nuevo Agustín.

He actualizado el SDK que era el 24.3.3 32bit a la versión 25.2.5 32bit, que es la más nueva que me ha dejado el SDKManager.

Y el problema sigue igual, (o peor... porque creo que antes no me daba el problema en los TEdit y ahora me da el mismo problema)

Me estoy acostumbrando a resolver estos "problemas" de Delphi con imaginación y "chapucería".
He mirado los links que me dejaste de Embarcadero y he comprobado, que hay más de un problema con los teclados. Como tú decías se parecen, pero no son igual que el mío. Incluso algunos son peor. El cursor se vuelve loco y vuelve al principio, o escribe texto no tecleado. Bueno, a mí me escribe texto no tecleado, pero al fin y al cabo el problema es que repite lo que había tecleado hasta el momento.

Intentaré implementar una función el evento OnKeyUp de los memos y de los edits para resolver el problema de forma "chapucera" si no hay otra solución por parte de Embarcadero.

Realmente los problemas que he visto en los links que me dejaste, están también sin resolver.
Así que no tengo muchas esperanzas.

Saludos muy cordiales y gracias por tus esfuerzos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #11  
Antiguo 24-07-2017
jhonalone jhonalone is offline
Miembro
 
Registrado: Sep 2007
Ubicación: Madrid
Posts: 398
Poder: 11
jhonalone Va por buen camino
Hola a todos de nuevo.
Los enanos del circo de Delphi siguen creciendo.
En la versión 6.0.1 de android, no basta con que TMemo se haya vuelto literalmente LOCO, según lo que precede en este hilo.
Acabo de observar una nueva DESGRACIA? para los programas android generados con Delphi.

A ver si sé explicarme:
Los dispositivos Samsung (son los que yo utilizo) disponen de un botón que está por debajo de la pantalla y en el centro del dispositivo. Sirve para activar el terminal si se ha desactivado (apagado la pantalla) cuando llevas un tiempo sin usarlo. Esto está muy bien para prolongar la duración de la batería.

En otro hilo anterior, ya expliqué los problemas que habían surgido con la versión 6.0.1 de android.
Pues había cambiado la funcionalidad, tanto de este botón central como del sensor de dos rallitas dentro de un cuadrado que está a la izquierda de dicho botón.

Bueno, pues el nuevo INCONVENIENTE, que he observado consiste en esto:
En versiones anteriores y en ésta (6.0.1 que, acertadamente, le han puesto el nombre de Marshmallow. Y efectivamente es "mucho márs malou") (perdón por el chiste porque no tiene ninguna gracia) digo que en las versiones anteriores y en ésta cuando pulsas brevemente este botón central, ocultas el programa que estás utilizando, para poder hacer una llamada o cualquier otra cosa.

En versiones anteriores, cuando volvías a pulsar de nuevo este botón te aparecían en pantalla los programas que tenías abiertos. Si pulsabas brevemente sobre cualquiera, volvías a retomar el programa en la situación que lo dejaste (incluídos los generados por Delphi).

En la versión a la que no estamos refiriendo, si pulsas el botón central te aparece Google. Para que aparezcan los programas que estaban "minimizados" tienes que pulsar en el sensor a la izquierda del botón central, (que ahora se representa por dos rectángulos superpuestos, simulando lo que representa: ventanas en cascada).

Bueno, pues aparecen todos los programas que tienes minimizados en una cascada de ventanas.

Y aquí está el problema:

Si seleccionas cualquier aplicación que no haya sido generada con Delphi, la retomas donde la dejaste.

Pero si eliges una que ha sido generada por Delphi... ¡¡SORPRESA!! La aplicación se reinicia y arranca desde el principio, como si la hubieras llamado pulsando su icono.

Perdón por haberme alargado tanto, pero no sabía explicarlo mejor. Si aún no se entiende, lo siento.

Como siempre, solicito alguna ayuda (si es posible).

Gracias por leerme y saludos a todos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)

Última edición por jhonalone fecha: 24-07-2017 a las 18:21:29.
Responder Con Cita
  #12  
Antiguo 24-07-2017
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: May 2008
Ubicación: Bogotá
Posts: 494
Poder: 10
TOPX Va camino a la fama
Cita:
Empezado por jhonalone Ver Mensaje
Si seleccionas cualquier aplicación que no haya sido generada con Delphi, la retomas donde la dejaste.

Pero si eliges una que ha sido generada por Delphi... ¡¡SORPRESA!! La aplicación se reinicia y arranca desde el principio, como si la hubieras llamado pulsando su icono.
-
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #13  
Antiguo 24-07-2017
jhonalone jhonalone is offline
Miembro
 
Registrado: Sep 2007
Ubicación: Madrid
Posts: 398
Poder: 11
jhonalone Va por buen camino
Muchas gracias TOPX, por interesarte en ayudarme.

A la vista está que no soy un experto programador.
He visto el código de StackOverflow, pero no sé cómo implementarlo para conseguir evitar que se reinicen las apps al intentar ponerlas de nuevo en primer plano. No quiero parecer más burro de lo que soy pero el código referido creo que no me sirve más que para saber la situación de mi aplicación.
Código Delphi [-]
uses FMX.Types, FMX.Platform;

function TForm1.HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean;
begin
  case AAppEvent of
    TApplicationEvent.FinishedLaunching:    Log.d('Launched.');
    TApplicationEvent.BecameActive:         Log.d('Gained focus.');
    TApplicationEvent.EnteredBackground:    Log.d('Now running in background.');
    TApplicationEvent.WillBecomeForeground: Log.d('Restoring from background.');
    TApplicationEvent.WillBecomeInactive:   Log.d('Going to lose focus.');
    TApplicationEvent.WillTerminate:        Log.d('Quitting the application.');
    TApplicationEvent.LowMemory:            Log.d('Device running out of memory.');

    // iOS only
    TApplicationEvent.TimeChange:           Log.d('Significant change in time.');
    TApplicationEvent.OpenURL:              Log.d('Request to open an URL.');
  end;

  Result := True;
end;

procedure TForm11.FormCreate(Sender: TObject);
var
  aFMXApplicationEventService: IFMXApplicationEventService;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService,
    IInterface(aFMXApplicationEventService))
  then
    aFMXApplicationEventService.SetApplicationEventHandler(HandleAppEvent)
  else
    Log.d('Application Event Service not supported.');
end;
¿Puedes ayudarme?
Un saludo. Gracias.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)

Última edición por jhonalone fecha: 24-07-2017 a las 19:40:04.
Responder Con Cita
  #14  
Antiguo 24-07-2017
Avatar de TOPX
TOPX TOPX is offline
Miembro
 
Registrado: May 2008
Ubicación: Bogotá
Posts: 494
Poder: 10
TOPX Va camino a la fama
En el artículo que refieren en esa respuesta ~ https://community.embarcadero.com/bl...lphi-xe5-40067 , hay una descripción un poco más detallada de la ubicación de ese código.

A grosso modo sería:
  1. Crea una función que reciba un TApplicationEvent y un TObject, para que sea el manejador de eventos.
  2. Asigna esa función con el método SetApplicationEventHandler de una IFMXApplicationEventService.
  3. En la implementación de esa función prueba con los diferentes valores del TApplicationEvent, para identificar el que quiere detectar.
  4. Después de que sepa cuáles son los valores a detectar, al "minimizar" guarda el estado y al "seleccionar" carga el estado guardado. Es posible que le sirvan EnteredBackground y BecameActive para ello.
-
__________________
"constructive mind, destructive thoughts"
Responder Con Cita
  #15  
Antiguo 24-07-2017
jhonalone jhonalone is offline
Miembro
 
Registrado: Sep 2007
Ubicación: Madrid
Posts: 398
Poder: 11
jhonalone Va por buen camino
Gracias, de nuevo TOPX.

De tus recomendaciones, los tres primeros puntos, con más o menos esfuerzo creo que no tendría problema al implementarlos.

La "madre del cordero" (como decimos aquí), o sea lo principal está en el punto 4.

¿Qué guardas? ¿Cómo lo guardas? ¿Dónde lo guardas? (Esto sería menos problema)
¿Qué lees? ¿Cómo y cuándo lo lees? ¿Cómo devuelves el programa al estado anterior?
Tendrías que guardar y leer todos los valores de las variables globales, que pueden haber sido modificados antes de "minimizar".

Créeme no es una tarea sencilla.

Sabemos que Delphi tiene el evento onSaveState, (que yo no he utilizado nunca), entre otras cosas, porque las versiones anteriores a MashMallow de Android no destruían la aplicación al ocultarla. Pero me parece que no "salva el estado" de la aplicación automáticamente, con lo que volvemos al problema del punto 4.

Observando que hay aplicaciones como WhatsApp que permanecen activas y no se reinician aunque las mandes a segundo plano, me da que pensar que debe haber una solución más sencilla.

Gracias por tu interés.

Puedes contestarme en el hilo que he creado para este asunto.

Saludos cordiales.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #16  
Antiguo 21-09-2017
Avatar de jacfox
jacfox jacfox is offline
Registrado
 
Registrado: Jul 2006
Posts: 6
Poder: 0
jacfox Va por buen camino
Buenas jhonalone, ¿Has conseguido solucionar el problema de los memo en delphi?
Estoy haciendo pruebas con aplicaciones en android y me esta pasando lo mismo que a ti.
Saludos.
Responder Con Cita
  #17  
Antiguo 21-09-2017
voci voci is offline
Miembro
 
Registrado: Oct 2003
Posts: 50
Poder: 15
voci Va por buen camino
Cita:
Buenas jhonalone, ¿Has conseguido solucionar el problema de los memo en delphi?
Estoy haciendo pruebas con aplicaciones en android y me esta pasando lo mismo que a ti.
Saludos.
¿Que versión de desarrollo estás utilizando?.

¿Les has aplicado el parche 30781?

En dicho parche se solucionan diversos bugs en android, uno de los cuales es este:

TMemo adds text when clearing Text on Android 6

Saludos.
Responder Con Cita
  #18  
Antiguo 22-09-2017
jhonalone jhonalone is offline
Miembro
 
Registrado: Sep 2007
Ubicación: Madrid
Posts: 398
Poder: 11
jhonalone Va por buen camino
No, jacfox. Resolví el problema avisando a los usuarios cuando utilizan una versión 6 o superior.
A ver si con el parche que comenta Voci lo podemos resolver.
Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
problema con base de datos+android+delphi xe6 jgutti Desarrollo en Delphi para Android 7 22-08-2016 21:32:24
Problema con MySSHIOHandler en plataforma Android javierhrc Conexión con bases de datos 2 15-08-2016 19:25:10
Problema con Android 5.0 y delphi xe8 Galahad FireMonkey 8 12-10-2015 18:57:50
Datasnap y cliente android - Problema al conectar vicens22 Desarrollo en Delphi para Android 8 04-12-2013 11:13:28
Pequeño problema con el componente tmemo gaska OOP 5 23-04-2004 13:52:36


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


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