Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Y más problemas con VirtualTreeView (https://www.clubdelphi.com/foros/showthread.php?t=93711)

Angel.Matilla 25-01-2019 13:17:37

Y más problemas con VirtualTreeView
 
Tengo un formulario en el que combino varios TListView y un par TVirtualStringTree dentro de un TPageControl. No sé por qué motivos al compilar el mismo me está dando un error en el fichero VirtualTrees.hpp; en concreto en estas líneas:
Código:

struct TSHDragImage;
typedef TSHDragImage *PSHDragImage;

#pragma pack(push, 1)
struct TSHDragImage
{
    tagSIZE sizeDragImage;
    Types::TPoint ptOffset;
    HBITMAP hbmpDragImage;
    unsigned ColorRef;
};
#pragma pack(pop)

Y el error es este:
Cita:

E2321 Declaration does not specify a tag or an identifier
Evidentemente el código de ese hpp no lo he tocado ¿Puede ser que hay alguna incompatibilidad entre estos elementos? Porque otra razón no encuentro.

Angel.Matilla 25-01-2019 18:18:10

Es curioso. Después de muchas vueltas y pruebas he descubierto que el error no se debía estrictamente al formulario en el que estaban los TVirtualStringTree; se estab produciendo en otros dos formularios que tenía el include a aquel otro. Me he quedado un pelín perplejo porque no sé los motivos de ese choque.

ecfisa 25-01-2019 18:23:53

Hola.

Como no dispongo de ese componente solo puedo intentar ayudarte con alguna referencia al error y una prueba basada en la declaración que mencionas en tu mensaje. Ojalá te ayude para encontrar el origen del fallo.

Referencia al error : E2321: Declaration does not specify a tag or an identifier.

Esta es la prueba que realicé en consola y que no me arroja ningún error:
File1.h:
Código PHP:

#ifndef FILE1_H
#define FILE1_H

#include <Classes.hpp>  // tagSIZE

struct TSHDragImage;
typedef TSHDragImage *PSHDragImage;

#pragma pack(push, 1)
struct TSHDragImage
{
  
tagSIZE sizeDragImage;
  
TPoint ptOffset;
  
HBITMAP hbmpDragImage;
  
unsigned ColorRef;
};
#pragma pack(pop)

#endif  // FILE1_H 

Prueba:
Código PHP:

#include "File1.h"

int main(int argccharargv[])
{
  
PSHDragImage psh;

  
psh->sizeDragImage.cx 300;
  
psh->sizeDragImage.cy 200;
  
psh->ptOffset         = (Point)(10,10);
  
psh->hbmpDragImage    NULL;
  
psh->ColorRef         GetSysColor(COLOR_ACTIVEBORDER);

  return 
0;


Pareciera entonces que el error que mencionas se estaría produciendo en otro lado.

Saludos :)

ecfisa 25-01-2019 18:25:23

Veo que ya lo has encontrado mientras escribía este mensaje ^\||/


Saludos :)

Angel.Matilla 25-01-2019 18:31:40

Muchas gracias de todas maneras.


La franja horaria es GMT +2. Ahora son las 11:27:37.

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