Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Urg: Problema con el tipo IDirectDrawSurface (https://www.clubdelphi.com/foros/showthread.php?t=24729)

DarkByte 31-08-2005 19:16:17

Urg: Problema con el tipo IDirectDrawSurface
 
Buenas, siento añadir el prefijo de urgente, sabiendo que aquí la gente ayuda sin ánimo de lucro... si no obtengo respuesta no pasa nada, únicamente es un intento :)

Intentando instalar un compo para tener acceso a la webcam obtengo un error en la siguiente línea del DirectDraw.pas:

Código Delphi [-]
      lpDDSZBufferDest            : PDirectDrawSurface; // Surface to use as Z buffer for dest

[Error] DirectDraw.pas(173): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record

La dirección del componente en cuestión es:
http://www.torry.net/vcl/mmedia/video/eavcap.zip

Uso Delphi 7, por si influye en algo.

dec 31-08-2005 19:41:26

Hola,

Si miras en la ayuda de Delphi por los errores que puede mostrar el compilador toparás con:

Cita:

Empezado por Ayuda de Delphi
Type '<element>' needs finalization - not allowed in variant record

Y, aparte de la descripción del mismo, un par de posibles soluciones:

Cita:

Empezado por Ayuda de Delphi
One solution to this error is to move all offending declarations out of the variant section. Another solution would be to use pointer types (^String, for example) and manage the memory by yourself.

Yo he probado con lo segundo, es decir:

Código Delphi [-]
      lpDDSZBufferDest: ^PDirectDrawSurface;
Haz lo mismo en todos los tipos en que se da el problema y podrás instalar el componente (en Delphi 7). Ignoro si luego este se comportará como se espera y/o habrá que tener en cuenta lo que se ha llevado a cabo, por lo que dice el extracto de la ayuda que arriba he copiado:

Cita:

Empezado por Ayuda de Delphi
(...) and manage the memory by yourself.


DarkByte 31-08-2005 21:53:51

Pues muchísimas gracias, funciona a las mil maravillas :)


La franja horaria es GMT +2. Ahora son las 12:26:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi