Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con Loadpackage (https://www.clubdelphi.com/foros/showthread.php?t=87884)

Kiranov 12-03-2015 20:58:52

Problema con Loadpackage
 
Buenas tardes,
Estoy trabajando con Delphi XE7, obre Win 8.1 de 64bits.

Actualmente estoy experimentando con Packages, cargandolas por medio de loadpackage. Dichas librerias usan styles y estan hechas sobre VCL.

escribo por lo siguiente:
Puedo cargar la BPL correctamente y cerrarla y todo muy bien, pero como a la 5ta vez qu la cargo me muestra el siguiente error y ya de ahi no me carga la bpl:
"Class 'TRzEditStyleHook' is already registered for 'TRzCustomEdit'."

la verdad no se como desregistrar esa clase. ya estuve buscando por media internet y no he podido solucionarlo, les agraeceria si a alguen ya le ha pasado y haber si me pudiera dar un norte...

Saludos!

Neftali [Germán.Estévez] 13-03-2015 10:11:36

¿Liberas la BPL correctamente?
¿Tienes el fuente del componentes para comprobar no deja nada "registrado"?

Si busca en Google verás que hay un par de referencias al mismo error que tienes tú, el problema es que son en ruso/chino... :o:o
A ver si el traductor te aclaras.

Otra opción es dirigirle la pregunta a los creadores del componente, a ver si ellos se han topado con el mismo problema antes y te dan una solución.

Kiranov 13-03-2015 16:35:53

Buenos dias,

gracias por tu respuesta,

en la bpl tengo estoy usando la inicializacion y la finalizacion de esta manera:
Código Delphi [-]
initialization
  RegisterClass(Tchngpass);

finalization
  UnregisterClass(Tchngpass);

Y desde el modulo principal, librero a BPL de esta forma:
Código Delphi [-]
        UnRegisterModuleClasses(packagemodule);
        UnloadPackage(packagemodule);

donde packagemodule es una variable de tipo HModule. Lo mas raro de todo es que puedo cargar y descargar la BPL varias veces (hasta 5 veces segun he contado) y es cuando aparece el error.

Tengo cerca de un mes con este problema y antes de decidirme a pregunta en este foro andube buscando por todos lados y encontre muy poco. Encontre un post de un amigo que se llama Rodrigo (https://theroadtodelphi.wordpress.co...tyles-part-ii/) donde Arturo Rubalcaba renia un problema similar al mio.

Seguire buscando y si encuentro algo, lo posteare por aca...

Saludos!

Neftali [Germán.Estévez] 13-03-2015 16:46:36

¿Has llegado a "tracear" todo el proceso?
Activa las excepciones en el IDE para ver si estás teniendo algún problema al descargar el package y no se liberan las cosas correctamente.

Kiranov 13-03-2015 17:16:55

Estoy usando la version gratuita de MadExcept, ahi fue donde pude ver que la exception la causa el register:

Cita:

main thread ($13c0):
506b588b +0db vcl210.bpl Vcl.Themes 7379 +16 TCustomStyleEngine.RegisterStyleHook
06e463aa +01a RaizeComponentsVcl210.bpl Rzedit TRzCustomEdit.Create
50060a86 +042 rtl210.bpl System 22225 +18 InitUnits
50060af6 +046 rtl210.bpl System 22250 +8 @PackageLoad
069c138d +005 bchngpass.bpl SysInit 1002 +0 @PackageLoad
069cb2d9 +005 bchngpass.bpl .bchngpass Bchngpass.@PackageLoad
5009e6cb +03b rtl210.bpl System.SysUtils 24317 +4 InitializePackage
0046d4bb +01b AdaOS.exe madExcept InterceptInitializePackage
5009e823 +083 rtl210.bpl System.SysUtils 24368 +18 LoadPackage
5009e79a +002 rtl210.bpl System.SysUtils 24341 +0 LoadPackage
0058e526 +0b6 AdaOS.exe fmaincv 265 +5 Tmaincv.abrirmodulo
0058e267 +103 AdaOS.exe fmaincv 209 +4 Tmaincv.Button2Click
Sigo investigando, agradezco que me sigas ayudando...

Saludos!

Kiranov 23-03-2015 21:39:07

Buenas tardes,

Ya estuve intentando varios metodos para cargar y descargar la BPL y no he conseguido nada. Me sigue marcando el mismo error. Ahora, me surgio una duda: ¿que configuracion debe de llevar si se trata de una BPL que puede ser cargada y descargada a discreción del mismo usuario?
Actualmete tengo esta configuracion:

Código Delphi [-]
{$R *.res}
{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO OFF}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION OFF}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES ON}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DEFINE DEBUG}
{$ENDIF IMPLICITBUILDING}
{$IMPLICITBUILD ON}

Agradezco la ayuda.
Saludos!


La franja horaria es GMT +2. Ahora son las 10:03:51.

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