FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Aplicacion se cae al cerrar explorer u otro navegador
Otra consulta con respecto a aplicación Delphi 5.
Cada vez que se tiene abierta la aplicación minimizada y se abre un navegador de internet, al cerrar este se cae la aplicación enviando el mensaje de Access Violation. ¿A que se puede deber? Esto ocurre con cualquier windows y con el navegador Explorer y Google Chrome, no lo he probado con otros. |
#2
|
||||
|
||||
Estaría bien saber qué hace la aplicación y si tiene algo que ver con estos programas...
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Son programas contables, pero al parecer debe ser algún componente que estoy utilizando, porque viendo otro programa pequeño que hice para generar codigos de barra no me pasa.
Ahora el problema será investigar cual de los componentes es el que genera el problema. Tendré que hacer un pequeño sistema, agregandole componentes hasta dar con el causante (trabajo de chinos porque son varios). Cuando lo encuentre les digo, pero si a alguien le ha pasado lo mismo que me evite el trabajito se lo agradeceria. |
#4
|
||||
|
||||
Si los comentas tal vez te podamos dar alguna pista de cual puede ser.
Los componentes normales de la VCL no deberían generar estos errores. ¿Algún componente externo?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
||||
|
||||
Cita:
Pero considera la alternativa de tener Delphi instalado en esa misma computadora, y ejecutar el programa desde el IDE habiéndolo compilado con las opciones "Debug information" y "Use debug DCUs". Así, cuando el Access Violation ocurra, el depurador te permitirá ver la pila de llamadas (call stack) y con ello descubrir en qué punto del programa se dispara la situación de falla y su posible causa. Saludos. |
#6
|
|||
|
|||
Al hice la prueba desde delphi como tu lo indicaste, pero no envía ningún mensaje que me de una pista solo aparece "Exception EAccessVoilation in Module Programa.exe at 0007C12C. Access violation at address xxxxx in module Programa.exe. Read of address xxxx" y se cae sin mas.
Los componentes que tengo son de TurboPower, Rx, GNostice, FastReport, CGIExpert. Ya probé con algunos de ellos en forma individual y no se caen. |
#7
|
|||
|
|||
Ya encontré cual es el componente que me causa el problema, es el componente TStShellTreeView que pertenece a Systools de TurboPower.
Ahora hay que averiguar por que pasa eso. |
#8
|
||||
|
||||
Cita:
Cuando te aparezca el mensaje de error puedes presionar la combinación de teclas Ctrl+C para copiarlo al portapapeles y luego mostrarlo aquí. Y también, muy importante, tras cerrar la ventana de error presiona Ctrl+Alt+S para ver la pila de llamadas, muéstranos ésta por favor. Se trata del camino que siguió tu aplicación hasta ocurrir la excepción. De preferencia compila con Build, tras asegurarte de marcar el par de opciones que te sugerí anteriormente. Saludos. |
#9
|
|||
|
|||
---------------------------
Application Error --------------------------- Exception EAccessViolation in module Project1.exe at 00061069. Access violation at address 00461069 in module 'Project1.exe'. Read of address 00000004. --------------------------- Aceptar --------------------------- Al dar Ctrl+Alt+S aparece un recuadro indicando Call Stack Process is not accessible |
#10
|
||||
|
||||
Es muy probablemente por un objeto Nil, intento de leer algún elemento de una instancia de objeto no creada.
Esto puede ser porque el programa ya no está en ejecución (no lo cierres / termines cuando aparezca el error). Última edición por Al González fecha: 09-04-2013 a las 23:31:22. |
#11
|
|||
|
|||
Al el mensaje de "Process is not accesible" aparece aun cuando el programa no ha sido cerrado.
Ahora bien, como te dije anteriormente, el problema se da en el componente ShellTreeview en el evento ShellEvent, al parecer es una pifia del componente. Si no logro arreglarlo voy a tener que buscar un componente similar (que no he encontrado) o generar código que haga algo similar. |
#12
|
|||
|
|||
Encontré la solución, era una falla del componente.
Solo agregué un try except end en un parrafo del evento ShellEvent, lo probé y ya no se cayó el sistema. if ((neFolderDelete in Events) or (neDriveRemove in Events) or ((neFileDelete in Events) and (toShowFiles in Options))) then begin { A folder was deleted. See if it is one we have in the list. } Node := FindNodeByPidl(SI1.Pidl); if Node = nil then Node := FindNodeByPath(SI1.Path); if Selected = Node then try Selected := Node.GetNext; except end; Espero le sirva de ayuda por si a alguien le ocurre lo mismo. |
#13
|
||||
|
||||
Que bueno que lograste encontrar la causa, y gracias por mostrarla.
Un mejor parche podría ser (para el último de esos Ifs): En lugar de reprimir la excepción, la evita. Entonces Node era el objeto Nil en cuestión. La ejecución del método GetNext intentaba leer el primero de sus campos (desplazamiento 4). |
#14
|
|||
|
|||
Al puse la excepción como una forma rápida de salir del paso y me funcionó bien, pero voy a probar lo que tu me dices y te cuento.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿Como cerrar el explorer.exe desde el que se llamó a mi aplicación? | jumasuro | API de Windows | 0 | 08-02-2007 20:54:50 |
Descargar y ejecutar aplicacion desde el navegador | coulthard | Linux | 0 | 23-12-2004 18:40:08 |
Cerrar mi programa desde otro | Sr_Sombrero | API de Windows | 2 | 02-12-2004 22:12:09 |
Cerrar el Navegador de Internet | barrauda | API de Windows | 2 | 19-11-2004 15:47:18 |
Abrir navegador desde mi aplicacion | pampitasnowman | Internet | 1 | 28-11-2003 15:06:44 |
|