![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Solución al Problema de Access Violation en Delphi 7
Hola:El Error estaba en este fragmento de código:
El índice declarado es menor al índice usado en el for, y el error de índice fuera de secuencia no fue detectado en tiempo de ejecución de forma explicita, sino de forma genérica como un AV, dado que no estaba activa la opción de Range Checking en Runtime, en las opciones del compilador. Revise una buena parte de los errores que fueron publicados relacionados a Access Violation, en mi humilde opinión yo pienso que parte de la velocidad del compilador de Delphi se debe a un compromiso entre chequeo de elementos en memoria (objetos, variables, estructuras y arreglos) y velocidad de compilación, el cual confia en parte sea responsabilidad del programador, dado que es un lenguaje para uso profesional, a diferencia de VB. Gracias a las personas que se tomaron la molestia de leer este problema y revisar el código asociado. ![]() Última edición por nlsgarcia fecha: 20-02-2007 a las 03:10:17. |
|
#2
|
||||
|
||||
|
Pues es que el compilador no tiene manera de saber que el índice está fuera de rango. Tendría que ser un compilador muy avanzado, para poder analizar tu código y darse cuenta de que hay una posible violación de rango, y digo posible, porque el compilador no tiene manera de saber qué va a pasar en el ciclo, quizá algo lo haga salir del bucle antes de llegar al extremo del rango.
Otra cosa sería si pones:
porque explícitamente le estás diciendo que pase un índice fuera del rango que el compilador ya conoce por la declaración de la variable. // Saludos |
|
#3
|
||||
|
||||
|
Respuesta a Roman
Hola Roman:Gracias por tu comentario, cambiare la nota que hice a: El error de índice fuera de secuencia no fue detectado en tiempo de ejecución de forma explicita, sin de forma genérica como un AV. Saludos. ![]() |
|
#4
|
||||
|
||||
|
¡Ah! Pero en tiempo de ejecución la cosa cambia
. Por defecto, Delphi no verifica el rango, pero sí que puede hacerlo si activas la opción Range Checking en Project|Options|Compiler. Claro que igualmente obtienes una excepción, pero de alguna manera, es menos severa que un Acces Violation.// Saludos |
|
#5
|
||||
|
||||
|
Respueta 2 a Roman
Hola:Revise la opción que me indicastes y el error es detectado en el momento que ocurre si esta activa la opción, nuevamente gracias por tu comentario. Saludos. ![]() Última edición por nlsgarcia fecha: 20-02-2007 a las 03:11:07. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Problema de Access Violation | johurgi | Varios | 3 | 18-07-2006 19:04:58 |
| Delphi 7 Access Violation at 0x7c91edcd | Barzaugc | Varios | 2 | 03-06-2005 05:03:24 |
| Delphi 7 Access Violation at 0x7c91edcd | Barzaugc | Varios | 1 | 03-06-2005 02:34:25 |
| RTL70.BPL - Access violation en delphi 7 | zylmig | Varios | 1 | 22-05-2005 20:15:48 |
| Problema con Quick report 'Access Violation at address 00575B9B in module' | danielcordovahe | Varios | 3 | 13-05-2005 00:51:08 |
|