FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Residente
Hola, al ejecutar un programa desde el IDE todo funciona bien, pero al ejecutarlo el solito, cuando se cierra se debe de quedar algo residente en la memoria de tal forma que ya no se puede ejecutar de nuevo a no ser que con el Administrador de Tareas elimine el proceso. Alguien sabría dóde tengo que mirar o algo?.
Muchas gracias. |
#2
|
||||
|
||||
Y cuando lo cierras que código tienes.
Sino das más datos. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
Hola, no sé a qué te refieres en cuanto a lo del código. Solo veo que cuando lo cierro, es como si se cerrase bien, pero al volver a ejecutarlo aparece la pantalla como si quisiera iniciarse, pero vuelve a desaparecer, lo único que veo con respecto al programa, con el Administrador de Tareas o un Visor de Procesos, es que hay tantos procesos de este programa como los que yo he intentado ejecutar y hasta que no los elimino todos no puedo ejecutarlo y entonces lo hace bien claro, pero luego al cerrarlo vuelve la misma historia, que tengo que eliminar ese proceso manualmente.
En cuanto a lo de la "Guía de Estilo de los Foros" que pones al final es porque he hecho algo mal?. Gracias. |
#4
|
||||
|
||||
hola....
Cita:
aparte de todo esto yo te sugeriria checaras que no hubiera algunas cosas "externas" que estuvieran causando algun fallo a tu aplicación y que no necesariamente fueran de programación, como por ejemplo archivos basura que estuvieran impidiendo la buena compilación de tu programa... saludos... |
#5
|
||||
|
||||
Según te ha explicado muy bien Vic_ia, no es que hayas hecho nada mal, es mi firma es decir en todos los mensajes que escribo sale exactamente lo mismo.
En cuanto a que des mas detalles como te indicaba yo y también lo hace Vic_ia, también puede ocurrir que crees un determinado componenente y luego no lo liberes correctamente...... Si no tienes mucha experiencia y la aplicación tiene pocos formularios, copiala a otro carpeta, dejas solo el menu activo sino falla, le vas añadiendo los formularios que tienes uno a uno y en el momento que falle sabrás a partir del uso de que formulario se ha producido el error. Quiero decir, añades un formulario, recompilas, abres aplicación utilizas todas sus funciones y cierras así hasta obtener el fallo.... Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#6
|
|||
|
|||
Hola,
Si es un problema de que quedan forms abiertos algo sencillo sería realizar un procedimiento que recorra todos los forms del objeto screen y que los cierre al salir de la aplicación. Saludos...
__________________
Suerte .: Gydba :. |
#7
|
|||
|
|||
Hola, bueno, lo primero gracias a todos y lo segundo es que en uno de los formularios utilizo el CX-Server de Omron para comunicar con un autómata y por lo visto ese se queda residente. Lo que no sé es como lo voy a eliminar al
cerrar la aplicación. Saludos. |
#8
|
||||
|
||||
Si estas seguro que ese es el problema, podes valerte del evento onClose del formulario principal, o bien del que contiene el server, y asegurarte de cerrarlo, desactivarlo o lo necesario para que "caiga", que en todo caso, debiera estar documentado por el fabricante del componente.
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#9
|
||||
|
||||
Preguntonta ¿liberas los form de la memoria en tu código?
|
#10
|
||||
|
||||
Cita:
En un esquema de formularios independientes, recomiendo que los formularios sean“propiedad” del objeto Application, si esto es posible, este objeto se encargará de liberarlos cuando este se destruya. http://www.clubdelphi.com/foros/showthread.php?t=4296 Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#11
|
|||
|
|||
Hola, con lo diberar las Forms no sé a que te refieres, lo que yo he hecho ha sido añadir unas cuantas Forms además de la principal, en lo de Opciones de Proyecto las he puesto que se auto creen, cada una se está ejecutando a su aire y cuando las necesito, desde el principal las saco a primer plano con un p.e. fPLC.Show que es una de ellas.
Cuando quiero terminar, cierro las que están haciedo algoy luego la principal. De todas formas, hay dos cosas para mí raras, una es que cuando lo ejecuto desde el IDE todo se cierra y termina perfectamente y la otra es que la form que tiene el CX-Server, si la ejecuto ella sola, como proyecto independiente, también se termina todo felizmente, por lo que creo que aparte de hacer fPLC.Close hay que hacer algo más. Saludos. |
#12
|
||||
|
||||
Cita:
Cuando haya que activar un formulario de los disponibles:
En el evento OnClose del formulario:
Para que libere todos los recursos que estuviera utilizando. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#13
|
||||
|
||||
Me refiero a que cuando termines de usar el form lo descargas de memoria... lo que yo hago es crearlos y liberarlos cada vez que necesito entre bloques try... finally... por ejemplo
Miform := TMiform.Create(Application); try Miform.ShowModal; finally Miform.Free end; y por su puesto en project ----> option no esta disponible al abrir la aplicación. De esta manera me aseguro que no quede nada en memoria Saludos |
#14
|
|||
|
|||
Mira, lo que sucede es que aparte de la Form principal están corriendo tres forms que cada una esta está haciendo una serie de cosas y que se comunican con la principal, y que cuando necesito trabajar con una de ellas la pongo activacon un .Show no modal.
De hecho la principal está en un monitor y las otras en otro. Saludos y muchas gracias. Por cierto si pudiéras ayudarme en la consulta que he hecho "Esperar a terminar algo " sería ya estupendo. |
|
|
|