Ver Mensaje Individual
  #4  
Antiguo 19-01-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Reputación: 22
Bicho Va por buen camino
Hola,

La verdad, no pillo el problema o la dificultad que tienes.

Pero si dices
Cita:
Empezado por Ñuño Martinez
Como el trabajo (por ahora) es muy corto el progama termina casi antes de mostrar la ventana, en ambos casos, así que no sé si lo hace bien o no.
Si tan poco tiempo dura, ¡no muestres nada!
Ahora me explico:

Cita:
Empezado por Ñuño Martinez
Tengo que hacer un programa que funciona solo. Se le mete en el "programador de eventos" para que se ejecute, por ejemplo, cada 24h y él trabaja solito y cuando termina su tarea pues se cierra y hasta la siguiente. Se me ocurrió que, en lugar de ser silencioso, abriera una ventana principal con TMemo de sólo lectura en el que fuera escribiendo qué es lo que va haciendo y, cuando termine, que lo vuelque todo en un archivo de texto a modo de cuaderno de bitácora (log). Si se produce un error durante la ejecución, el programa no se cierra y así se puede ver cuándo ha fallado y qué es lo que estaba haciendo cuando se rompió. Hasta aquí todo bien.
Yo casi todas las aplicaciones que realizo en mi trabajo son de este tipo, o están en marcha todo el día funcionando solos, o se ejecutan a una hora determinada, el programador de tareas lo abre, y cuando termina, se cierra la aplicación y hasta la próxima ejecución.
Bien, no me parece buena idea lo de guardar el log al final de la ejecución, sino siempre que añadas algo.
Así tengo una función, a la que le pasas como parámetro el texto que quieres guardar (como muy bien has hecho tú tambien), y esta función abre el fichero de log, inserta esa linea, junto con la fecha y hora del sistema (usando formatdatetime para una mejor lectura), y graba el fichero.
Es un fichero de texto y su acceso, como sabes, es muy rápido, y los programas no relentizan nada.
Lo digo, porque así siempre tendrás el fichero con el log actualizado, si lo guardas en un memo, por ejemplo y al final lo guardas, te arriesgas a que por cualquier cosa, se cierre de mala manera (KillTask, apagón, etc) y pierdes el log; sabrás que ha ido mal y no tendrás el log para averiguarlo.
Además de esta manera, no necesitas visualizar una ventana con el log, si es allí donde tienes los problemas.

Como comentario al código que has puesto, sólo decirte que no parece buena idea, mostrar la ventana que deseas en el OnCreate de la aplicación u OnShow, sino mostrarlo cuando la aplicación esté activa, es decir, en el OnActivate.

Bueno ya me comentas si te he entendido, si me explicas que ocurre y seguimos conversando y si te sirve de ayuda mi experiencia previa.

Saludos
Responder Con Cita