Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
¿Como Destruyo Un Objeto?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje ¿Como Destruyo Un Objeto? 
 
Mi pregunta es como destruyo un objeto ya creado para poder liberar la memoria utilizada,tengo entendido que es con free pero no tengo idea como , si alguien puede ayudarme y si pueden subir codigo que mejor les estare muy agradecidos
 



 
cyberx0x - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Destruyo Un Objeto? 
 
Hola
El método _free no es para destruir objetos. El método _free se ejecuta cuando el evento se destruye para deshacer algo que hiciste al crearlo (por ej. cerrar un stream que abriste al crearlo).

Para destruir un objeto muchos objetos tienen el método .delete
Dim T as new textbox ---> al hacer esto se crea un nuevo objeto T de clase textbox y se ejecuta _new
...
T.delete ---> eliminas el objeto T y se ejecuta _free

Si no es puramente un objeto, pero es un stream lo destruyes al cerrarlo por ejemplo. Los stream no se destruyen. Se cierran. Los sockets, los ficheros, etc son streams de diferentes tipos. Por eso en un socket no encontraras el método .delete pero encontrarás el .close
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Destruyo Un Objeto? 
 
Mira lo que pasa es que tengo un algoritmo genetico que usa arboles binarios, al principio creo unos 30 de esos arboles despues apligo el genetico y los arboles que no me sirven los tengo que borrar si no se me satura la memoria, como le hago para destruir esos arboles que ya no me sirven
 



 
cyberx0x - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Destruyo Un Objeto? 
 
No sé muy bien lo que es un arbol genético.

Me puedo imaginar que quizá es un esquema de padres/hijos/nietos. Igual si, igual no, igual tiene muchas mas implicaciones.
En lo que se refiere a informática ¿Estas hablando de un treeview y lo que quieres es borrar una rama? ¿Estas hablando de un columnview y lo que quieres es borrar unas filas? ¿Estas hablando de objetos diversos esparcidos por un formulario?

Deberías ser más concreto en tus preguntas y aportar ejemplos de tu código para poder ver cómo abordar tu problema.

Mensaje moderado por Administrador
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Destruyo Un Objeto? 
 
Creo que está creando objetos en memoria que serian como "entes" que contienen una serie de información, esta información se cruza con otros "entes" como si se reproduciesen obteniendo un nuevo ente con un mix de las caracteresticas, que tendrian una información nueva, mejor o peor.
Luego un algoritmo recorre los entes y comprueba su "peso" o su calidad descartando los peores elementos (como con la selección natural o artificial), dejando algunos malos para evitar estancamientos posiblemente.
Supongo que lo que quiere saber es como eliminar completamente los entes o genes, los objetos que ya no son necesarios.
En vb6 seria un
Set objEnteMalo = Nothing
Es una suposición.
 



 
maikl - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Destruyo Un Objeto? 
 
Pero el problema no es seguramente entender el algoritmo, sino entender qué clase de objetos utiliza y cómo los genera... llámese colección, array, o la clase de objeto que sea, para poder determinar la manera de destruírlos y liberar recursos.

Cuando se plantea un problema, es muy conveniente concretar mucho más, no ser tan ambiguo y si es posible adjuntar el código que empleas, o al menos un pseudocódigo. Es mi opinión y creo que la de muchos. De otro modo no será posible ofrecer ayuda alguna, por mucho que queramos.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Destruyo Un Objeto? 
 
Ha ya entiendo cual es el problema, miren lo unico que necesito es que me enseñen a liberar esa memoria, supongamos que tengo el objeto individuo que tiene lo siguiente

nombre string
edad integer
peso float
 
y pues creo unos 4 individuos

juan = new individuo
pedro= new individuo
luis = new individuo
adrian = new individuo

pero ahora supongamos (en teoria que la memoria de la computadora solo soporta 4) y quiero crear otro como le hago para matar a uno de estos tipos y permitir que nazca otro



no hay problema del abb o del algoritmo genetico lo unico que necesito es como destruir objetos
 



 
cyberx0x - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Destruyo Un Objeto? 
 
Hola
Ya veré cuando tenga mas tiempo pero mas o menos te doy la idea de lo que tienes que hacer.

1 Tienes que crear un nuevo control.
2. Para ello creas una clase nueva con las propiedades nombre, edad, peso y que herede la clase control.
3. Por haber añadido estas propiedades tu podras crear nuevas instancias de esa clase que tendrá las propiedadse que tu necesitas y el método .delete para destruirlo.

Aquí tienes alguna información al respecto
Gambas: clases y objetos
Ayuda en la creación de un componente

De la creacion del componente hay cosas que no necesitas porque tu no vas a exportarlo a gambas como un componente mas (seguramente) pero en ese post se explica como crear un control y como exportarlo a gambas. A  ti te interesa saber como crear el control. Una vez lo tengas creado cada vez que quieras crearlo haces un nuevo new y cada vez que quieres destruirlo haces un nuevo .delete

Echa un vistazo y si no te sale a ve que podemos hacer
 
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Destruyo Un Objeto? 
 
No se si seria bueno hacer un control para esto, ya que será un objeto pesado al ser heredado de "control", creo que necesita un objeto lijero que solo tenga lo que necesita.
Me parece que la pregunta se podria resumir en:
Hay algo parecido al "Set miobjeto = Nothing" de visual basic 6?
 



 
maikl - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Destruyo Un Objeto? 
 
Hasta donde yo se no lo hay.

Por eso veo como solución la creación de un control que no veo porque tiene que ser pesado porque al fin y al cabo es una clase con las propiedades de edad, peso y nomber pero que hereda las propiedades de los controles enter las que se encuentran los métodos new y delete.

sería cuestión de hacer pruebas a ver el peso en memoria pero creo que es algo factible.
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes El Objeto Message soplo General 0 Domingo, 13 Septiembre 2009, 21:42 Ver último mensaje
soplo
No hay nuevos mensajes Como Saber Que Objeto Tiene El Enfoque aristicol General 12 Viernes, 20 May 2011, 22:37 Ver último mensaje
Ronny
No hay nuevos mensajes Instanciar Un Objeto Shell General 2 Jueves, 24 Noviembre 2011, 01:31 Ver último mensaje
Shell
No hay nuevos mensajes Imprimir Objeto alessandri General 5 Sabado, 16 Junio 2012, 19:55 Ver último mensaje
jsbsan
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario