Ver Mensaje Individual
  #11  
Antiguo 24-11-2008
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Reputación: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola ale_metall.

No creo que haya que ponerse brusco. Entendemos tu apuro, pero a la vez esperamos que entiendas que no siempre es fácil ayudar con prontitud y eficacia. Y mantener cierto respeto es importante.

Tu caso no parece ser como muchos otros donde un alumno de programación básicamente solicita que le hagan la tarea (los deberes). Se nota que estás esforzándote en cumplir con el compromiso de la materia.

El error Access Violation es común cuando se está usando memoria de programa de forma inadecuada. La mayoría de las veces tiene que ver con variables objetos que son liberadas (destruidas) antes de tiempo o nunca inicializadas.

Por los datos que nos has proporcionado, pareciera que el programa intenta acceder, usar o hacer referencia a alguna parte de un objeto que anteriormente era válido, pero luego fue destruido. Ese objeto destruido prematuramente (o referido más de lo que es necesario) podría ser Form22, ya que es el único que a simple vista liberas en el código.

Una segunda llamada al manejador de evento SpeedButton1Click podría desembocar en una excepción Access Violation al llegar a la sentencia "form22.destroy", porque el objeto ya habría sido destruido en la primera ejecución del código.

Por otro lado te recomiendo estudiar temas relacionados con el depurador, como son los puntos de ruptura, las observaciones y la pila de llamadas. El depurador de Delphi es uno de los mejores que existen (si no es que el mejor). Es una herramienta integrada en el IDE que te permite seguirle la pista a cada pequeña cosa que hace tu programa al estar ejecutándose, y así descubrir más fácilmente la causa de los fallos.

Saludos.

Al González
Responder Con Cita