![]() |
liberar memoria
hola a todos del foro, hace mucho que no me conectaba =D(ahora que terminaron mis clases vuelvo =D) estaba revisando mi juego que estaba asiendo y el problema con el que me encontre es que al querer liberar un objeto(la nave enemiga) producto de la colision no lo libera y me aparece un error "acces violation at address"
mi codigo con el que lo libero es el siguiente
me parece que en la parte que falla es aqui for i := 0 to (lista.Count - 1) do begin saludos |
Hola Celta.
Estuve mirando tu código y lo identé para mayor legibilidad, aunque veo que Casimiro ya lo ha echo... ( gracias.:)) Al liberar los objetos TImagen, tenés usar el ciclo en forma descendente, ya que cuando un objeto es liberado la posición es ocupada por el sucesor y cuando la variable de control llegue al valor Count - 1 seguro que hay menos objetos que ese valor. Te puse el código con algunas correcciones, el cual probé con otras imágenes en una prueba sencilla. No verifiqué la validez de las evaluaciones del condicional if, pero si son correctas, este código no debería darte error:
Ya que simplificando el ejemplo, sería:
Un saludo. |
amigo celta ese juego que estas haciendo sera comercial o lo liberara cuando lo termine me gustaria ver el codigo completo del juego
|
si me da error
:eek: no se por que me da error la parte de Ene := ListaEne.Items[i];
|
Hola Celta.
La verdad que yo tampoco por que no me dá ningún error de ese modo. Te pongo la prueba sencilla que hice, por ahí te sirve para sacar alguna idea.
Funciona igual si eliminas todos los items de la lista, el if lo puse para simular un condicional como en tu código. Espero te ayude. Saludos.:) |
Ahora Si Me Funciona =d
Grasias Ahora Si Me Funciona
Saludos |
La franja horaria es GMT +2. Ahora son las 12:35:02. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi