In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Capturar pantalla

Foro de Xailer profesional en español
Responder
fredy[1]
Mensajes: 218
Registrado: Mar Mar 08, 2005 2:03 am

Capturar pantalla

Mensaje por fredy[1] »

Hola,
El Otro dí­a en Madrid, Bingen nos enseñó un programita que tiene que copia
una imagen de la pantalla y la pega en un informe.
He estado buscando cómo hacer el copiado de la pantalla pero no he sido capaz
de encontrar nada.
Una ayudita de cómo se hace?
Un saludico,
Fredy
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Capturar pantalla

Mensaje por Bingen Ugaldebere »

Lo puse hace tiempo en algún mensaje también pero aquí­ te lo dejo,
aunque es parte de la colección Messages que subiré en cuanto pueda a
Xailer.Info con las mejoras que he hecho hoy mismo con las sugerencias
vuestras del fin de semana que ya están hechas pero me falta incluirlas
en el manual.
Aunque ahora que recuerdo también me pidieron que esta función capturara
la ventana activa y no solo toda la pantalla como ahora.
Ja otro cambio más.
Salu2.
Function HardCopy( oForm, lPreview, cTitle )
LOCAL hBitmap, oBitMap
Default lPreview To .T.
Default cTitle To "Impresión de pantalla"
Application:lBusy := .T.
hBitmap := If(oForm=Nil,XA_CaptureBitmap(
GetDesktopWindow(),0,0,Screen:PaperRes()[2],Screen:PaperRes( )[1] ),;
XA_CaptureBitmap( oForm:Handle, -10, -25,
oForm:nHeight ,oForm:nWidth) )
oBitmap := TBitmap():CreateFromHandle( hBitmap )
Printer:lPreview := lPreview
Printer:nPreviewShowMode := smMAXIMIZE
Printer:nPrintQuality := DMRES_HIGH
Printer:cJobTitle := cTitle
Printer:nOrientation := DMORIENT_LANDSCAPE
Printer:StartDoc()
Printer:oCanvas:nMapMode := mmPIXELS
Printer:StartPage()
Printer:oCanvas:DrawPicture( {
100,100,Printer:PaperRes()[1],Printer:PaperRes()[2] }, oBitmap )
Printer:EndPage()
Printer:EndDoc()
Application:lBusy := .F.
If lPreview
Printer:Preview()
Endif
oBitmap:Destroy()
DeleteObject( hBitmap )
Return Nil
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Capturar pantalla

Mensaje por Bingen Ugaldebere »

Perdona Fredy que cuando he leido el código he recordado que ya lo
preparé para imprimir el Form que quieras y lo pone escrito hasta en la
cabecera.
No se en que estaba yo pensando, demasiadas cosas en la cabeza.
Salu2.
notengo
Mensajes: 417
Registrado: Vie Oct 12, 2007 1:29 pm

Capturar pantalla

Mensaje por notengo »

Fredy,
hace tiempo que tení­a pendiente de publicar un artí­culo sobre este tema.
Acabo de actualizarlo y lo he publicado en xailer.info.
Saludos,
José Lalí­n
Fredy
Mensajes: 199
Registrado: Mié Mar 29, 2006 1:28 am

Capturar pantalla

Mensaje por Fredy »

De lujo!!
Gracias a los dos
Un saludico,
Fredy
Responder