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 05-04-2015
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
mantener aplicación en barra superior

hola, estoy intentando crear una pequeña aplicacion que me facilite el trabajo, me explico, hace unos días y después de bastante tiempo en paro, por fin vuelvo a trabajar, esta vez como vigilante de seguridad, bien el caso es que por las noches tengo que ir "picando" en determinados sitios con un lector de códigos que posteriormente se descarga al ordenador de la empresa, esto básicamente es para comprobar que hago mi ronda, estos detectores donde tengo que picar, están muy dispersos y alejados unos de otros y al ser muchos a veces tengo la duda de si ya he pasado por uno u otro detector. Pues bién, ayer me hice una pequeña herramienta que numera del 1 al 15 los detectores, con cuatro casillas checkbox para cada uno de ellos, así a medida que voy picando con el lector de códigos marco la casilla correspondiente y ya se que he pasado por ahí. El problema es que cuando ejecuto cualquier otra app del movil, todas las casillas de mi aplicacion se resetean, se desmarcan y la app se cierra. ¿Hay forma de hacer que la aplicación siga con las casillas que estén marcardas y que se vea el icono sobre la barra superior, junto a la hora, la bateria etc?

Gracias y un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #2  
Antiguo 05-04-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No das información suficiente.
Responder Con Cita
  #3  
Antiguo 05-04-2015
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Enhorabuena por el trabajo Daniel. Creo que tu aplicación debería guardar su estado, esto es, contar conque en un momento dado puede cerrarse u ocultarse. Cada vez que marques o desmarques una casilla, deberás actualizar el estado de la aplicación, algo así como "guardar las opciones", de manera que, cuando la aplicación arranque de nuevo, esta pueda recuperar el estado y "saber" qué casillas ya se marcaron y qué otras no.

Claro que no tengo mucha idea de cómo hacer esto en Delphi para Android, pero, creo yo que por ahí van los tiros, en lugar de tratar que tu aplicación se mantenga abierta o algo así. Piensa que la aplicación se puede cerrar acaso por varios motivos, incluso creo que Android puede cerrarla dependiendo de las necesidades del sistema. De modo que tu aplicación ha de guardar su estado (casillas marcadas/desmarcadas) cada vez que la utilices, garantizando que podrá recuperar el estado al iniciarse.

En fin, supongo que no he dicho mucho... pero tal vez puedas aprovechar algo de ello.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 05-04-2015
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Gracias dec, em principio digamos que salvaba los cambios con una app tercera, es decir, una app bajada de google play que me permita hacer capturas de pantalla, la verdad es que no necesito mas, solo capturar la pantalla con las casillas marcadas, sobre todo para no complicarme con android (que por cierto, ni idea) por eso simplemente buscaba hacer que se mantuviese abierta aunque use cualquier otra aplicación.

Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #5  
Antiguo 05-04-2015
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Hombre, pero, a primera vista, parece más complicado hacer una captura de pantalla que guardar una determinada opción... debe haber clases en Delphi que permitan guardar opciones independientemente del sistema operativo, también para Android, supongo. Espera un poco a algún compañero que sepa algo más de Android, verás que te pone sobre la pista de cómo guardar opciones y recuperarlas después. Esto parece más sencillo que capturar pantallas y también que mantener la aplicación en ejecución. Vamos, a mí me parece que tendría que ser más sencillo. Ya verás como así es.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #6  
Antiguo 06-04-2015
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
Create una simple base de datos sqlite con una tabla en la que guardas el estado de cada casilla

Revisa este manual para conectar a SQLite con FireDAC

De hecho, yo ahora estoy migrando los archivos .ini a sqlite, es super facil, igual o incluso mas potente, y los "usuarios normales" no van a poder meter los dedos como si podrian toquetear un ini. Y la misma tecnica que se usa para windows en escritorio serviria para cualquier plataforma en la que corra sqlite (en todos lados)

Este otro enalce tambien te puede servir, solo lo he mirado por arriba, pero parece que implementa una clase que interactua con una BD sqlite como si un archivo .ini se tratase

EDITO:

Otra alternativa, usando JSON

Última edición por AgustinOrtu fecha: 06-04-2015 a las 00:28:47.
Responder Con Cita
  #7  
Antiguo 08-04-2015
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Gracias AgustiOrtu, me pongo a revisar los enlaces, perdon por no contestar antes. Saludos.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #8  
Antiguo 10-04-2015
sowei sowei is offline
Miembro
 
Registrado: abr 2010
Posts: 21
Poder: 0
sowei Va por buen camino
Hola a todos
No sería más fácil para el caso tratado que guarde la información de los checkboxs en un ficherito tipo .ini o por el estilo, y olvidarse de acceso a bases de datos?
Lo digo por sencillez.
Responder Con Cita
  #9  
Antiguo 10-04-2015
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola, tengo otro problema...

