Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Más sobre VirtualTreeview (https://www.clubdelphi.com/foros/showthread.php?t=93639)

Angel.Matilla 15-12-2018 10:55:40

Más sobre VirtualTreeview
 
Después de muchas batallas he conseguido instaler este componente. Para ir enterándome de como funciona en un formulario limpio he puesto un TVirtualStringTree vacío, sin más. Al compilarlo de ha dado dos errores en el fichero uxtheme.h que solucionado gracias a la ayuda de otro foro, pero una vez solucionados ambos me aparece otro error más al enlazar el proyecto:
Cita:

[Linker Error] Unable to open file 'VIRTUALTREES.RES'
He buscado y ese archivo lo tengo en dos carpetas, en C:\Program Files (x86)\Soft Gems\Virtual Treeview\Source y en C:\Program Files (x86)\Borland\CBuilder6\Source\vcl.

Por otra parte, en las opciones del entorno tengo puestas en Library path
C:\Program Files (x86)\Soft Gems\Theme Manager\Source y C:\Program Files (x86)\Soft Gems\Virtual Treeview\Source; están las últimas del listado y no sé si habrá que hacer algo más.

ecfisa 15-12-2018 17:53:53

Hola.

Ciertamente nunca he usado ese componente. Pero por el mensaje de error y dado que por defecto el enlazador busca los archivos de recursos en la misma carpeta donde reside el archivo que contiene la directiva de inclusión del recurso, te pregunto:
¿ Has intentado copiando el archivo VIRTUALTREES.RES a la carpeta donde está el proyecto o especificando la ruta al mismo ?

v. gr.:
Código PHP:

#pragma resource "C:\\...\\etc\\...\\VIRTUALTREES.RES" 

Saludos :)

Angel.Matilla 16-12-2018 11:53:22

Cita:

Empezado por ecfisa (Mensaje 530000)
¿ Has intentado copiando el archivo VIRTUALTREES.RES a la carpeta donde está el proyecto o especificando la ruta al mismo?

Sí, lo copié en la carpeta del proyecto pero da el mismo error. Lo que no he probado es incluirlo como directiva.

Angel.Matilla 17-12-2018 09:54:21

Cita:

Empezado por ecfisa (Mensaje 530000)
¿ Has intentado copiando el archivo VIRTUALTREES.RES a la carpeta donde está el proyecto o especificando la ruta al mismo ?

Todo aclarado. Tengo dos carpetas con nombre similar y había copiado el fichero en la que no era.

Angel.Matilla 02-01-2019 19:02:17

Estoy tratando de enterarme como funciona este elemento. De momento tengo un solo formulario en el que puesto nada más que un VirtualStringTree, pero al compilar ese formulario me da un error el compilador:
Cita:

VirtualTrees.hpp: E2321 Declaration does not specify a tag or an identifier
y apunta a estas líneas de dicho fichero:
Código:

struct TSHDragImage;
typedef TSHDragImage *PSHDragImage;

#pragma pack(push, 1)
struct TSHDragImage
{
    tagSIZE sizeDragImage;
    Types::TPoint ptOffset;
    HBITMAP hbmpDragImage;
    unsigned ColorRef;
};    // Esta es la línea en la que está dando el error
#pragma pack(pop)

y no sé como salir del atolladero :oops:

Ñuño Martínez 03-01-2019 18:38:57

He hecho una búsqueda y al parecer el compildor no encuentra el nombre de la struct. Pero no me cuadra, porque la definición es correcta (struct nombre { campos }; ). ¿No será que el preprocesador está haciendo algo como declarando una macro vacía con el nombre de la struct? Pero es un bug muy raro que debería estar detectado...

Angel.Matilla 03-01-2019 18:53:50

1 Archivos Adjunto(s)
Cita:

Empezado por Ñuño Martínez (Mensaje 530276)
He hecho una búsqueda y al parecer el compildor no encuentra el nombre de la struct. Pero no me cuadra, porque la definición es correcta (struct nombre { campos }; ). ¿No será que el preprocesador está haciendo algo como declarando una macro vacía con el nombre de la struct? Pero es un bug muy raro que debería estar detectado...

El fichero está tal cual lo deja el instalador, por eso me tiene totalmente despistado. Por si alguno es capaz de ver algo más que yo (eso seguro), os dejo aquí el fichero problemático. Lo tengo puesto en C:\Program Files (x86)\Borland\CBuilder6\Include\Vcl

Angel.Matilla 04-01-2019 09:59:07

Sigo haciendo pruebas. He creado un proyecto en el que sólo tengo un fórmulario y he añadido al mismo únicamente un TVirtualStringTree, y al compilarlo no da níngún error. Cada vez lo entiendo menos.

Casimiro Notevi 04-01-2019 10:18:02

Te podría pasar ejemplos en delphi, pero creo que no te serviría de mucho :o

Angel.Matilla 04-01-2019 10:59:18

Gracias. Ya encontré la solución y es una estupidez que no sé como no se me ocurrió antes. El fichero de cabecera VirtualTrees.hpp se pone por defecto, y como es lógico, en el formulario que contiene el TVirtualStringTree; se ve que en la compilación algún otro fichero de cabecera machaca parte de ese código. Me ha bastado con poner ese hpp en formulario que lanza el resto de la aplicación para que ya no dé error. :o

Ñuño Martínez 04-01-2019 11:15:08

Parece que se confirma lo que dije del preprocesador, seguro que influido por el orden en el que se cargan las cabeceras. Quizá sea buena idea hacer un bug report para los desarrolladores del componente.


La franja horaria es GMT +2. Ahora son las 09:07:45.

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