FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Liberar Memoria
Hola a todos:
Mi problema radica en que: tengo una aplicacion y creo los formularios al momento de mostrarlo, y lo destruyo en el evento onclose del mismo; lo hago de la siguiente manera: cuando ejecuto una opcion del menú que me llama el formulario "form1" hago estos: Application.CreateForm(TForm1, Form1); Form1.showmodal; y en el evento 'onshow' del form1, escribo lo siguiente: form1.free tambien lo he hecho: form1.destroy me produce un mensage que dice: project siscomp.exe raised exceptin class EaccessViolation with 'Access violation at address 00000009.White of addres 704B2CF9'. Process stopped. Use Step or Run to Continue. siscomp es el nombre de mi projecto, |
#2
|
||||
|
||||
Si form1 lo llamas y creas desde el menú, form1.free, tendrías que colocarlo en el evento OnClose de Form1, también bastaría con escribir:
Action:=CaFree; Un Saludo. |
#3
|
||||
|
||||
Intenta crear la forma de la siguiente manera:
1. Si "Form1" no es tu forma principal, Debes de quitarla de las "formas autocreadas", presionando Shift-Ctrl-F11 y luego click en la pestaña "Forms", Y pasandola de "Auto-create forms" a "Available forms". 2. Para crearla agrega el nombre de la unidad de "Form1" en el Uses de la otra unidad que llamara a "Form1". Supongo que es "Unit1". 3. Puede ser en un boton algo asi: Código:
Form1:=TForm1.Create(self); Form1.ShowModal; Form1.Free; Y deberia de ser asi: Código:
Action:=Cafree; Espero te sirva de guia //Caramba, mientras escribia Marcoszorrilla, ya te habia contesta
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ Última edición por jhonny fecha: 13-05-2003 a las 16:56:13. |
#4
|
||||
|
||||
Hola.
Además no es necesario referenciar la variable Form1 (si no pones ninguna referencia, se aplicará a la instancia actual del formulario). Simplemente pón : Free o Self.Free. (Sospecho que el problema lo tienes en la variable que referencia al formulario) NOTA: Yo prefiero utilizar el método Release en lugar de Free, aunque tengo que reconocer que desconozco las diferencias exactas entre los dos métodos. El que te desaconsejo es la utilización de Destroy. Saludos..
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#5
|
||||
|
||||
Cita:
// Saludos |
|
|
|