Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Error Access Violation en Paquetes (Packages) (https://www.clubdelphi.com/foros/showthread.php?t=25098)

DarKraZY 12-09-2005 18:35:28

Error Access Violation en Paquetes (Packages)
 
Hace unas semanas empecé a separar el código fuente en dos packages. Ahí introduje todas las unidades con objetos y formularios que solía utilizar en varios proyectos (antes duplicaba siempre los fuentes). Ya que leyendo varios hilos descubrí que la mejor manera para reutilizar código entre varios proyectos era el uso de Packages o Paquetes.

Todo iba perfectamente, poco a poco iba agregando más unidades y al mismo tiempo hacía cambios en mis proyectos y en las unidades que contenían los bpl. Automáticamente se compilaban, e incluso a veces forzaba a compilar los paquetes.

Pero desde hace unos días, si compilo el package dos veces, o a veces al darle a "Install" (también tengo componentes)... pues me da errores de Access Violation. No hay ningún error sintáctico, la fase de compilación es correcta.

No sé cual puede ser el error:

No es referente a la opción de "Build with runtimes Packages" ya que no hace falta que llegue a alguna aplicación para que de el error.
Utilizo dentro de los formularios herencia entre ellos.
Utilizo la versión Delphi 7 con el Update 7.1 de la web de borland.

Espero haberme explicado lo mejor posible, y gracias por su ayuda ;)

fredo 12-09-2005 23:33:50

Probaste reinstalando el delphi... claro que eliminandolo por completo (incluso del registro de windows....), a veces se chinga y no hay nada que hacer.... saludos.

Neftali [Germán.Estévez] 13-09-2005 09:50:57

...y me pregunto yo, ¿Qué tendrá que ver lo que haya en el registro de windows para que Delphi de un Access Violation en la instalación de paquetes?
Perdona que te lo diga (fredo), pero esa contestación me parece "a bulto" (por decir algo), es decir, que a todos los mensajes de la lista podríamos contestar con la misma, "no tiene nada que ver, pero reinstala".

Creo que el problema puede estar en las secciones de inicialización y finalización de los packages; Preferentemente al destruir cosas, ya que comentas qe te falla en la segunda pasada. Al compilar un package, éste se descarga de memoria y se ejecuta el Finalize y al hacer el Install, se vuelve a cargar y se ejecuta el Initialize, de ahí que esos puntos pueden provocar el error.
El error que comentas es debido (normalmente) a que algo que estás accediendo no está creado (es igual a nil), así que yo buscaría elementos (objetos) en las secciones antes comentadas.

DarKraZY 13-09-2005 12:34:37

Gracias Fredo por la respuesta, aunque ese no era el motivo.
Gracias sobretodo a Neftali, tenías toda la razón. No sé como se me olvidó liberar un objeto ya que había puesto:

Código Delphi [-]
initialization
  dmIconos := TdmIconos.Create(Application);

Pero claro no liberaba nunca el objeto... :( Aunque en teoría no debería de dar ningún problema, no? Porque al hacer un Create este asigna una nueva referencia.

De todas maneras he dejado el código así
Código Delphi [-]
initialization
  dmIconos := TdmIconos.Create(Application);

finalization
  dmIconos.Free;

De esta forma ya no me da ningún Access Violation al compilar.

Pero sigo teniendo un problema. Tengo dos paquetes. Uno de ellos solo es código fuente con clases y también formularios. En teoría, ya que no son componentes, puedo poner que sea un paquete de runtime, verdad??? o debido a los forms necesita que sea también en tiempo de diseño?

Porque si dejo el primer paquete como Runtime, me permite pulsar "Install" y al pulsarlo da un error de la rtl70.bpl y se cierra Delphi. Lo he solucionado poniendo en Runtime y Design, aunque no es la solución, no?

fredo 13-09-2005 14:35:31

Cita:

Empezado por Neftali
...y me pregunto yo, ¿Qué tendrá que ver lo que haya en el registro de windows para que Delphi de un Access Violation en la instalación de paquetes?
Perdona que te lo diga (fredo), pero esa contestación me parece "a bulto" (por decir algo), es decir, que a todos los mensajes de la lista podríamos contestar con la misma, "no tiene nada que ver, pero reinstala".

no te preocupes, solo queria ayudar, me ha pasado sus cuantas veces que me han dejado de funcionar cosas, tanto instala que desinstala componetes, asi tamto que tengo algunos que si no los instalas en el orden correcto a la primera simplemente no funcionan mas y debes reinstalar, son unos componentes que talves no conozsacas las "SYMANTEC", por eso la sujerencia, supuse que funciono OK y ahora no....

Bueno saludos y suerte.


La franja horaria es GMT +2. Ahora son las 13:24:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi