FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
AccessViolation inexplicable
Hola, me han encargado solucionar un error de una aplicación de Delphi, y la verdad.. por más que pruebo cosas y lo miro, no lo entiendo. Igual porque llevo años sin tocar Delphi, no sé.
El problema es "tan sencillo" como que en la funcion FormCreate intento hacer un ShowMessage y me salta el error de AccesViolation, he probado de no ponerlo,y no da ningún problema, pero es intentar mostrar algo y pam! En el fichero .dpr tengo lo siguiente:
He probado comentandolo todo y dejando solo el FormCreate de la portada,y NADA! Y la función del FormCreate es la siguiente:
No sé si necesitáis alguna información más.. si no me explico o hay algo que no se entiende, por favor, comunicadmelo y me explicaré encantada. Espero que me deis algún tipo de solución,pq la verdad es que ya no sé que probar!! Gracias de antemano, un saludo! Última edición por dec fecha: 02-04-2009 a las 12:05:12. |
#2
|
||||
|
||||
Pon puntos de ruptura y ejecuta paso a paso. En cuanto localices la línea, localizarás el error.
De todas formas, ahí estáis creando muchas ventanas. Lo mejor es crear sólo las más utilizadas y el resto dejarlas hasta el momento preciso en el que tienes que utilizarlas, destruyéndolas en cuanto no se necesiten. |
#3
|
|||
|
|||
Antetodo, gracias por la respuesta. Lo de debugar punto por punto lo he hecho infinitas veces, y el problema es que el error salta donde pongo el ShowMessage (lo ponga antes o después).
También he probado de crear únicamente la portada, pero ni así! Aunque solo tenga esto de Application.CreateForm(Tportada, portada); tampoco funciona. Q desesperación... |
#4
|
|||
|
|||
Bueno, como usted ya hizo varios testes y hasta ahora nada, intenta poner el Form Portada para crear por el ultimo y no como el primer como se ve.
|
#5
|
|||
|
|||
Intenta eso :
no utilizas FormCreate pero override el Create de Form y, depues del inherited creo que podras hacer un showmessage...
no sé si va a resolver tu problema, pero es una pista David Última edición por Davidcfres fecha: 02-04-2009 a las 17:28:55. |
#6
|
||||
|
||||
Hola, en el ejemplo pones la línea:
Sin embargo, no te creo que este sea el código real que estás utilizando. Dejame suponer que intentas mostrar el contenido de alguna propiedad de un objeto o bien el contenido de alguna variable. Si es así, entonces debe ser que el objeto->propiedad / variable no ha sido inicializado. Revisa que la variables que muestra esté inicializada. Saludos. |
#7
|
|||
|
|||
D&W, El contenido del ShowMessage no es real, el texto real es algo así como: Introduzca el CD correcto. Pero la funcionalidad es la misma.
Davidcfres, muchas gracias por la respuesta, voy a probar aver si funciona y te digo algo Merci |
#8
|
|||
|
|||
Davidcfres, acabo de probar lo que me has dicho, pero no sé si hago algo mal, me sale un error de: EReadError with message 'Invalid property value' quan se ejecuta lo siguiente: Application.CreateForm(Tportada, portada);
No sé si es que esto lo tengo que quitar o qué puedo estar haciendo mal. |
#9
|
|||
|
|||
He probado quitando la propiedad "inherited" y me muestra el ShowMessage correctamente! Pero al darle a OK en el ShowMessage me sale el error:
Exception EAccesViolation in module dech.exe at 00000000. Acces violation at address 00000000. Read of address 00000000. Alguna solución?? Graciaaas!! |
#10
|
||||
|
||||
Cita:
También puedes intentar hacer el llamado al ShowMessage en algún otro lado del formulario, por ejemplo colocando un botón temporal y en el evento OnClick llamar al ShowMesage('Hola'). |
#11
|
|||
|
|||
He probado otras formas para mostrar mensajes y tampoco funcionan,así que no puede ser problema del ShowMessage. No puedo poner esta llamada en el formulario porque si el cd no esta en la unidad D no se abrirá el formulario.
Qué kaos tengo!! Gracias por contestar D&W |
#12
|
||||
|
||||
Cuando vale la pena, es mejor botar el código antes de intentar depurarlo. por eso, te proporciono un código mejor para hacer lo que intentas:
De esta forma, el código del evento FormCreate de la portada ya no será necesario y puedes eliminarlo. Saludos. |
#13
|
|||
|
|||
Muchas gracias D&W, esto tenía muy buena pinta! He puesto el código que me has dicho y me salta el error de "EReadError Invalid property value" al ejecutarse Application.CreateForm(Tportada, portada); No lo entiendoo No hay otra manera de generar la portada que no sea así o algo? Si quito esta sentencia, evidentemente,no funcionará no? Ya que no podré acceder a las funciones que estan allí dentro y demás..
Graciass de nuevo, ojalá tengáis otra solución. Un saludo |
#14
|
||||
|
||||
El EReadError, Invalid property value normalmente es generado cuando alguna propiedad del formualario o un control dentro de éste tiene alguna propiedad con un valor no permitido. Intenta abrir el formulario en delphi (en modo edición). Si no te da ningún problema, entonces puedes tratar de comentar temporalmente todo el código del form. y luego ir depurando para ver que es lo que pasa.
Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error AccessViolation | CarlosHernandez | Varios | 3 | 22-09-2008 10:18:57 |
Error inexplicable | chipsoni | Impresión | 3 | 11-01-2007 17:36:49 |
RaveReport AccessViolation | raugadel | Impresión | 0 | 03-11-2005 15:32:56 |
Problema Inexplicable Con Una Consulta | carlos gonzalez | Conexión con bases de datos | 4 | 12-05-2005 11:27:29 |
Problema... ¿inexplicable? | jadelphi | Varios | 3 | 20-04-2005 17:57:33 |
|