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-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.021
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 01: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 08-04-2015
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola, estoy tratando de crear la base de datos con el plugin para firefox sqllite manager, pero no me aclaro, ya he creado la base de datos y la tabla con 3 campos, pero no sé como ni donde introducir los datos y por otra parte, mirando este enlace veo que usa la base de datos empleados con formato "s3db", ¿como puedo crear una bd con este mismo formato? lo siento pero estoy bastante pegado con firedac y con android, siempre he usado ado y windows, asi que me veo en paños menores. Espero podais ayudarme.

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
  #9  
Antiguo 08-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
Yo para trabajar con SQLite utilizo este programita, que es super liviano y totalmente funcional:

SQLite Administrator

Saludos
Responder Con Cita
  #10  
Antiguo 09-04-2015
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola, ya estoy usando sqllite administrator y he creado una base de datos llamada "picas" con una tabla de igual nombre que contiene los campos: idsensor (text),sensor_activo(boolean),hora(time). Luego he creado una consulta sql con el siguiente codigo (muy simple):

Código SQL [-]
SELECT * FROM PICAS

Luego en delphi, agrego un FDConnection al que le indico que el drver será "SQLlite" pulso sobre el botón "test" y todo parece ir bien. Ahora viene el problema, cuando entro en el biding editor para crear un data source, selecciono SQL siguiendo este enlace y al seguir las instrucciones que en el aparece, me pasa lo que se ve en la captura.



Dos datos a tener en cuenta, la tabla está vacía, es decir sus campos no tienen datos y en la lista desplegable del binding editor "command text" no aparece nada.

¿que estoy haciendo mal?
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
  #11  
Antiguo 09-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
Nunca use ese Wizard para enlazar componentes visuales con fuente de datos

En Command Text no te deja escribir nada?
Tenes Connected := True en tiempo de diseño?

Sino mete un TFDQuery en el formulario, en SQL metele el SELECT que dejaste mas arriba y enlaza por Live Bindings contra ese FDQuery
Responder Con Cita
  #12  
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 agustin, no, en el command text no puedo escribir nada, bueno, hablando mas exactamente, si puedo escribir pero no acepta lo que escribo. Y si, connect está a true. Ahora voy a probar eso que me dices a ver que tal. Gracias.
__________________
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
  #13  
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, creo que la cosa empieza a andar, solo una duda en ADO para almacenar los datos en un campo escribía algo así:

Código Delphi [-]
 tblClientes.FieldbyName('Observaciones').AsString:= lo que sea

Pero intento buscar algo parecido en firedac (y siempre teniendo en cuenta que es bajo android y para mi movil) pero no sé por donde tirar, he escrito lo siguiente ¿es correcto?

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  fdQuery1.Open();
  fdquery1.Fields.Fields[0].Text:= label1.Text;
  fdQuery1.Post;
end;

Error de compilacion no da, pero cuando se intenta cargar en el movil, sale el logo (la llama de fuego) y directamente se cierra ¿?

¿Alguna sugerencia? Gracias y 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.

Última edición por danielmj fecha: 10-04-2015 a las 00:35:28.
Responder Con Cita
  #14  
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
Lo mas probable es que te falten alguno de estos componentes/unidades (es lo unico que odio de FireDAC, acordarse de agregar esto)

En al menos una unidad de tu proyecto en la clausula USES deben estar presente las unidades:
- FireDAC.DApt -> Sin esto no se pueden crear objetos como el TFDQuery
- Driver link para tu BD seleccionada. Esto puedes agregar manualmente la unit de la misma manera que la anterior, o soltar un el componente y la unidad se agrega sola (recomiendo agregar el componente)
En el caso de SQLite o bien agregas un componente TFDPhysSQLiteDriverLink o bien agregas la unit FireDAC.Phys.SQLite
Si fuera por ejemplo MS SQL Server agregas un TFDPhysMSSQLDriverLink o bien la unit FireDAC.Phys.MSSQL

- Un componente TFDGUIxWaitCursor. Este componente lo que hace es cambiar el cursor del mouse cuando "FireDAC trabaja". Desconozco porque es obligatorio, eso es todo lo que dice la docwiki

Te recomiendo que antes de mandar a tu dispositivo la aplicacion compiles y ejecutes la misma para Windows. Simplemente agregas la plataforma Win32 (o Win64) en el proyecto, y la ejecutas en Windows, todos estos errores tambien pasan en Windows

Ademas, en Windows podes ver las excepciones, en Android muchas excepciones hacen que la aplicacion crashee y android la cierra y no te dice nada del error

La forma en la que estabas asignando

Código Delphi [-]
tblClientes.FieldbyName('Observaciones').AsString:= lo que sea

Es la correcta

Saludos
Responder Con Cita
  #15  
Antiguo 10-04-2015
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Gracias Agustin por tu ayuda, ya parece que va saliendo el codigo, pero me encuentro con un problema, y es el campo hora, si escribo esto:

Código Delphi [-]
fdQuery1.FieldByName('hora').AsDateTime:= Time;

Me guarda 0:00:00 y no la hora correcta, lo mismo pasa si en vez de "Time" uso "now" ¿sabes por qué?
voy a seguir investigando, 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
  #16  
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
  #17  
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
  #18  
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
  #19  
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
  #20  
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
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
Barra superior darta Varios 4 18-08-2010 19:24:53
Mantener icono en la barra de tareas odrack Varios 0 19-11-2008 01:10:22
Mantener viva la aplicación HombreGordo Varios 9 04-11-2008 21:57:24
Mantener Aplicacion Arancada ramonibk API de Windows 10 26-10-2004 19:25:00
Problema con la barra superior rvinfo Varios 4 30-11-2003 09:39:14


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


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