![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#8
|
||||
|
||||
|
Buen día,
Personalmente estoy de acuerdo con lo expresado por Roman en el post #9 del hilo que enlazo aquí Sin embargo hay una solucion que yo utilizo para evitar lidiar con los FreeAndNil, "releases" mal ubicados. y es la siguiente: 1) Creo un Tform1 que es el MDIform y un tform2 que es el MDIChild 2) Elimino la variable automática que crea el Tform2 (form2), como sugiere ElKurgan 3) en el evento onclose del Tform2 agrego la linea: Action:= caFree; 4) Para efectos de la prueba agrego dos botones u opciones de menú en el form1. a) el primer boton instancia formularios TForm2 sin asignarlos a variables (pues se liberarán con el Onclose.
b) el segundo crea un formulario asignado a una única variable llamada MyFormX
PERO...!!! éste útlimo código solo funcionará una vez pues el Action:=caFree, libera la memoria pero la variable queda asignada por tanto Assigned(MyformX) solo será falso la primera vez... entonces aqui utilizo un truco que me parece bastante seguro: Utilizo una variable de clase para indicar si el formulario está instanciado o no
y en el Form1 cambio el llamado al boton:
De ésta manera quedan asi los códigos Form1:
Form2:
|
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| forma de programar no se si es la correcta ? | gulder | MySQL | 4 | 05-04-2016 17:49:51 |
| Liberar Tlist de forma correcta | BDWONG | Varios | 3 | 01-11-2014 17:28:46 |
| Forma correcta de conectar a la base.. | linuxtin | Conexión con bases de datos | 4 | 19-07-2012 20:30:20 |
| Crear formularios de forma dinamica | istradlin | Lazarus, FreePascal, Kylix, etc. | 4 | 06-12-2007 15:30:40 |
| Como destruir o liberar una forma | maguib | Varios | 1 | 11-03-2005 19:39:02 |
|