![]() |
aplicacion inestable en delphi7
Saludos,
No se que titulo ponerle al tema, asi que por la "inestabilidad" y el comportamiento extraño que tiene mi aplicacion sin conocer la causa real me llevo a este titulo. Sucede que tengo una aplicacion muy grande con algunas 250 formas y algunos 5 componentes de terceros (rusas, raize, cnpack, fibplus y fastreport), desde hace un tiempo hasta el dia de hoy, cuando compilo la aplicacion para generar mi nuevo ejecutable se me esta presentando un comportamiento extraño en el sistema, errores que no le encuentro explicacion, solo se me ocurre que es un problema con el IDE de delphi 7 o algun bug de los componentes de tercero, por ejemplo: Se me presenta un EAccessviolation abriendo algunas formas o al momento de cerrar la aplicacion. Como sabemos este error comunmente sucede cuando intentamos de acceder a un objeto que no esta creado o al tratar de destruir un objeto que ya no existe, pero nada de esto esta sucediendo, a veces compilo la aplicacion varias veces y uno de los ejecutable que me genera delphi no me da los errores pero los demas si. Por lo general tengo que generar el proyecto completo por el menu Project - Build MiSistema o de otro modo el ejecutable siempre estara lleno de los EAccessviolation, pero no siempre esta medicina me funciona ya que ultimamente no se estan desapareciendo los EAccessviolation por mas que genere el proyecto, incluso hasta para cerrar el IDE de delphi en algunas ocasiones, no lo puedo hacer porque me presenta un EAccessviolation para cerrarlo, y tengo que matar el proceso para cerrar la ventana de delphi :confused: Encima del problema anterior, existe una funcion que utilizo mucho en casi todas las formas, en la cual le paso un string como parametro, resulta que en algunos formularios la primera vez que invoco la funcion, el valor del string aparece truncado, es decir, no es el mismo que le envio, en el segundo intento si toma el valor que le estoy pasando, por ejemplo: a := mifuncion('hola'); la funcion no recibe el string 'hola', sino caracteres desconocidos '@#$@#$^', en el segundo intento si toma el valor correcto. No se a que se debe esta inestabilidad de la aplicacion, tengo dos computadores con el mismo ambiente instalado, y los dos hacen lo mismo. Antes cuando la aplicacion era un poco mas pequeña no sucedian estos errores, pero con el tiempo han comenzado aparecer, al principio lo solucionaba pero ahora la solucion aplicada no siempre me da resultados. Que me pueden sugerir que pruebe? |
Cita:
te recomiendo que cada form que crees lo hagas cuando lo necesites y luego lo liberes. Imagino que los estas creando al iniciar la aplicación, verdad? Saludos. |
Cita:
|
erickperez6,
Cita:
1- ¿El problema de EAccessviolation ocurre de la misma manera con otras aplicaciones?. 2- ¿El problema mencionado se presenta siempre en el mismo conjunto de Forms o es aleatorio el Form donde ocurre la falla?. 3- ¿Existe alguna unidad que sea común a todos los forms que por su volumen sea candidata a ser dividida en unidades más especializadas?. 4- ¿La versión de Windows instalada esta actualizada a nivel de Updates y Service Pack?, ¿Que versión de Windows utilizas?. 5- ¿Que programa de seguridad utilizas?, ¿La falla se presenta si el programa de seguridad esta deshabilitado?. 6- ¿Si realizas un boot de Windows en modo Diagnostics y compilas la aplicación ocurre la falla mencionada?. 7- ¿Haz verificado el hardware de las máquinas en cuestión, específicamente Memoria RAM y Unidades de Almacenamiento?. 8- ¿Cuanta Memoria RAM tienen las máquinas en cuestión?. 9- ¿A que te refieres exactamente cuando mencionas que la falla no se presentaba cuando la aplicación era más pequeña?. Espero sea útil :) Nelson. |
Está claro que es un error (o errores) en tu programa.
Yo he estado más de 10 años trabajando con una aplicación delphi 5+ibx+firebird con más de 1000 pantallas (forms) y muchísimos componentes variados y nunca hemos tenido ningún problema con delphi. Al mismo tiempo con otros programas en delphi 7, también bastante grandes. Y finalmente con delphi 2007 (ahí me he quedado) con proyectos bastante "gordos" también y esos errores nunca han aparecido. De todas formas, está claro que es lo que te han comentado, esas variables están apuntando a un trozo memoria que "alguien o algo" se la ha machacado. |
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
|
Cita:
|
erickperez6,
Cita:
1- Al parecer algo esta interfiriendo de forma aleatoria en el proceso de compilación y/o ejecución produciendo el error de EAccessviolation, el hecho de que algunas veces se logre compilar y ejecutar la aplicación y otras no sin hacer ninguna modificación sugiere un elemento externo que afecta el proceso de compilación más que el código en si mismo, si el problema fuera el código el error siempre estaría presente en tiempo de compilación o ejecución, sin embargo no se puede descartar esta variable, pregunto : ¿Tu aplicación utiliza apuntadores?. 2- El programa de seguridad casero, un servicio u otro programa activo al momento de la compilación son candidatos probables que pueden afectar aleatoriamente el proceso de compilación, si se hace un boot de Windows en modo Diagnostics y se compila la aplicación sin que este activo ningún otro programa se pueden descartar elementos externos, quedando solo por analizar Windows, Delphi 7 y la aplicación. 3- Para descartar problemas del IDE es conveniente reinstalar Delphi 7 en modo Repair, así como reinstalar los componentes de terceros (Del más probable al menos probable en relación a la falla), todo lo anterior de forma progresiva probando en cada caso la compilación de la aplicación y su comportamiento. 4- Sería conveniente analizar los mensajes del compilador y ver si hay diferencia entre la versión compilada que funciona y la que produce la falla, quizás haya algún Warning que sugiera el origen de la falla. 5- Otro punto a considerar es aislar (Comentar) partes del código al momento de la compilación para analizar su relación con la falla descrita. 6- Para finalizar te sugiero considerar una aplicación de seguridad como NIS 2013, la cual tiene mucho tiempo en el mercado, es reconocida mundialmente y tiene poco impacto en el sistema ademas de contar con actualizaciones constantes, esto permitiría descartar probables problemas de Malware que puedan estar relacionados con la falla en cuestión. Espero sea útil :) Nelson. |
instala el componente eurekalog
para que sepas por que parte de tu codigo se dan los errores. |
La franja horaria es GMT +2. Ahora son las 04:37:44. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi