Forum > Spanish
problema con metodo abstracto
zelda16bit:
He actualizado el archivo con algunos dll pero falta uno porque no me deja subir archivos de mas de 500 kb.Falta el archivo allegro_monolith-5.2.dll que lo encontraras en la carpeta de alegro5/bin/lib/monolith.
Ahora si debe compilar porque he comentado Tpadre.pintar() que es el que da problemas,ademas hay problemas de liberacion de memoria y un problema al llamar al constructor de la clase padre en la clase disparo.
Lo que intento hacer es una lista en la clase padre que se encargue de añadir a la lista las clases que hereden de padre,tambien intento usar el proceso actualizar para actualizar todos los metodos pintar de las clases que hereden de esta,pero para eso tengo que llamar al metodo pintar de la clase padre en el archivo principal si no no sirve,y por ultimo quiero que la clase padre se encargue de liberar la memoria para no tener que hacerlo desde las clases hijas,tambien se necesita un metodo pintar en la clase padre para usarlo en las clases hijas pero el de la clase padre no debe llevar codigo.
Esta claro que no lo estoy haciendo bien por eso necesito orientacion,no me importa cambiar la forma en la que lo estoy haciendo,solo quiero que funcione,por cierto esto ya lo he hecho con processing y lua y no he tenido problemas pero con pascal no funciona de la misma forma.
Edson:
Hola.
Tu proyecto me da error de ejecución aún incluyendo el dll. Debe ser por el Allegro, que no lo he usado antes. Pero como te decía te recomiendo cambiar la estructura de tu código.
Como ya te había indicado, los problemas de liberación de memoria deben ser por la forma como estás creando "lista" en Tpadre.Create().
Podrías revisar algunos de mis proyectos como ejemplo de administración de objetos gráficos como: https://github.com/t-edson/ogEditGraf/blob/2.8/ogEditionMot.pas
Aquí se crea el contenedor objects de la clase TlistObjGraf para almacenar los objetos gráficos que se van creando.
La clase base TObjGraf esta definida en https://github.com/t-edson/ogEditGraf/blob/2.8/ogDefObjGraf.pas y el método de dibujo es TObjGraf.Draw() que es definido como virtual.
zelda16bit:
Gracias por toda la ayuda Edson,buscare alguna forma de solucionarlo.
Navigation
[0] Message Index
[*] Previous page