Aplicación se reinicia al traerla a primer plano
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 vemos en este hilo. (Perdón por no haber iniciado un nuevo hilo con este tema y haber usado otro ya abierto.) 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. |
Hola a todos,
Creo que lo que describes no es un problema de Delphi, sino que, se trata del comportamiento del sistema operativo, del "ciclo de vida" de las aplicaciones en Android. En efecto, cuando una aplicación se pone en segundo plano (pasamos a hacer otra cosa con otra aplicación), es el sistema el encargado de decidir si dicha aplicación va a cerrarse o mantenerse en segundo plano, etc. Dependiendo, supongo, de no pocas variables: necesidades de la aplicación, consumo de memoria RAM, batería restante, etc., etc. Por ejemplo, en una aplicación que estoy desarrollando actualmente, usamos un componente "Websocket", que, permanece conectado a un determinado servidor. Pues bien, desde que usamos dicho componente, he podido notar que nuestra aplicación prácticamente no se "reinicia" como tú describes, sino que puede pasar de un segundo a un primer plano "sin más". Yo achaco este comportamiento a que Android sabe que ahí hay un Websocket abierto, y que, este debería permanecer conectado el mayor tiempo posible. Sin embargo, hay veces que aún así la aplicación se comporta exactamente como describes, pero, como digo, no es algo anormal, sino el "ciclo de vida" de las aplicaciones de Android. En Delphi debe haber eventos como "OnBackground" y "OnResume", que, nos permitan mantenernos al tanto del ciclo de vida de la aplicación: saber si esta pasa a segundo plano, si vuelve a ponerse en primer plano, etc. Atendiendo a estos eventos podremos estar preparados para "resumir" en condiciones nuestra aplicación. Es decir, no importa si esta se "reinicia", si nosotros sabemos que "venimos" de un "segundo plano", podemos antes (cuando pasamos a dicho segundo plano) haber guardado ciertos datos, por ejemplo, posbiles campos de un formulario ya rellenados, de modo que podamos situar al usuario en la vista o formulario de la aplicación que corresponda, e, incluso rellenar "los campos" del supuesto formulario, de modo que el usuario no pierda dicha información y todo "fluya" más o menos como se espera. En conclusión: infórmate acerca del "ciclo de vida" de las aplicaciones de Android y de cómo manejar este tipo de situaciones usando Delphi: qué eventos podemos usar, etc. |
Muchas gracias dec.
La verdad es que es un fastidio. Y esto ocurre en la versión 6.0.1 (tal vez también en las siguientes) Tendré que investigar a ver si puedo evitarlo. Se que Delphi tiene la posibilidad de hacerlo con el evento onSaveState, pero no lo he utilizado nunca y no sé como resultará. Con el tema de los "ciclos de vida" también investigaré. Mientras tanto, si alguien lo tiene solucionado, agradecería cualquier ayuda. El WhatsApp, por ejemplo, no se reinicia. Seguiré investigando. Saludos. |
Es lo que dice dec, es el "ciclo de vida" de los programas android. Es algo que debes controlarlo tú.
|
Hola a todos,
Si no me equivoco, Whatsapp, utiliza un "servicio", o sea, no una aplicación "normal y corriente", para mantener la aplicación "activa". Pero tampoco estoy seguro de esto. Tal vez, por la propia característica de la aplicación, Android no la "termine" como puede terminar otras que considere oportuno. Como he dicho arriba, antes de usar un "Websocket" en cierta aplicación, yo notaba que los "reinicios" de esta eran mayores que después de usar dicho componente. Es como si Android supiese que hay un Websocket abierto (de hecho lo sabrá), de modo que, no es que garantize que la aplicación no se "cerrará", pero, digamos que no lo hace con la misma asiduidad que con otras aplicaciones. O sea, en todo caso es algo con lo que hay que convivir y tratar de lidiar con ello, dependiendo de las propias aplicaciones que se lleven a cabo. |
Gracias, Casimiro;
Me han quedado algunas cosas claras: 1.- Que Android (antes no, ahora si) en las nuevas versiones, elimina las aplicaciones en segundo plano que (con sus criterios) no interesan a sus fines. 2.- Que no sabemos los criterios que utiliza para eliminarlas. 3.- Que debe haber una forma e evitarlo, que no conocemos. 4.- Que, tal y como dice dec, es posible que el componente "Websocket" esté incluído en sus criterios. 5.- Que la calculadora no se borra. Vamos conserva los datos después de volverla a primer plano. 6.- Que el programa reloj conserva también los datos. 7.- Otro ejemplo: he bajado de play store, para probar, un programa llamado Crucigramas que también conserva los datos. Creo que de haber una forma de evitarlo y creo que no debe ser tan complicada como onSaveState. Gracias por vuestro interés. Saludos cordiales. |
amigo jhonalone algunas versiones de android tiene las opcion de aumentar el numero de aplicaciones que se puede tener en segundo plano verifica si tu terminal tiene esas opcionees
y para dec quisiera saber si el componente Websocket es un componente nativo o de tercero pues me llego la idea de incluirlo en las aplicaciones lo use o no ya que has dicho que las aplicaciones duran mas para cerrar |
Hola a todos,
Cita:
Cita:
Cita:
Más bien hemos de ponernos en el caso de que un usuario esté rellenando algún formulario de nuestra aplicación, y, de repente, pase a otra aplicación, por ejemplo, porque le llaman por teléfono. Lo que acaso debemos guardar nosotros (si lo consideramos necesario, y, por favorecer al usuario) son los datos del formulario en cuestión, lo que ya hubiese escrito el usuario, de modo que, cuando vuelva a reactivar la aplicación, si es necesario (si se desactivó antes) volver a rellenar los datos del formulario, para que el usuario no tenga que escribirlos de nuevo. Pero no se trata de guardar más allá de eso... claro que dependerá de la aplicación, pero, lo que quiero decir es que no se trata de guardar "todo" lo de nuestra aplicación, para recuperarlo después. Nuestra aplicación tendrá un "ciclo de vida", que debemos controlar, pero, no hay que llegar a esos extremos. Un juego, por ejemplo, podrá guardar la partida en curso, si se quiere, pero, no necesitará ir más allá... podrá dar al usuario la opción de lanzar de nuevo la partida "cortada", o bien hacerlo de forma automática, pero, no tiene porqué haber guardado nada más que eso. Cita:
Cita:
Cita:
Por ejemplo, en el caso de la aplicación que desarrollo, los "reinicios" son bastante claros: porque se muestra una "splash screen". Pero esto es algo que tiene que ver con esta aplicación en concreto y con el entorno de desarrollo empleado, etc. Tal vez la calculadora y el reloj se reinicien igualmente, pero, "no se note", como si mostrasen un "splash screen" cada vez que se inician "desde cero". Cita:
Cita:
Cita:
|
Tal y como dice dec, y el dibujito que he puesto antes, el ciclo de vida de una aplicación android NO es como una de windows. Cuando sales del programa (o se "duerme") debes programar lo que necesites en los "eventos" activity_pause y activity_resume.
|
1 Archivos Adjunto(s)
Gracias a todos por vuestro interés, vuestro tiempo y vuestro esfuerzo.
Después de buscar y rebuscar, trastear y trastear con el móvil parece que la solución es bastante sencilla. Se trata de desactivar la opción de "No mantener actividades", tal y como puede verse en la imagen adjunta. Espero os sirva a todos. Saludos a todos. |
Hola a todos,
Cita:
|
Bueno, dec, siempre será mejor algo que nada.
Como mucho se le puede pedir al usuario que la active. Ah! por cierto, es una solución parcial, pues estoy comprobando, que cuando recuperas la App al poco tiempo, la mantiene intacta, pero (y esto lo sospecho, no estoy seguro) cuando pasa el tiempo seleccionado para la desactivación de la pantalla sigue "matando" la App y cuando intentas recuperarla, se reinicia. ¡Y yo que pensaba que había resuelto el problema...! Seguiremos investigando.... Saludos a todos. |
Hola a todos,
Cita:
Cita:
En definitiva, que no estamos ante un problema que haya que solucionar, sino ante cómo Android trata a las aplicaciones, no sólo la tuya, de modo que tenemos que adaptarnos a ese trato. |
Sé estás haciendo un gran esfuerzo, David.
El "tiempo de gracia" al que te refieres, sólo existe haciendo el cambio propuesto en modo desarrollador, si no haces este cambio, no hay "tiempo de gracia" que valga. Mira, el programa en cuestión consiste en en una agenda para usuarios autónomos donde se gestiona desde el aviso del cliente hasta la emisión de la factura. Como cualquier programa que se precie, tendrá unas cuantas variables globales, para no estar repitiendo en cada Unit, y porque son utilizadas y modificadas por otras units. Creo que no será el único programa que se haya "cargado" Android al optimizar el uso de los nuevos terminales, que, por cierto, tienen menos necesidad de recursos que los antiguos, pues disponen de bastante más memoria y almacenamiento que los anteriores. (Repito en los anteriores no pasaba esto) Esta optimización, la entendería más en los antiguos terminales que en los nuevos. En cualquier caso, "matar las aplicaciones" sin permiso del usuario me parece una acto de una dictadura absolutista sin ningún respeto. Recordemos lo del cambio de función de los botones o el problema generado en TMemo con el texto predictivo y ¡quién sabe cuantas cosas más nos iremos encontrando...! Cuanto más lo pienso más grave veo el alcance del problema. Android es un caprichoso dictador, que lo menos que se le podría pedir al desarrollar cada nueva versión es que respetara la compatibilidad con las anteriores. Creo yo. Bueno, que me salgo del tema, espero que alguien pueda ayudarme, (y creo que no soy el único que necesita, o va a necesitar, esta ayuda) A ver si entre todos conseguimos minimizar los efectos de la dictadura (dura) de Android. Seguiremos trabajando. Saludos a todos. |
Creo que estás confundido. Tanto ahora como antes, android cierra los programas que no se están utilizando dependiendo de las necesidades de memoria, recursos, el tiempo de inactividad, etc.
Lo que tú llamas "dictadura", realmente son las normas del funcionamiento de android, es como si dices que hay que acabar con la dictadura de eventos en windows, pero ¡¡¡windows es programación por eventos!!! En cuanto a tu programa, por lo que dices, es simple, como una agenda que es, guarda los datos en una base de datos y no se perderán. |
Hola a todos,
Cita:
Supongamos que soy un usuario de tu aplicación y hago lo siguiente:
En el caso de arriba, no importará que tu aplicación se reinicie o no, puesto que a mí, como usuario, en nada me afecta. Podré dar de nuevo los mismos pasos sin necesidad de que hubieses guardado nada en los eventos "pause y resume". Ahora supongamos este otro escenario:
En este caso, sí que deberías comprobar acaso que el usuario, en efecto, estaba en el formulario para añadir un nuevo contacto, y que, ya había empezado a escribir el nombre de dicho nuevo contacto. Pues bien, ahora sí, en el evento "pause", guardarías por ejemplo el nombre del formulario, así como los datos ya introducidos. Cuando el usuario volviese de nuevo a la aplicación, esta comprobaría que lo hace desde un "reinicio" (esto ha de comprobarse de alguna forma, por ejemplo, guardando alguna "bandera" en algún sitio cuando la aplicación entra en "background"), y, si es así, buscaría en qué formulario se quedó el usuario y si hay algún dato ya escrito. De modo que al usuario no le importaría si la aplicación se ha reiniciado o no, simplemente él ve que, cuando vuelve a la aplicación (terminó la llamada de teléfono) se encuentra en el formulario para añadir un contacto y se le muestra el nombre del nuevo contacto que escribió anteriormente, de modo que puede continuar con la tarea. |
Hola, Casimiro.
Sabes que te admiro por tus conocimientos y tu labor desinteresada en el foro. Pero por primera vez, creo, (y pese al respeto y admiración que te tengo), no estoy de acuerdo contigo. Lo que me estás diciendo, contradice mi experiencia con los aparatos en que he probado. Tengo varios probados y, a partir de la versión 4.4.4 ocurre ésto. Yo pensaba que era la 6.0.1 que es la última que yo uso, (sustituyendo a la 4.1.2 que usaba antes), pero he decidido probarlo en unos cuantos más y he comprobado que empieza a fallar a partir de la 4.4.4. En la 4.4.2 todavía no "mata" la app. Observo que la primera vez que he visto con dos cuadrados superpuestos en el sensor inferior izquierdo, ha sido en la 4.4.4, en cuya versión ya estaba cambiado el comportamiento de los botones que explicaba en otro hilo. Esto pasa desde que quitaron vkMenu de este sensor izquierdo. También he podido comprobar que (en las opciones de desarrollador), la opción de "No mantener Actividades" por defecto está deshabilitada hasta la versión 6.0.1, en que viene habilitada por defecto. Esto es lo que empíricamente he podido observar. Por otro lado, con respecto a lo que dice David: Sí, podemos hacer todos los arreglos que se nos ocurran. Detectar en la pantalla que estaba y restituirla. Lo cual no deja de ser una labor bastante ardua. En lo que respecta a mi programa, no es una "simple agenda" es algo más. Lo puedes bajar y probarlo desde Google Play. Se llama "RegiControl". Entonces comprenderás lo que significa devolverle al sitio de interrupción. (Creo que tiene 12 o 14 unidades más un TWebBrowser para la ayuda en línea) Por los datos no tengo problema, pues se van salvando al tiempo que se van tecleando. Pero como lleva datos personales, al entrar debes teclear una clave de acceso. Y no me dirás que no es una imagen nefasta, tener que teclearla cada vez que dejas el programa para hacer otra cosa. Claro. Tu me dirás "no pongas clave". Pues te digo que hay que ponerla porque lleva datos muy personales (Nif, direecciones, trabajos realizados...). No es una "simple agenda", es un sistema completo de control de tareas, presupuestos, trabajos en curso y facturación. Sigo manteniendo que los cambios de versión de Android son una falta de respeto a los programadores, al menos los de Delphi, que son los que yo conozco. El programa es bastante complejo y la solución no la veo sencilla, (si es que la hay). ¡Ah...! Os recuerdo que ya tuve que poner un mensaje avisando al usuario de que el teclado predictivo puede fallar a partir de la versión 6.0.1 de Android. En este hilo, que está sin poderse resolver. Gracias, de nuevo, por vuestro interés. Saludos. |
Cita:
|
Cita:
Cita:
Por cierto, ese modo de funcionar ¿no serán funcionalidades instaladas por el fabricante de la marca de esos smartphones? |
Hola Casimiro. Gracias otra vez.
Habrás podido comprobar que estaba escribiendo cuando me has respondido. Ya me contarás cómo puedo implementar lo que me propones. Porque yo sólo... creo que no. Un saludo. |
1 Archivos Adjunto(s)
Bueno, Casimiro.
Los "cuadrados superpuestos" son una representación de dos ventanas en cascada, creo que lo he comentado antes. Hablo de los terminales Samsung que son los que yo uso. En la foto puedes ver los sensores a los que me refiero. Los de la foto de arriba son de un Motorola, que están dentro de la pantalla del terminal y al que me refiero es el cuadrado de la derecha, que hace la misma función que los dos cuadraditos que aparecen a la izquierda de la foto inferior que corresponde a un terminal Samsung Saludos. Archivo Adjunto 3588 |
Ok, está claro.
|
Hola.
Tengo que deciros que no he comprobado el problema en el Motorola, pues es de un amigo de mi hijo que estaba casualmente en casa. Saludos. |
Entonces, para resumir:
Cita:
Cuando "duermes" un programa y lo vuelves a "despertar" (lo que tú llamas "reiniciar") vuelve a empezar de nuevo, se pierden todos los valores en las variables, etc. Y es exactamente el mismo comportamiento cuando giras la pantalla. Ahora bien, todo eso es controlable, tú puedes saber si es la primera vez que inicia el programa o si es que está "despertando" tras haber "dormido" (o se ha girado la pantalla) y depende de ti controlarlo guardando los datos que necesites y volviendo a restaurarlos. No sé cómo es el mecanismo ese en delphi porque para android utilizo otra cosa (no existía delphi para android cuando empecé a programar android), pero seguro que debe poderse hacer lo que necesitas, debe ser algo básico, aunque parezca complicado, como todo lo que no se conoce. No puedo ayudar mucho en eso porque no tengo ningún delphi moderno, pero intentaré ayudarte en lo que pueda. |
Gracias por el interés que te estás tomando Casimiro.
Estoy convencido de que no es un problema sólo de Delphi. He comprobado que otros programas tienen el mismo comportamiento y no son de Delphi. Al girar la pantalla no ocurre el mismo problema, al menos otros programas que he comprobado, aún siendo desarrollados en Delphi. Ni se resetean ni pierden la información de la pantalla. Buenas noches. Mañana seguiremos. Un saludo. |
Hola a todos.
Sigo trabajando en el asunto. Ayer minimizé algunas aplicaciones (entre ellas la mía) y para mi sorpresa esta mañana al reactivarlas mantenían sus misma pantalla y posición, es decir: no se reiniciaban (reseteaban). No me preguntéis porqué... el dispositivo siegue siendo el mismo y yo no he cambiado ningún ajuste. Estoy probando esta mañana y... unas veces se reinician las App's y... otras no. A ver si consigo averiguar el comportamiento (a primera vista errático) del "lifecycle" de las App's en Android. Estoy haciendo pruebas con un controlador de eventos que me sugirió TOPX en otro hilo. Pero creo que aunque controlemos el evento, lo más difícil será restituir los valores que tienen en ése momento todas las variables globales de la App y restituir la pantalla en la que se encontraba cuando perdió el foco. Sin olvidarnos de las comprobaciones que hace el programa al ejecutarse la primera vez... Sigo pensando, que "matar" las App's arbitrariamente, es una solución irrespetuosa con el usuario por parte de Android. No quiero decir con esto que no haya que controlar la memoria y el espacio del dispositivo por seguridad de uso. Pero estaréis conmigo en que, llegado a un límite de recursos, sería mucho mas elegante y respetuso avisar al usuario y dejarle elegir cuál o cuáles App's desea cerrar. Digo yo. De hecho, el sistema ya te avisa cuando te queda poca batería. Imagínate que estás en un editor de texto y tienes una parte escrita y necesitas ponerlo en "segundo plano" para hacer una llamada. Como otras veces ya lo habías dejado en segundo plano y lo has recuperado intacto, vuelves a hacer lo mismo, sin guardarlo. Pero en ése momento Android decide "matar" la aplicación del editor. Cuando intentas recuperarlo, ves que se reinicia el editor, vuelve a su posición de cuando le ejecutas por primera vez, y has perdido el trabajo. Si, claro, aprendes a no volver a minimizarlo sin salvar. Pero te acuerdas del padre de Android (si tiene) y el mal ya está hecho. Creo que todos sabéis, por experiencia que, los errores (problemas) que aparecen al desarrollar un programa y que ocurren unas veces sí y otras no, son los peores de resolver. Si consigo descubrir o solucionar algo, o si se me ocurre otra cosa os tendré al corriente. Perdonar mi pesadez, pero creo que el tema tiene bastante importancia (o...¿quizá sólo es importante para mi?...) Bueno. Saludos a todos. |
Cita:
Cita:
Puedes plantearte el problema de otra forma, por ejemplo, estás dando de alta un cliente y necesitas hacer una llamada, entonces cuando vas a salir (segundo plano, aparcar, dormir, llámalo como quieras) guardas los datos que se puedan perder y nada más, luego cuando inicias el programa de nuevo no habrás perdido nada, salvo que no estarás exactamente en la pantalla que estabas. No es nada trágico. Al menos, yo lo veo así. |
Cita:
Pero no es una bonita imagen para un usuario. Un saludo. |
Hola a todos.
Investigando un poco, he visto que hay bastante gente molesta por este asunto, que yo pensaba que sería una obsesión mía. Podéis verlo aquí. Saludos a todos. |
Bueno, es una persona y no hay nada concluyente, algunos le aconsejan algunas cosas distintas, no hay nada que aclare realmente nada.
|
Hola Casimiro.
El link es una búsqueda. No es solo una persona. Hay varios links en la búsqueda. y te garantizo, que he visto algunas colecciones de preocupados más. Esto que pongo es un botón de muestra, si quieres, pongo otros cuantos links más, correspondientes a búsquedas en distintos idiomas. Lo más preocupante es que "no hay nada concluyente". Lo que nos lleva a la dictadura de Android. Lo que significa que "yo mando". Si quieres como si no. O sea: un desprecio total a los usuarios. Lo mires como quieras. Hay maneras mucho más elegantes de resolver el problema de los recursos. (Personalmente, estoy seguro de que no es un problema de recursos, pues terminales con recursos sobrados reaccionan igual). Defender a Android en este aspecto, creo que es luchar contra corriente. Saludos. |
Ya, si te entiendo, pero es que una persona (o unas pocas, o muchas personas) que se quejen de algo, no quiere decir que sea un fallo (será por quejas, habría que tirar a la basura todo: windows, android, linux, ios, delphi, visual studio, msoffice, etc.) porque en todos los casos hay miles de personas que se quejan de problemas.
En este caso, el fabricante de android ha decidido hacer algo que a unos les parecerá mal y a otros no, pero es así y no se puede hablar de "dictadura" de google, porque entonces imagina lo que podríamos hablar de la "dictadura" de windows o de cualquier otro. Simplemente es así y hay que resolver la situación con lo que hay. Esa es mi opinión. Y por supuesto, yo no defiendo a android, más de una vez he dicho que es una mierda, aquí mismo en los foros. Lo mismo he dicho de windows muchas veces también :D |
Hola Casimiro.
Aún dándote la razón sigo pensando que es una forma de hacer las cosas poco respetuosa con el usuario. Ahora que hablas de windows, es, realmente, otra dictadura, tan o más dura que la de Android(Google) Te cuento una experiencia mía de hace un poco mas de un mes. Tengo W10 en el portátil y hace un poco más de un mes recibo un mensaje de ésos que te asustan de Windows, que tengo que realizar una actualización importante. Bueno, paso del asunto las dos o tres primeras veces. Como se ponía pesado, y prometía que no se perdería mi información, accedo a realizar la actualización. Más de dos o tres horas haciendo una reinstalación completa del sistema. Cuando termina la instalación, observo que me ha devuelto el tamaño de todos los textos y gráficos al tamaño original, pequeñito. Yo soy un poco miope y había puesto el tamaño de los iconos, los títulos de las ventanas, los textos un poquito más grandes, vamos para no tener que forzar la vista cuando estoy trabajando. Bien, aunque me sentí fastidiado, digo "bueno vamos a adaptarlo a mi gusto otra vez". Pues NO. Han desaparecido todas ésas opciones de ajustar el terminal a tus necesidades o gustos. En su lugar existe una opción general para, basándose en un porcentaje, agrandar o achicar (no sé si achicar) el tamaño general de todo lo que aparece en la pantalla. Un fracaso total. Intenté aumentar un 4 o un 5 por ciento y parecía que las vistas se habían agrandado un poquito. Cuando abro Delphi voy a Project/Opions... y, para mi sorpresa, veo que el árbol de las opciones de la izquierda tiene unas letras del tamaño que veis más arriba y no caben en el recuadro en que están ubicadas. Un desastre más a mi lista de tener que soportar dictadores. Porque digamos lo que digamos "...que sepas que serlo eres..." como decía el gracioso genio de Mota. Pero como dices tu "es lo que hay". Yo que soy tan meticuloso..., estas cosas me ponen de muy mal humor... Si todavía estás a tiempo, y tenéis personalizados los tamaños de letra, no actualicéis si no queréis que os pase lo que a mí. "Cuando las barbas de tu vecino veas pelar..." Perdón por mis lamentos, y por haberme extendido tanto. Saludos cordiales. |
Te entiendo, windows es desesperante. Alguna vez he visto ese problema de las actualizaciones infinitas, desesperantes, reinicios, más actualizaciones, más reinicios, etc...
Yo tengo algunas máquinas virtuales con windows para probar proyectos, pero personalmente hace muchos años que en mis equipos solamente tengo linux. |
Hola, Casimiro.
Ojala yo fuera un poco más joven y valiente para cambiarme a Linux. El problema que le veo a Linux es que su uso está muy restringido y hay muchas menos herramientas. Hablo de oídas, porque sé que existe, pero, por estos motivos, nunca me he planteado cambiarme. No olvidemos que Windows está el 100 por cien de las casas. Linux me parece que está reservado a entornos más relacionados con la informática y a personal más preparado. (A lo mejor lo que digo son barbaridades, fruto de mi desconocimiento) Como no me rindo fácilmente,(soy muy persistente), si algún día encuentro una solución o un parche para evitar que Android se "coma" por su cuenta y riesgo mis aplicaciones retomaré este hilo. O si alguien encuentra la solución antes que yo, por favor, que la comparta que estoy esperando... Saludos cordiales. |
Cita:
Cita:
Cita:
Cita:
No se puede pretender llevar usando windows durante los últimos 15 años y querer manejar linux igual en un par de horas, y eso es lo que quieren conseguir casi todos. A mí, windows, me resulta extraño, complejo, enrevesado, frustrante, lento, dictatorial ;), chapuza, birria, etc. Por supuesto que linux no es perfecto, pero no hay comparación en seguridad, agilidad, personalización, etc. comparado con windows. Linux es distinto a windows, simplemente. Cita:
|
Cita:
Más allá de estar de acuerdo con ustedes, te recomiendo el uso de gafas para usar el PC. Yo también soy miope y créeme que es mejor no forzar la vista ni usar parches como aumentar el tamaño de la letra |
Te iba a sugerir que uses el SaveState, que es algo que ya comentaste en el hilo. A ver si este material te puede ayudar
https://community.embarcadero.com/bl...sing-savestate Por lo que veo te permite grabar el form como un stream, y luego para leerlo hace eso mismo. Es un mecanismo similar a como se lee en tiempo de ejecución el recurso .dfm para recrear el form que vemos en tiempo de diseño |
Hola a todos.
Gracias a Casimiro y a Agustín por vuestro interés. Casimiro. Me parece muy interesante tu idea. Ya la había estado barajando y buscando información en internet y tengo algunos proyectos en la cabeza. Pero ahora estoy enfrascado en una modificación de seguridad del programa y las tengo aparcadas. No olvidadas ni desechadas. Agustín. He estado visitando el link que me dejaste y me he descargado el proyecto de prueba. Todavía no lo he probado, por la misma razón. En principio parece interesante, pero sospecho que, como comenté más arriba, el problema de SaveState va a seguir siendo el mismo: puedes salvar la posición del programa, pero lo realmente complicado son los valores que llevan todas las variables globales y que pueden haber sido cambiados. Si no salvas estos valores y los recuperas, el programa se descolocará. Mi programa en concreto, necesita de ésas variables globales para su correcto funcionamiento. Con respecto a usar gafas, las llevo desde los 6 años y tengo 65, (7 dioptrías en un ojo y 8 en el otro). Os lo cuento para que nos vayamos conociendo. Seguiré peleando... y os contaré. "¡En peores plazas he lidiado...!, " (como dijo aquél). Saludos cordiales. |
Todavía falta mucho para la jubilación ;)
|
La franja horaria es GMT +2. Ahora son las 23:56:54. |
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