Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Captura de pantalla (de formulario) (https://www.clubdelphi.com/foros/showthread.php?t=63826)

Duc 04-03-2009 17:56:08

Captura de pantalla (de formulario)
 
Hola!

Tengo un problema. Necesito transofmar un formulario en una imagen. La idea es que quiero mover el formulario por un espacio 3D, entonces lo que quiero hacer es lo siguiente:
1- Capturar como imagen el formulario.
2- Generar un rectángulo con OpenGL.
3- Asignar como textura del rectángulo la imagen capturada en punto 1.
4- Ya podemos mover el rectángulo por el espacio, y que nos de la impresión de que movemos el formulario.
El fomulario, mientras se mueva, no tiene que interactuar con el usuario, así que con la imagen vale.
Entonces, he estado mirando ya por los foros, y lo que hago ahora para coger la imágen del formulario es hacer una toma de pantalla sólo del espacio dónde está el formulario. Hay alguna forma mejor de hacer-lo? ya que esta forma tiene un problema: si un formulario no se ve por completo en la pantalla, la imagen resultante tampoco estará completa.

Muchas gracias!

roman 04-03-2009 18:21:04

Cita:

Empezado por Duc (Mensaje 340174)
si un formulario no se ve por completo en la pantalla, la imagen resultante tampoco estará completa.

¿Y no puedes pasar el formulario al frente (BringToFront o similar) antes de la captura?

// Saludos

Duc 04-03-2009 19:07:07

Sí, però imagínate que el formulario esté un poco fuera de la pantalla... también lo podría mover... pero la idea es que no se note.

O imagínate que tenga un modal en frente...

mmm... a lo mejor sí que es la solución, mover el formulario y traer-lo al frente. ^_^ pero no estoy al 100% seguro.

coso 04-03-2009 20:35:57

¿Tu formulario cambia en tiempo de ejecucion? porque si no es asi, puedes tener guardado su bitmap y usarlo en el momento que necesites como textura. Otra manera, aunque no estoy seguro, seria usar un formulario de glscene, que ya tienen implementados estos efectos (no estoy seguro, recuerdo haber visto algo pero...)

Duc 05-03-2009 17:31:55

Sí que cambia en tiempo de ejecución, sólo no cambia cuando está haciendo el efecto, así que no puedo usar un bitmap guardado : (

Voy a mirar lo del tema que comentas del formulario GLScene.

Duc 05-03-2009 18:30:46

Hola de nuevo! La documentación de GLScene es un poco escasa, pero bueno...

He encontrado una forma mejor (creo yo) de coger la información que necesito! La función "GetFormImage" de un TForm.

Así pues, al hacer "Form1.GetFormImage" me devuelve un TBitmap con la información del canvas, aunque este no salga en pantalla (ya que si se coge la información directamente de "Form1.Canvas", no se tiene información de las partes del formulario que no salen en pantalla en ese momento).

Así que parece que de momento vaya por buen camino... Ahora sólo falta aclararme con GLScene (de momento ya tengo un cubo dando vueltas jeje).

Gracias!
: )


La franja horaria es GMT +2. Ahora son las 08:43:33.

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