![]() |
![]() |
| 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
|
||||
|
||||
|
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. |
|
#2
|
|||
|
|||
|
---------------------------
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 |
|
#3
|
||||
|
||||
|
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. |
|
#4
|
|||
|
|||
|
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. |
|
#5
|
|||
|
|||
|
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. |
|
#6
|
||||
|
||||
|
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). |
|
#7
|
|||
|
|||
|
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.
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|