Código Delphi [-]
fdQuery1.Open();
  fdQuery1.Insert;
  fdQuery1.fieldByName('idsensor').AsString:= '1.A'; //label1.Text;
  fdQuery1.FieldByName('hora').AsDateTime:= now;
  fdQuery1.FieldByName('sensor_activo').AsBoolean:= true;
  fdQuery1.Post;

Ejecutandolo bajo windows, ahora me dice que el dataset no está en modo inserción o editar ¿? En cuanto al "AsDateTime" no me acepta el "now" ni el "time", no da error, pero no guarda la hora exacta sino "0:00:00". Por otra parte en "(idsensor).AsString:= label1.text" no acepta el texto de la etiqueta, sino que manualmente (en codigo) tengo que decirle que es "1.A"

¿Alguna idea de por que estos errores? Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #10  
Antiguo 10-04-2015
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
hola sowei, lo que pasa es que los checkbox se resetean cada día a 0 es decir, se desmarcan y si los guardo en un archivo ini, al dia siguiente cuando cargue la aplicacion, se volveran a marcar todos los checkbox del dia anterior junto a la hora que se marcaron y eso no me sirve. Por ejemplo, supongamos que el ultimo lo marco hoy a las 23:59 y cuando de madrugada vuelva a hacer la ronda y empiece a marcar otra vez las casillas, estas deberán estar sin marcar.

Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #11  
Antiguo 10-04-2015
sowei sowei is offline
Miembro
 
Registrado: abr 2010
Posts: 21
Poder: 0
sowei Va por buen camino
Hola daniel
Bueno, eso depende de la construcción del programa. El fichero ini podría tener solo los valores de los checks, con lo cual tendrías este problema. Pero mejorándolo podrías crear una sección diferente para cada día. O incluso un archivo diferente para cada día.
Vamos, que depende del tiempo que inviertas claro jejeje
Saludos
Responder Con Cita
  #12  
Antiguo 10-04-2015
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
Hola de nuevo danielmj

Yo prefiero utilizar sentencias SQL para cualquier operacion CRUD. En tu caso tambien me crearia otro FDQuery que utilizaria para este fin, sino perderias el SELECT

Código Delphi [-]
  with TFDQuery.Create(NIL) do
  begin
    Connection := TuConnectionAca;
    SQL.Text := ' INSERT INTO LaTabla (CampoTime) VALUES (:Hora) ';
    ParamByName('Hora').DataType := ftTime;
    ParamByName('Hora').AsTime := Hora; // Hora es un TTime
    Execute;
    Free:
  end;

Probalo de esa manera a ver si te resulta

Saludos
Responder Con Cita
  #13  
Antiguo 13-04-2015
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola Agustin, he probado lo que me sugieres y me da error, me dice que el parametro "hora" (por ejemplo) no existe o no se encuentra, lo mismo ocurre con elr esto de los campos. En cambio si uso la sintaxis "FieldByName" no da error pero la hora sigue guardandola como "0:00:00".

Perdona que no haya podido contestar antes, pero llego muerto de sueño a casa después de estar currando por la noche y lo que quiero es dormir y luego tengo clase, así que voy justo de tiempo.
Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #14  
Antiguo 13-04-2015
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
Eso me pasa cuando me olvido de asignarle al query la conexión
Responder Con Cita
  #15  
Antiguo 21-04-2015
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola de nuevo, perdon por el retraso en contestar, he seguido "peleandome" con sqlite y debo confesar que me ha ganado sobre todo por que es algo que necesito cuanto antes y enfrascarme en estudiar sqlite con adroid bajo delphi no es factible en este momento, conclusión: He optado por crear un listbox donde se van agregando la hora cada vez que paso por un sensor de o lector de rondas (os recuerdo que estoy actualmente como vigilante), total que he pensado que sería mejor guardar esos datos en un archivo txt con la siguiente linea:

Código Delphi [-]
TPath.Combine(TPath.GetDownloadsPath, 'picas.txt');

El problema es que no guarda nada. ¿que hago mal? por supuesto estoy usando la unidad System.IOUtils tal como se indica en este otro hilo
¿alguna sugerencia? Os dejo una captura de como estaría a fecha de hoy.



Un saludo.

Edito: me falto el "saveToFile" por eso no guardaba nada, pero ahora que lo he solucionado he agregado lo siguiente:

Código Delphi [-]
DateToStr(date)+' picas.txt'

El preblema es que el mes el dia y año, lo separa con "\" y android lo interpreta como directorios y claro si ese directorio "\4" (que representa a abril) no existe me da error. ¿que puedo hacer?
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.

Última edición por danielmj fecha: 21-04-2015 a las 18:12:43.
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
Barra superior darta Varios 4 18-08-2010 18:24:53
Mantener icono en la barra de tareas odrack Varios 0 19-11-2008 00:10:22
Mantener viva la aplicación HombreGordo Varios 9 04-11-2008 20:57:24
Mantener Aplicacion Arancada ramonibk API de Windows 10 26-10-2004 18:25:00
Problema con la barra superior rvinfo Varios 4 30-11-2003 08:39:14


La franja horaria es GMT +2. Ahora son las 16:19:42.


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