![]() |
![]() |
| 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
|
||||
|
||||
|
... lo único que realizo en el boton salir de mi aplicacion es el siguiente código,
if FPrincipal.MDIChildCount= 0 then application.Terminate else showmessage('Cierre la ventana que tiene activa'); y el problema o lo que mas me intriga y me hace pensar que es el query es porque con otras ventanas no sucede incluso con otras que tambien son de consulta pero que por cada TQuery solo utilizan una tabla no dos. muhas gracias....espero no ser muy insistente pero ya no se que hacer. |
|
#2
|
||||
|
||||
|
¿Y pones algo en el OnDestroy de formularios / controles que aún no se han eliminado?
PD: ¿Tienes claro que es un Access Violation?
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
|
#3
|
||||
|
||||
|
hola delphi.com.ar, bueno yo mis formularios los creo y destruyo conforme el usuario los necesite es decir, no puedo abrir dos formularios independientes al mismo tiempo incluso no puedo cerrar mi aplicación si tengo formularios abiertos, aun asi contestando tu primer punto ondestroy no tengo codifo pero si en onclose es alli donde destruyo mis formularios. Y con respencto a tu segundo punto ralmente no tengo muy en claro de que se trate, segun he visto ese error es marcado cuando no encuentra algun archivo, pero realmente no lo se
gracias.... ![]() |
|
#4
|
||||
|
||||
|
hola roman, si manejo como tu mencionas mis formularios, utilizando el CaFree, y si el address es 0, gracias.
![]() |
|
#5
|
||||
|
||||
|
Un Acces Violation se produce cuando tu programa accede a un sector de memoria que no tiene reservado. La forma más normal de que se produzca esto, es cuando haces referencia a un objeto que no esta instanciado, porque aun no ha sido creado o ya se ha destruido.
Sabiendo esto: - Fíjate como destruyes los objetos y si haces referencia a alguno de estos despues de haber sido destruído. - Por ahora, no destuyas ningun objeto dentro del mismo (Self.Destroy) - Fíjate que no se haga referencia a un objeto que no ha sido creado Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
|
|
#6
|
||||
|
||||
|
hola delphi.com.ar, gracias por informarme
, ahora con respecto a los que me indicaste no entendi muy bien que quieres decir con fijarme en las referencias que hago, pero puedo decir que por medio de código no mando a llamar nada que ya este destruido, inlcuso incluso los querys que ocupo para la forma de consulta estan situados en la misma y no en mi datamodule, por otro lado lo que si note es que tengo una forma la cual ocupo para entrar a mi sistema y esa nunca la destruyo, pero realente no creo que por esa forma sea mi problema ya que lo logico sería entonces que el error se presentara siempre que cierro la aplicacion no? mil gracias por el tiempo que me estan brindando... modifique mi aplicación y ya elimino la forma antes mencionada antes de cerrar el sistema pero el error sigue en el mismo lugar espero alguien me pueda ayudar a enterder ![]() Última edición por Aura fecha: 01-04-2004 a las 21:10:46. |
|
#7
|
||||
|
||||
Agradezco enormemente la ayuda que me brindaron días atrás y aunque ya pasaron muchos días les informo que se soluciono ya mi problema y tal vez mi error fue que no les comenté que estoy utilizando integridad referencial en mis tablas y eso era lo que me originaba el error, aunque claro como todo al solucionar este problema se me originaron otros pero creo que son mas fáciles de localizar, mil gracias a ustedes....![]()
__________________
----------------->> Saluditos <<-----------------
|
|
#8
|
||||
|
||||
|
¿Las consultas problemáticas las realizas en un formulario aparte?
De ser así, ¿dicho formulario se libera al momento o hasta que termina la aplicación? Si es lo último intenta liberarlo al momento de cerrarlo (evento OnClose, Action := caFree) para tratar de que la excepción salte desde antes y no al término de la aplicación. Esto no ayudará directamente a saber qué es lo que pasa pero sí a acotar el problema de forma que sea más fácil tratar de localizarlo. Por otra parte, en el mensaje de error 'Access violation at address 00000000. Read of address 00000000' ¿la dirección (address) realmente es 0 o tiene otro valor? Si es lo último apúntalo y antes de cerrar el mensaje pásate al IDE de Delphi, oprime Pausa y usa la opción Search|Find Error para tratar de que te lleve al punto donde se está produciendo la excepción. Pasa a veces que algunos errores causados por referenciar objetos ya destruidos se generan cuando el sistema de excepciones ya cerró y por ello el "debugger" no puede localizar directamente la línea. // Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|