PDA

Ver la Versión Completa : solucion de error


Irina
03-06-2003, 19:01:02
Hola, os agradeceria mucho que me ayudarais con el problema que tengo. Al ejecutar el programa y hacer la llamada a un form, me sale el siguiente error:


'Access violation at adress 0053515B in module KERNEL.EXE'
Read of adress FFFFFFFFFF.

No tengo ni idea de porque no funciona, puesto que anteriormente si funcionaba correctamente.

Espero que alguien sepa solucionarme esto.

Muchas gracias.
Un saludo. Irina.

andres1569
03-06-2003, 19:06:26
Hola:

Prueba a seguir la traza del programa (teclas F4, F7, F8) a ver en qué punto salta, si al crear el Form o en alguna parte del código del evento OnCreate (si lo hay). Si puedes detallar algo del código que crea el formulario y de su evento OnCreate, mejor aún.

Un saludo

roman
03-06-2003, 19:21:25
¿En estos casos no sirve usar la opción FindError del menú Search en el IDE de Delphi?

:confused:

// Saludos

Irina
03-06-2003, 19:24:19
Roman perdona, pero no entiendo lo que quieres decir, si no te importa podrias explicarmelo mejor.

Gracias.

roman
03-06-2003, 19:47:59
Al momento en que te salga el error, sin cerrar el programa, te pasas a Delphi y seleccionas el menú que te digo. Ahí escribes la dirección que te pone el mensaje (en este caso 0053515B) y eso te lleva a la línea del código donde se generó el error.

Lo probé generando a propósito una violación de acceso y funcionó pero en mi caso el módulo que me reporta es "project1.exe" es decir mi programa y en tu caso es "kernel.exe" que es de Windows. Por eso no sé si funcione cuando la violación surge en otro módulo.

Pruébalo y nos cuentas.

// Saludos

Irina
04-06-2003, 19:00:35
Buenas de nuevo, lo he probado y me va a la linea de codigo donde se genera el error, el problema es que no se porque da ese error, puesto que todo esta correctamente ya que antes funcionaba.
Ah! El error es Kernel.exe porque mi programa se llama kernel, si no seria project1.exe

De todas formas gracias por ayudarme

Un saludo. Irina

andres1569
04-06-2003, 19:08:49
Hola:

Irina escribió:

Ah! El error es Kernel.exe porque mi programa se llama kernel, si no seria project1.exe


¡ Sorprendente ! Aún no salgo de mi asombro, es como si estuviera hecho adrede para despistar, ¿quién iba a pensar que no se trataba del kernel de Windows? :) :)

Sigue siendo un fallo de acceso a memoria, algo hay ahí que no cuadra. ¿No será que has cambiado ese Form en Options de la lista de AutoCreate a la de Available Forms? Si lo has hecho así, ahora debes encargarte tú misma de crear el Form antes de mostrarlo con Show o con ShowModal.

Un saludo y a ver si nos sacas de dudas, ufff!

Irina
04-06-2003, 19:15:49
ok, posiblemente tengaas razon.
Pero no he cambiado el form que me da error, sino el form que lo llama. Ahora la pregunta es: Como puedo solucionar el error sin tener que cambiar el form a available-forms?

Gracias, necesito ayuda urgente, ya que estoy apunto de terminar el proyecto de practicas y me gustaria quedar bien con mis "jefes", jijiji.

Un saludete. :D

andres1569
04-06-2003, 19:21:13
Hola:

Irina, no se trata de que lo tengas que cambiar si no de que "puede que falle si lo has cambiado ya", por aquello que decías de que antes funcionaba y ahora no. Si te urge no estaría mal que detallaras el código que empleas al llamarlo (se supone que el Form desde el que lo llamas funciona correctamente porque lo tienes en pantalla sin problemas).

A ver si así te podemos echar un cable

Irina
04-06-2003, 19:25:55
Ya lo he solucionado, tenias razon era lo de options ....
Primero tenia los dos forms como available, lugo cambie el principal a autocreate, y ahi me empezaron los errores, ahora lo que he hecho es pones los dos forms como auto create y problema solucionado.

Muchas gracias por hacer que se encienda la bombilla.

Un saludo y hasta la proxima. :P

gatosoft
05-06-2003, 15:42:05
Que bien que ya se solucionó el error.... pero solo como información, me gsutaria decir que ese tipo de error, en el que el compilador dice que hay una violacion leyendo la direccion de memoria "FFFFFFFFFF.", sucede cuando se intenta accesar a un objeto que no ha sido instanciado aún.

saludos.