Página 1 de 1

Extensiones de Clase en una libreria propia

Publicado: Vie May 10, 2019 1:26 pm
por Claudio C
Estimados

Realice extensiones de TreeView y TreeviewItem de la forma:

CLASS TTreeView FROM XTreeView , etc.etc.

Funciona perfecto lo desarrollado.

Estas extensiones las ensamblo en una libreria propia. Y ahí aparece el problema:

1) Al incluir la libreria (con las extensiones) en una aplicacion, el treeview se comporta como si no estuviera programada la extension.
Esto se manifiesta cuando se hace una solicitud (metodo o variable) de la extension y da error (not found).

2) Si incluyo los fuentes de la extension en la aplicacion: funciona perfecto.
3) Si no incluyo los fuentes en la aplicacion pero hago un request:
request TTreeView
funciona perfecto.

Conclusión y pregunta:

- Evidentemente, al compilar la libreria, NO toma la extension incluida. Asumo que en la lista de 'nombres' de la libreria está XTreview en vez de TTreview ( y esto se resuelve al compilar/precompilar la aplicacion)
- ¿Cual sería la forma correcta de armar la libreria para no tener que hacer el request en cada aplicacion ya que TTreview es un nombre del lenguaje? ( no una funcion propia que esta en una libreria y si necesita el request para que se incluya)

El problema se multiplica porque son muchas las extensiones y aplicaciones.

Desde ya gracias por su tiempo.
Claudio.

Re: Extensiones de Clase en una libreria propia

Publicado: Vie May 10, 2019 1:57 pm
por ignacio
Buenos días,

Como usted mismo indica el problema es que los modulo de las librerías de Xailer toman preferencia sobre los suyos y para evitar esto hay varias formas en las que puede hacerlo:

1) Marcar su librería como de mayor prioridad: Desde el formulario de Propiedades del proyecto, en la sección de Librerías, ponga su librería la primera de todas y además pulse el botón derecho y marque la opción 'Revisar en primer lugar'. Una vez marcada debería salir en negrita. En el caso de que no funcionase intente lo siguiente:

2) Realice el REQUEST de forma general en un archivo include que utilice para toda su aplicación. O bien:

3) Elimine el módulo que le incomoda de la librería XailerTCls (libXailerTCls.a / XailerTCls.lib). Consulte la documentación de MingGW / Borland para ver como hacerlo. Esta última opción le exigirá que incluya SU librería en todos los proyectos que realice.

Saludos