(Iv) Crie um arquivo de unidade que captura imagens scrncpt
unidade scrncpt;
interface
usa janelas, formulários, controles, classes, gráficos;
função capturascreenRect (arect: Trect): tbitmap;
Função Capturescreen: tbitmap;
Função CapteclientImage (Controle: TControl): Tbitmap;
função captureControlimage (controle: tControl): tbitmap;
Função CaptureWindowImage (WND: HWND): TBITMAP;
Implementação
função capturascreenRect (arect: Trect): tbitmap;
var screendc: hdc;
Começar
resultado: = tbitmap.create;
Com resultado, arect Do
Começar
Largura: = esquerda direita;
Altura: = top inferior;
Screendc: = getDC (0);
tentar
// bool bitblt (hdcdest, nxdest, nydest, nwidth, nheight, hdcsrc, nxsrc, nysrc, dwrop)
// Copie o bitmap do dispositivo de origem Descrição Tabela HDCSRC para o dispositivo de destino Descrição Tabela HDCDEST,
// O Raster OpCode DWrop especifica o método de combinação do diagrama de origem
Bitblt (Canvas.Handle, 0,0, largura, altura, screendc, esquerda, superior, srcCopy);
Finalmente
Lançadoc (0, screendc);
fim;
fim;
fim;
// Captura de imagem em tela cheia
Função Capturescreen: tbitmap;
Começar
com a tela
Resultado: = CaptureScreenRect (Rect (0,0, largura, altura));
fim;
// rasteja a imagem da área do cliente de um formulário ou controle
Função CapteclientImage (Controle: TControl): Tbitmap;
Começar
//Control.clientorigin é o canto superior esquerdo da área do cliente de controle. x, y é uma variável de clientela
com controle, control.clientorigin Do
Resultado: = CaptureScreenRect (Bounds (X, Y, ClientWidth, ClientHeight));
fim;
// rasteja uma forma ou controle inteiro
função captureControlimage (controle: tControl): tbitmap;
Começar
com controle do
Se pai = nil então // não há formulário pai, pegue -o diretamente de acordo com sua localização
Resultado: = CapturesScreenRect (limites (esquerda, superior, largura, altura))
else // existe um formulário pai, converta -o em relação às coordenadas da tela e depois pegue -o
com parent.clienttoscreen (ponto (esquerda, em cima)) fazer
Resultado: = CaptureScreenRect (limites (x, y, largura, altura));
fim;
// rasteja de acordo com a alça do formulário
Função CaptureWindowImage (WND: HWND): TBITMAP;
var r: Trect;
Começar
Getwindowrect (wnd, r);
Resultado: = CaptureScreenRect (R);
fim;
fim.