FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#21
|
||||
|
||||
estuve leyendo mastering delphi
y en un ejemplo dice que para destruir un formulario basta con colocar en el evento Close action := caFree frmBalance := nil aqui.. en la pagina 359 entonces asi lo estaba haciendo desde un principio
__________________
Dulce Regalo que Satanas manda para mi..... |
#22
|
||||
|
||||
Liberar un objeto dentro de su propio destructor no tiene sentido. Si se llama al destructor es porque el objeto ya está siendo liberado.
// Saludos |
#23
|
||||
|
||||
Cita:
|
#24
|
||||
|
||||
Hola oscarac.
Me gusta más:
Agrego un Koan de Ian Marteens que leí hace un buen tiempo y me pareció muy interesante: ¿Hay vida después de la muerte?. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 06-04-2011 a las 20:22:06. |
#25
|
||||
|
||||
Cita:
Cita:
Lo que haces vos esta bien, porque vos abris las ventanas con Show, entonces las liberas cuando se cierran en el OnClose (con action:=caFree) Lo que NO podes hacer es cambiar la instruccion action:=caFree; por frmBalance.Free; porque ahi si te va a dar error. Cuando se usa ShowModal para mostrar las ventanas, la siguiente linea al ShowModal no se ejecuta hasta que se cierra la ventana, entonces se hace la liberacion en la linea siguiente:
por ultimo, de la ayuda de Delphi sobre el metodo Free... Cita:
Saludos |
#26
|
||||
|
||||
Yo tambien uso el modelo de ecfisa, pero cabe destacar que tambien se puede hacerlo todo en el mismo evento OnClose de la forma siguiente:
EDITO: Viendo éste asunto me pregunto sino sería util un método ReleaseAndNil?? Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#27
|
||||
|
||||
Cita:
es una mala práctica. Una clase no debería hacer referencia a una instancia en particular. Yo sé que esto es muy común pero no debería hacerse de esta manera. De entrada, no debería usarse la variable Form2 que el IDE crea en automático por la simple razón de que no es bueno usar variables globales. Si el formulario principal requiere una instancia de Form2 y necesita tenerla reservada, entonces se declara una variable de tipo TForm2 (o, mejor, de tipo TForm) como campo privado. // Saludos |
#28
|
|||
|
|||
Hola
Cita:
Saludos... |
#31
|
||||
|
||||
Cita:
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#32
|
||||
|
||||
Cita:
// Saludos |
#33
|
||||
|
||||
Cita:
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Última edición por rgstuamigo fecha: 07-04-2011 a las 15:27:31. |
#34
|
||||
|
||||
Cita:
1. Quien se pone nulo no es el objeto sino una referencia al objeto. Diferencia sutil pero importante. Puedes tener múltiples referencias a un mismo objeto, así que, ¿cuál de ellas es la que se pondría en nulo al momento de destruir el objeto? Eso es algo que puede decidir quien creó al objeto, mas no el objeto en sí. 2. Como no sea una suerte de patrón singleton, por lo general puedes tener varias instancias de una misma clase. Aún en el caso de formularios que en un determinado contexto quieres abrir una sola vez. Entonces, ¿a cuál de estas instancias se debe referir el destructor de la clase? Por otra parte, Cita:
Yo diría, en una especie de resumen, que las referencias a un objeto son entidades ajenas a la clase del objeto (y al objeto mismo). // Saludos |
#35
|
||||
|
||||
Cita:
Cita:
Si por ejemplo instanciaramos un objeto de la clase "TChildForm" de la siguiente forma: Para que tu solucion funcione tambien con "OtroForm" deberiamos modifcar el método Notification de la siguiente forma: Eso quiere decir que por cada nueva referencia tengo que aumentar código al método Notification..y eso no es ideal amigo seamos realista. En otras palabras estamos restringidos a crear un objeto solo atraves de la variable "ChildForm", si quisieramos que la cosa siga funcionando y evitar agregar más código; y..pues es practicamente lo mismo que hacer uso de la varible global que gerera delphi, asi que por ese lado no hay diferencia. Bueno... para no hacerla muy larga la cuestion...pues voy a volver a hacer la pregunta: ¿Es posible implementar una solucion que esté dentro de la misma clase sin utilizar alguna variable en sí? es decir al momento de Destruir(Action:=caFree el Objeto hacer que la referencia del objeto sea nula(nil)?? ¿será posible eso?
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#36
|
||||
|
||||
Dices esto:
Cita:
Cita:
// Saludos |
#37
|
||||
|
||||
Cita:
Por favor responde la pregunta...sin vueltas...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#38
|
|||
|
|||
Hola...
Cita:
Saludos... |
#39
|
||||
|
||||
No maeyanes.. eso es fuera de la clase.. y aparte estamos hablando de destruir con el método Release y no con Free...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#40
|
||||
|
||||
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Forms: FreeAndNil ó Release y la validación Assigned? | jbautista | Varios | 13 | 09-02-2010 17:33:03 |
Assigned y Free | gluglu | Varios | 4 | 14-05-2007 21:03:37 |
Problemas FreeAndNil | OscarG | OOP | 4 | 09-11-2005 12:48:46 |
Free Pascal 2.0 | marcoszorrilla | Noticias | 6 | 19-05-2005 12:04:51 |
Componente free... | Mauro® | Varios | 10 | 12-06-2004 13:15:24 |
|