![]() |
¿¿Aplicacion no GUI. que no se cierre sola???
Hola. estoy viendo como hacer una aplicacion, que no
muestre una interfaz grafica. pensando en hacer un para un servidor FTP , para la pc donde vivo poder subir mis archivos de trabajo.. tengo este esqueleto basico,
Entonces, les pregunto, ¿ como puedo hacer que mi programa no se cierre, o finalize hasta que se le ordene finalizar.? el programa no se comparta como si fuese una aplicacion delphi normal esperando algo a que explicitamente se le ordene cerrarse. quiero que el ftp se quede escuchando en un puerto y si recibe el comando de cerrar, finalize la aplicación. gracias por su atención |
:confused: ¿Que tal con un bucle?
Aunque puede que necesitemos que la CPU respire:
|
Hola
Seoane gracias por tu atención este... como que no entiendo bien, como funciona eso de Mientras sea verdad ¿¿que ??? Esta criptico para mi.
//--Asi probe el codigo y funciona.
|
en mis tiempos de Turbo Pascal usaba un keypressed con un
While, lo que resultaba que al presionar una tecla o una determinada tecla (ESC) finalizaba la instrucción. Alternativas sencillas: usar un readkey o un comando SHELL (pause) al final.
Cerra es un boleano entonces:
|
MAXIUM
voy a probar lo que mencionas. |
Bien, si un bucle no es suficiente vamos a hacer las cosas a lo grande. Primero necesitamos crear una función para manejar las señales que son enviadas a la aplicación. Una como esta:
Aquí yo pongo una variable global (Terminar) a false como respuesta a todos los eventos. Tu puedes manejar esos eventos como prefieras, solo tienes que tener en cuenta que si la función devuelve FALSE la señal se pasa al siguiente manejador. Ahora que ya manejamos los eventos Ctrl+C, Close, Logoff y Shutdown, no estaría mal disponer de un bucle de mensajes en nuestra aplicación. Si vas a usar algún timer, o algún componente que maneje internamente mensajes, este bucle sera imprescindible. Lo primero vamos a crear una función similar al famoso "Application.ProcessMessages", algo así:
Ahora solo nos falta encajar todo esto en nuestra aplicacion la cosa quedaria mas o menos asi: Donde pone "Aquí haz lo que quieras" coloca tu código, solo recuerda, que si vas a colocar un bucle dentro de tu código, deberás tener en cuenta la variable Terminar y llamar de vez en cuando a la función "ProcessMessages" para vaciar la cola de mensajes. Por cierto, para cerrar la aplicación puedes usar Ctrl+C o la X de la ventana con la consola, da igual, la aplicación se cerrara limpiamente poniendo la variable Terminar a true y saliendo del bucle. |
Muy interesante, gracias Seoane
|
Hola,
Me sumo a lo dicho por JXJ, Seoane, muy interesante. Muchas gracias. :) |
una dudas mas
¿para cerrarlo, via codigo, digamos con sin ser una aplicacion tipo cosola?
ya me perdi. en esto :S gracias.. |
Cita:
|
por creerme bien picudo..
estoy re-revisando tu servidor web pico.. y en creer que puedo hacer un servidor tcpip. con indy. usando el dpr. y darle la opcion de desconectarse y cerrarse a si mismo usando un comando desde el cliente.. |
La franja horaria es GMT +2. Ahora son las 00:18:40. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi