2012-05-24 23 views
6

Tengo un objeto TForm cuya altura es mayor que la resolución vertical requerida de mi pantalla.Captura de pantalla de la forma cuyas dimensiones son mayores que las dimensiones de la pantalla

Por alguna razón, Windows no permite que el área visible (¿cliente?) Del formulario exceda la resolución de pantalla, por lo que las barras de desplazamiento verticales aparecen en mi formulario.

¿Cómo obtendría una imagen de TBitmap o una captura de pantalla de todo el formulario (sin barras de desplazamiento, todos los componentes de formulario visibles) para que todo el contenido del formulario esté visible?

+0

¿Has probado el método ['GetFormImage'] (http://docwiki.embarcadero.com/Libraries/en/Vcl.Forms.TCustomForm.GetFormImage)? ; – RRUZ

+0

Sí, 'GetFormImage' es lo que estamos usando actualmente. – ardnew

+0

Por ejemplo, cree un objeto 'TForm', coloque una gran cantidad de contenido vertical para que sus barras de desplazamiento verticales (habilitadas) aparezcan automáticamente. La altura total del contenido debe exceder la resolución de pantalla vertical. Llame a 'GetFormImage' y verá que se descarta el contenido inferior. – ardnew

Respuesta

8

Primero tiene que asegurarse de que el formulario no tenga barras de desplazamiento. Para eso, puede escribir un controlador de eventos para FormConstrainedResize y ajustar MaxWidth y MaxHeight a sus necesidades. Si el tamaño del formulario está restringido durante el diseño, establezca el ancho y el alto requeridos en el evento FormCreate a los valores deseados.

Ahora puede usar GetFormImage para obtener la captura de pantalla.

+0

Excelente, gracias. – ardnew

Cuestiones relacionadas