Cita:
Empezado por makina
[...] espero alguien pudiera ayudar con el error que me muestra al intentar usar el TBookmark.
|
Lo siguiente no será de mucha ayuda, pero quizá sirva para ir avanzando. El error aparece porque el compilador no admite definir tipos
de forma tipificada cuando el tipo base es un genérico.
Código Delphi
[-]Type
T1 = Type Integer; T2<Tipo> = Array Of Tipo; T3 = Type T2<Integer>; T4 = T2<Integer>;
Resulta ser que TBookmark es desde hace algunas versiones un alias del tipo TBytes, el cual la RTL define de forma implícita como TArray<Byte> (array of Byte). Para sortear ese inconveniente, vas a tener que cambiar el código que muestras así:
Código Delphi
[-]TfrBookmark =
{$IFDEF IBO} type string;
{$ELSE} type TBookmark; {$ENDIF}
por:
Código Delphi
[-]TfrBookmark =
{$IFDEF IBO} type string;
{$ELSE} TBookmark;
{$ENDIF}
Es decir, TfrBookmark ya no podrá ser un tipo declarado de forma tipificada (con la palabra
Type después del signo de igual). El impacto de este cambio estará en todas aquellas partes de FreeReport que asuman la existencia de TfrBookmark como tipo de dato único y no como un simple alias de TBookmark / TBytes. Como yo lo veo y con la dispensa de no conocer FreeReport, diría que eso va a ser el menor de tus problemas en el caso que planteas, así que adelante.
Saludos.
Al González.