FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Si estos errores te ocurren al terminar la aplicacion, prueba a finalizarla de la siguiente manera (es como lo hago yo por un problema similar):
__________________
noticiasfrikis, mi web de chorradas |
#2
|
||||
|
||||
NO, NO Y NO.
El problema es grave, como indica un abstract error y un access violation, y el problema no es de código sino de concepto, para eso tendrás que estudiarlo. Las clases bases de un form usan abstract; virtual etc en sus métodos, por tanto si te dan esos errores es que estas lanzando las ventanas mal. Normalmente es porque no identificas el Parent/Owner de una ventana o que le das información incongruente, mira este código:
El error está en decirle que el objeto Application es el encargado de destruir la ventana, pero despues te encargas tú por código de liberarla. Cuando termine tu programa el objeto Application intentará destruir el Form1, pero como ya está destruido.... Access violation. De la misma forma al cerrar esa ventana una y otra vez te dará un error de Abstract Error, (es lo más probable). Tienes que tener claro que el Parent de una ventana, por ejemplo, es solo para saber dentro de qué control se va a mostrar. El Owner (dueño) de un control/ventana es el que se encarga de destruirlo, y puede ser distinto al Parent (Padre). A ese código se suma otro error más. Cuando se hace el Form1.Free, la memoria se libera, pero la variable Form1 se queda apuntando a la zona de memoria donde estaba, por tanto, si vuelves a llamar a Form1.Free en compilación no da fallos, pero en Ejecución dará un Access Violation. Formas correctas: Se crea, pero nadie lo destruirá.... porque lo destruyo por código yo. El objeto se destruye cuando termina la aplicación, es decir, desde que se crea, hasta que finalice la applicación, el Form1 estará en Memoria. Hay otras formas, por ejemplo con ventanas modales, pero todo se resume a lo mismo: Indicar bien los Owner y tener controlado (conceptualmente) cuando y donde se destruyen las ventanas. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
|||
|
|||
Lepe muchas gracias tio, son estos pequeños conceptos que no se tienen del todo claros lo que diferencia el buen codigo del mal codigo.
__________________
noticiasfrikis, mi web de chorradas |
#4
|
|||
|
|||
Gracias a todos!
Vean, creo que por ahi va el asunto, porque yo creo un boton en tiempo de ejecucion, mi codigo es el siguiente:
|
#5
|
|||
|
|||
Y con este código lo mando destruir:
|
#6
|
|||
|
|||
Aqui, como puedo usar la excepcion que me pusiste como ejemplo?
Gracias, de verdad , mucha gracias por su ayuda! |
#7
|
||||
|
||||
Veo un detalle:
No veo lógico que uses el With NewBoton do y acto seguido modifiques el valor porque creas un Tlabel nuevo. Sugiero que muevas la frase With NewBoton do más abajo:
Por otra parte, cuando creas los labels, le dices que tiene un dueño, y realmente lo vas a destruir tú, pasale un "nil" mejor. Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 07-04-2006 a las 18:34:50. |
#8
|
|||
|
|||
Hola mmmm se que quizá estan dando respuesta a la pregunta de alguien más, pero yo tengo el mismo problema y según yo no lo estoy haciendo de una forma erronea.
Les comento, Tengo una forma donde lo único que tengo es un TXMLDocument (name: xml_doc) con el que leo un cuestionario en xml. Este cuestionario por necesidades del mismo varía el número de respuestas que a efectos del sistema se convertirán en radiobuttons. Por tal motivo debo generarlos de manera dinámica cada vez que se cargue una pregunta. Sin embargo en ocasiones y no siempre en el mismo momento me marca este tipo de errores cuando genero los nuevos elementos. este es mi código
Muchas gracias a quien me pueda ayudar y seguimos en contacto por aca... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Detener un error de access violation de la DbGrid - delphi..... | uper | Varios | 1 | 21-09-2005 21:54:42 |
Error Access Violation en Paquetes (Packages) | DarKraZY | OOP | 4 | 13-09-2005 14:35:31 |
Maldito ... Access violation Error (QuickReports) | User_baja1 | Impresión | 1 | 20-04-2005 10:29:32 |
Error Access Violation | samame | Conexión con bases de datos | 1 | 01-04-2004 10:48:10 |
Error Access Violation con Crystal 9 | samame | Impresión | 0 | 30-03-2004 14:03:17 |
|