FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Eliminar De Memoria Form Mdi
Hola amigos expertos, me encuentro aqui nuevamente necesitando de su ayuda. Mi priblema es el siguiente:
Estoy manejando forms del tipo MDI. Tengo un form fsMDIForm que es el principal de mi aplicación. Desde el cual invoco otros forms del tipo fsMDIChild. El problema es que cuando cierro uno de los forms fsMDIChild, y luego intento abrirlo de nuevo desde el form principal me arroja un error que dice mas o menos "Acces violation at address....". Probablemente la razón por la que me aparese este error sea por que no estoy eliminando de la memoria el form hijo que creo cuando lo invoco. La cuestión es, cómo puedo asegurarme de que cuando cierro un form fsMDIChild, éste se elimine de la memoria, para de ésta manera, cuando trate de volverlo a invocar me permita simplemente volverlo a crear. Alguien podría ayudarme por favor..... |
#2
|
||||
|
||||
Hola, en el evento OnCLose del form Child pones lo siguienteÑ
Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#3
|
||||
|
||||
En el evento OnClose del formulario a cerrar pon lo siguiente:
Código:
Action:= caFree;
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. |
#4
|
|||
|
|||
Hola enecumene, gracias por tu atencion. La instruccion que me dices ya la he utilizado, pero pensé que algo mas me hacía falta, por que despues de que cierro el form no puedo volver a abrirlo. Entonces, creo que el problema es otro, mira, te voy a explicar. Desde el form principal donde invoco el form "Registrar Productos" (por mencionar un ejemplo), he puesto este código:
Esto con la finalidad de validar que una vez que el form 'Registrar Productos' haya sido invocado, si el usuario intenta invocarlo de nuevo, no me cree otro form nuevo. De lo contrario cada vez que el usuario repita esta acción se estaria creando un form. Crees que sea por esto que no me permite volver a crear el form cuando lo cierro ???? |
#5
|
||||
|
||||
¡Vaya! Mi computador va lento y se queda un poco pillado!!!
Por cierto, en éste post de uno de los hilos que has abierto para tratar el tema, te indiqué un artículo de la wikipedia para que leyeras, donde se explica esta cuestión. ¿Lo has leído?
__________________
Saludos, Gabo A menos que se indique lo contrario, el código estará hecho en C++Builder. |
#6
|
|||
|
|||
Hola Gabo, claro que leí el articulo que me recomendaste. Pero pensé que algo me estaba haciendo falta, es por eso que realizo esta consulta.
|
#7
|
||||
|
||||
Hola, intentaste de esta forma?:
o
Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#8
|
|||
|
|||
Las dos opciones que me diste me funcionan, enecumeme. Y cada vez que cierro el form, puedo volverlo a abrir. El problema es, que no puedo evitar que cada vez que invoque el form "Registrar Productos" (por ejemplo), me esté abriendo o creando una nueva ventana. Es ésto lo que no puedo solucionar.
|
#9
|
|||
|
|||
Hola...
El problema que puedes tener es que cuando la variable Form4 después de destruir la forma no queda apuntando a nil, así que al hacer:
la segunda vez, esta te devolverá falso... Para corregir esto puedes hacer algo como esto en Form4 Agregas el evento OnDestroy:
Saludos... |
#10
|
||||
|
||||
Esto es una adaptación de un código que tenía en una aplicación mdi, que a la ves es una adaptación de un código que saqué de la cara oculta del delphi 4 que trata sobre el tema.
Te sujiero que busques en ese libro si lo de abajo no te funciona.
Saludos
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como llamar form desde otros form y regresar a la linea que se estaba ejecutando | Willy Rodrigo | C++ Builder | 1 | 03-08-2007 19:36:23 |
Eliminar ciertos datos de la memoria RAM | dec | Seguridad | 63 | 30-03-2007 03:42:29 |
Error de memoria al llamar otra form | dmagui | Conexión con bases de datos | 18 | 26-09-2005 22:43:27 |
eliminar opcion de eliminar en un dbgrid | morfeo21 | Varios | 3 | 14-07-2005 17:05:32 |
Eliminar del memoria los querys | Aura | OOP | 4 | 01-04-2004 17:40:40 |
|