Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Screenshot de un TPanel (https://www.clubdelphi.com/foros/showthread.php?t=70538)

hgiacobone 26-10-2010 20:29:00

Screenshot de un TPanel
 
Hola amigos,
He visto muchos ejemplos de cómo hacer una captura del Desktop, de la Ventana actual e incluso del Form actual y almacenarlo luego en un archivo BMP tal cual un screenshot ordinario, pero la cosa es que yo necesito capturar solamente lo que se encuentra contenido en un TPanel especifico dentro de mi Form activo, que de por sí, tienen varios TPanel.
¿Es posible capturar solamente el contenido de un TPanel determinado?

Saludos,

delphi.com.ar 26-10-2010 20:43:03

Código Delphi [-]
var
  DC : HDC;
  bmp: TBitmap;
begin
  dc := GetWindowDC(Panel1.Handle);
  bmp := TBitmap.Create;
  try
    bmp.Width := Panel1.Width;
    bmp.Height := Panel1.Height;
    BitBlt(bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, DC, 0, 0, SRCCOPY);
    bmp.SaveToFile('c:\temp.bmp');
  finally
    bmp.Free;
    ReleaseDC(Panel1.Handle, DC);
  end;
end;

Saludos!

javier7ar 26-10-2010 23:33:44

Tambien podes usar la funcion PaintTo que tienen todos los TWinControl. Si te fijas en la ayuda de PaintTo explica incluso como pintar el control directamente sobre la impresora para imprimirlo.

Código Delphi [-]
var
  bmp: TBitmap;
begin
  bmp := TBitmap.Create;
  try
    bmp.Width := Panel1.Width;
    bmp.Height := Panel1.Height;
    Panel1.PaintTo(bmp.Canvas.Handle,0,0);
    bmp.SaveToFile('c:\temp.bmp');
  finally
    bmp.Free;
  end;
end;

Saludos

hgiacobone 28-10-2010 20:53:54

Gracias
 
Gracias muchachos por sus amables respuestas.


La franja horaria es GMT +2. Ahora son las 05:27:19.

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