Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con truco- Capturar Imagen WebCam Avanzado - Direct X (https://www.clubdelphi.com/foros/showthread.php?t=95741)

alquimista 28-06-2022 19:02:54

Problema con truco- Capturar Imagen WebCam Avanzado - Direct X
 
Se que tiene unos años el post de truco. Pero me he puesto a usar la webcam con DirectX después de tener una app hecha de hace años con avicap32.dll y no funcionar en todas las cámaras.
He implementado lo que comentáis en el truco- Capturar Imagen WebCam Avanzado - Direct X, creo que falta un Tpanel en el código y me funciona para todas las cámaras, pero he observado un problema al utilizar ventanas de mensajes típicas (MessageBox, MessageDlg, etc).
He hecho un programa que pide tener un texto con el nombre de la foto en un Tedit. Si no hay nombre muestra un MessageBox.
Al mostrar dicho mensaje la webcam congela la imagen y hasta que no pulse Aceptar no se descongela. Me ocurre con cualquier mensaje incluso con MessageDlg, etc.

El programa tiene dos paneles con dos Timage. Uno para la imagen de la webcam y otro para sacar una foto de la misma.


He probado otro ejemplo por la web que usa las librerías DirectX https://www.delphibasics.info/home/d...captureexample y ocurre igual. En avicap32 no me pasa.
He probado a poner Application.ProcessMessages antes de mostrar el Dialogo de mensaje; pero no funciona.
¿Me podéis sugerir algo?

alquimista 28-06-2022 19:36:50

Solucionado.
Me respondo a mi mismo y por si le sirve a alguien.
Las unidades del truco VSample.pas y VFrames.pas son antiguas. Las he buscado por internet y en un GitHub aparecen versiones mejoradas que solucionan ese problema. las versiones antiguas del truco eran la 1.4 y 1.2 (actualizadas a la 1.6 y 1.22 respectivamente). Se necesita además una unidad más llamada UGDIPlus.pas. Lo he probado y ya no congela al mostrar mensajes típicos con MessageBox o similar.

ElKurgan 29-06-2022 06:39:50

Gracias por compartir la solución

Saludos

Casimiro Notevi 29-06-2022 10:55:13

Cita:

Empezado por alquimista (Mensaje 547343)
Solucionado.
Me respondo a mi mismo y por si le sirve a alguien.
Las unidades del truco VSample.pas y VFrames.pas son antiguas. Las he buscado por internet y en un GitHub aparecen versiones mejoradas que solucionan ese problema. las versiones antiguas del truco eran la 1.4 y 1.2 (actualizadas a la 1.6 y 1.22 respectivamente). Se necesita además una unidad más llamada UGDIPlus.pas. Lo he probado y ya no congela al mostrar mensajes típicos con MessageBox o similar.

Pues eso sí estaría bien ponerlo en el hilo de "Trucos" sobre ese tema :)


La franja horaria es GMT +2. Ahora son las 15:30:47.

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