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 Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-04-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Pantalla negra inicio App (Cosa fea)

Hola amigos del foro.

¡Esto parece una carrera de obstáculos!
Debo ser el más raro del foro por quejarme de tantas cosas. O a lo mejor soy demasiado exigente.

He observado con pena que a medida que una aplicación Android (construída con Delphi) va siendo más pesada (no sé lo pesada que puede ser con 50 MB, cuando los servicios de Google Play tienen 112 MB por ejemplo) Pues éso que tarda mucho en arrancar y, LO PEOR DE TODO, es que te deja la pantalla negra y por más que he buscado en foros y en internet, no encuentro una solución aceptable, hay alguna que otra chapuza, pero nada serio ni definitivo.

Curiosamente, si pones un ShowMessage() al inicio del evento OnCreate este se emite dentro de la pantalla negra, lo aceptas, desaparece, y la pantalla sigue negra hasta que arranca la aplicación. He intentado poner algún objeto como un TAnIndicator o algo semejante y no aparece, el mensaje sí.

Me vais a decir que soy muy pesado, pero Embarcadero debería haber resuelto estas cosas después de 10 ediciones de RadStudio.

Bien, si alguien ha descubierto como resolverlo, le agradecería lo compartiera conmigo y con el resto del foro, pues creo que somos muchos los que pensamos lo mismo.

He visto alguna cosa de kuruno, otras en chino para RadStudio 5, pero nada definitivo.

Gracias y perdonar que sea tan quisquilloso.

Saludos a todos.
Responder Con Cita
  #2  
Antiguo 08-04-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
En teoria te crea automaticamente un Splash Screen con el logo de Firemonkey

No das informacion suficiente

Tenes muchos form? Se crean todos automaticamente? Que hay en esos forms? Hay componenes de acceso a datos? Cargas muchas imagenes?

Basicamente es como decir, el auto anda lento, como lo soluciono?
Responder Con Cita
  #3  
Antiguo 09-04-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Gracias Agustín por interesarte.

El Splash inicial del logo es muy facil de cambiar y se hace en Projects/Options/Application.

Pero este no es el problema. El verdadero problema viene después... (2/3 segundos despues) cuando desaparece el splash inicial. De ahí a que se muestra la pantalla queda en negro y no se sabe qué está haciendo. (El usuario, claro. Nosotros sabemos que está cargando el programa y haciendo lo que le hayamos ordenado en OnCreate y OnShow y generando los componentes... etc, etc.)
Esta pantalla en negro da muy mala impresión.

En concreto mi App (que es un tablero de sudoku) tiene que generar unos cuantos TStringGrid y el primer tablero de forma aleatoria y validarlo y repetir hasta encontrar un tablero válido.

En mi teléfono móvil tarda unos 11s. en el de mi hijo que es más moderno unos 6s. pero en la tableta Samsung Galaxy 3 nos vamos a 15 ó 20 segundos. (¡Un mundo...!)

Está todo en un solo Form, no genero automáticamente en tiempo de ejecución nada más que el tablero, todo lo demás está generado en tiempo de diseño, no tiene acceso a datos... no sé qué más decirte.

Entiendo que pueda tardar unos segundos en generar el tablero y en poner todo a punto, estos segundos han ido aumentando a medida que ha crecido el tamaño de la App.

Lo entiendo... Además los procesadores de los teléfonos y tabletas (sobre todo los más antiguos) son relativamente lentos, los comparamos con los de los PCs. El mismo programa lo tengo ya hecho para PC y abre en un parpadeo.

Todo esto lo entiendo...

He conseguido "dividir" (que no reducir) el tiempo de espera, usando una nueva Form como de presentación.

Comprendo que el tiempo de espera no se pueda reducir, es lo que hay y punto.

Lo que pretendo es evitar ésa pantalla negra. Sustituirla por algo que indique que el programa se está cargando o algo así. Como dije ya lo he intentado con un TAniIndicator y no lo he conseguido. Lo más que he conseguido es un ShowMessage en OnCreate. Ese se muestra sin esperar a la carga del programa.

Lo que os pido es algún truco que haya conseguido alguien, porque el problema, tal como yo lo veo, no debe ser solamente mío. He intentado con la solución de kurono pero tampoco resulta efectiva.

Repito, esto debería estar resuelto en Embarcadero, pero tampoco en el docwiki he encontrado nada que lo resuelva.

No os canso más. Si alquien conoce una solución al problema más elegante que el ShowMessage, agradeceré la comparta en el foro. Porque, o mucho me equivoco, o este problema es general.

Gracias por soportarme.

Saludos.
Responder Con Cita
  #4  
Antiguo 09-04-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por jhonalone Ver Mensaje
Repito, esto debería estar resuelto en Embarcadero, pero tampoco en el docwiki he encontrado nada que lo resuelva.
Yo creo que no van por ahí los tiros.
Si visualizas un form vacío qué te tarda. ¿Algo aceptable?
A mi en las aplicaciones que he hecho sí, por lo tanto entiendo que no es algo que tenga que solventar Embarcadero.

Si el trabajo que estás haciendo para generar el tablero tarda 10 o 15 segundos, Embarcadero ya te da soluciones para hacer eso, pero no sólo en aplicaciones móviles, sino también en aplicaciones de escritorio y la solución en ambos casos es la misma.
Debes utilizar Threads.

Si en el Create o en el Show de un form realizas una tarea que tarda 15 segundos (en una aplicación windows igual) tendrás la pantalla 15 segundos bloqueada.
Eso no es aceptable, por lo tanto debes aplicar una solución con la herramientas que te da Delphi (que ya lo tiene resuelto).

Lo lógico sería visualizar un formulario con un elemento de espera, y en un Thread aparte, realizar la tarea que te está bloqueando. Una vez finalizada esa tarea, cierras el primer form y visualizas el segundo con el tablero.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 09-04-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
O quizá cambiar el código que genera los tableros sudoku. De que orden es ese algoritmo? Buscaste en Internet cual es la mejor estrategia para crear una tabla de Sudoku?
Responder Con Cita
  #6  
Antiguo 09-04-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Haré caso a Neftalí y estudiaré los Threads que no los he utilizado nunca. Como sabéis no soy profesional de ésto, sólo un aficionado y por lo que estoy viendo bastante TORPE.

Tan inútil que una vez intenté subir unos vídeos al foro y no se llegaron a ver. Si supiera hacerlo, grabaría el tiempo que tarda el programa en arrancar en windows, con las mismas instrucciones, arranca casi instantáneo.

Es mi primer programa para FMX y lleva las mismas instrucciones adaptadas a FMX que el que tenía hecho en Win. No esperaba que tardara tanto en arrancar.

Lo dicho, voy estudiar y ya os contaré.

Saludos.
Responder Con Cita
Respuesta



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
BASS Firemonkey Radio Player Delphi XE7 - Pantalla Negra en Android wolfran_hack FireMonkey 3 27-07-2021 18:04:30
pantalla negra en motorola droid a855 kurono Desarrollo en Delphi para Android 5 21-03-2015 00:15:39
Android SQLite pantalla negra Davidecr Desarrollo en Delphi para Android 9 17-03-2014 18:41:09
Delphi + WebCam + Pantalla Negra pape19 Varios 6 21-12-2012 01:32:00
Capturar Pantalla = Pantalla negra DarkDudae Gráficos 8 27-10-2008 12:29:36


La franja horaria es GMT +2. Ahora son las 13:54:10.


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
Copyright 1996-2007 Club Delphi