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 09-04-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 548
Poder: 17
jhonalone Va por buen camino
-Bueno.
Ahora recuerdo por qué tengo puesto:
Código Delphi [-]
 j:= Random(9)+1; // No recuerdo por qué +1 pero en VCL lo tengo así ¿?  hace años (a lo mejor esto sobra)
Es porque el número recibido de Random está entre 0 y 9-1.
Saludos.
Responder Con Cita
  #2  
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
No se que haran algunas de las funciones a las que invocas dentro de ese codigo (Obvio y Valido por ej)

La otra solucion es que "tu" crees tu form splash

Hay un articulo que dice como hacerlo en FMX: revisalo
Responder Con Cita
  #3  
Antiguo 10-04-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 548
Poder: 17
jhonalone Va por buen camino
Hola Agustín.
Gracias por tu interés.
En Madrid son mas de las 12 de la noche y estoy cansado. Mañana reviso el enlace.
Las funciones de comprobación son muy simples.
Te pongo un par de ellas de las más complicadas:
Código Delphi [-]
 function Fila(Tablero: TTablero; y,n: Integer): boolean;
var
  x: Integer;
begin
  Result:= TRUE;
  x:= 0;
  while (x < NUM_COLUMNAS) and Result do
  begin
    if Tablero[x,y] = n then
      Result:= FALSE;
    inc(x);
  end;
end;

function Valido(Tablero: TTablero; x,y,n: Integer): boolean;
begin
  Result:= Fila(Tablero,y,n) and Columna(Tablero,x,n)
    and Cuadrante(Tablero,x,y,n);
end;

function Obvio(Tablero: TTablero; x,y: Integer): Integer;
var
 i,j,n: Integer;
begin
 j:= 0; n:= 0;
 for i:=1 to 9 do
   if Valido(Tablero,x,y,i) then
   begin
     n:= i;
     inc(j);
   end;
 if j=1 then
   Result:= n
 else
   Result:= 0;
end;

He estado haciendo mediciones de tiempo en distintos dispositivos:
En la Tablet Samsung Galaxy Tab3 tarda 31/32 seg.
En teléfono Samsung Galaxy S III mini 12 seg.
En teléfono Samsung Galaxy A3 7 seg.

Está claro que depende del procesador implicado.

Creo que me va a servir el enlace que me has dejado. Estoy convencido de que sólo necesito no dejar la pantalla en negro, para que el usuario no quede sorprendido y desinformado.

Buenas noches para mi y buenas tardes para ti.

Saludos.
Responder Con Cita
  #4  
Antiguo 10-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
Es que ese algoritmo, a simple vista solamente, ya se ve que tiene un orden de tiempo de ejecucion mucho mas elevado de lo que te parece

Debe haber alguna magica propiedad matematica que permita generar estos tableros de una forma mucho mas rapida

Hay bucles en los que invocas a funciones que invocan a mas bucles... y esto se repite con varias veces de anidamiento
Responder Con Cita
  #5  
Antiguo 10-04-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 548
Poder: 17
jhonalone Va por buen camino
Hola Agustín.
Seguro que tienes razón y existe alguna manera más eficiente de generar el tablero.
Pero seguramente no sea lo que más retrasa. Te explico.

He hecho comprobaciones de tiempo con la Tableta, que es el dispositivo más lento, para ver las diferencias.

Como te dije, he hecho una prueba implementando una pantalla de bienvenida en un form con un botón que es el que llama al form donde está implementado todo el programa con Forrm2.Show. En el procedimiento OnShow hace toda la generación del programa incluido el generador del tablero. Los resultados son los siguientes:

En cargar todo el programa y la pantalla de bienvenida tarda 18/19 seg.
Al pulsar el botón llama al procedimiento OnShow y tarda 11/12 seg.

Evidentemente, la mayor parte del tiempo de espera se la lleva la carga del programa.
Te recuerdo que el programa, sin pantalla de bienvenida, en Windows tarda en cargar y presentar el primer tablero UN SEGUNDO ESCASO.

Voy a estudiar el enlace que me dejaste y te cuento.

Saludos.
Responder Con Cita
  #6  
Antiguo 10-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
Cuantos y que componentes tenés en el form?
Responder Con Cita
  #7  
Antiguo 10-04-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 548
Poder: 17
jhonalone Va por buen camino
Hola a todos.

Agradeciendo el desinteresado interés que habéis puesto ambos en ayudarme.

Para los que defienden lo "indefendible" (Neftalí) Para los que creen que tengo cosas raras y pesadas en mi código (Agustín)

Para el que quiera escucharlo.

He hecho más pruebas.

Código Delphi [-]
unit Principal;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects,
  FMX.Controls.Presentation, FMX.StdCtrls, FMX.Layouts;

type
  TPrin = class(TForm)
    ScaledLayout1: TScaledLayout;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Prin: TPrin;

implementation

{$R *.fmx}

end.

Aquí tenéis un código muuuuuuiiiiii peeeeesaaaadoooo.

Ninguna TLabel tiene más de 4 palabras.

¿A que no sabéis lo que tarda en aparecer la pantalla en mi tableta Samsung GalaXY Tab 3?

Bien. Probarlo vosotros y la solución mañana.

Saludos.
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
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 08:38:18.


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