(Iv) Crear un archivo unitario que capture imágenes scrncpt
Unidad scrncpt;
interfaz
Utiliza Windows, formularios, controles, clases, gráficos;
Función CapturesCreenRect (ARECT: TRECT): TBITMAP;
Función CaptureScreen: TBITMAP;
función captureClientImage (control: tcontrol): tbitmap;
función captureControleMage (control: tcontrol): tbitmap;
function CaptureWindowimage (WND: HWND): TBITMAP;
Implementación
Función CapturesCreenRect (ARECT: TRECT): TBITMAP;
VAR SCHEENDC: HDC; // Tabla de descripción del dispositivo
Comenzar
resultado: = tbitmap.create;
Con resultado,
Comenzar
Ancho: = derecha-izquierda;
Altura: = parte inferior de la cabeza;
SCHIENDC: = getDC (0);
intentar
// bool bitblt (hdcdest, nxDest, nydest, nwidth, nheight, hdcsrc, nxsrc, nysrc, dwrop)
// Copiar el mapa de bits de la tabla de descripción del dispositivo de origen HDCSRC a la tabla de descripción del dispositivo de destino HDCDEST,
// El código de operación de ráster DWROP especifica el método de combinación del diagrama de origen
Bitblt (Canvas.handle, 0,0, ancho, altura, screSendc, izquierda, arriba, srccopy);
Finalmente
LibereC (0, ScreenDC);
fin;
fin;
fin;
// Captura de imagen de pantalla completa
Función CaptureScreen: TBITMAP;
Comenzar
con pantalla do
Resultado: = capturescreenRect (rect (0,0, ancho, altura));
fin;
// rastrear la imagen del área del cliente de un formulario o control
función captureClientImage (control: tcontrol): tbitmap;
Comenzar
//Control.clientorigin es la esquina superior izquierda del área del cliente de control. x, y es una variable de clientorigin
con control, control.clientorigin do
Resultado: = capturescreenRect (límites (x, y, clientwidth, clientHeight));
fin;
// rastrear un formulario completo o control
función captureControleMage (control: tcontrol): tbitmap;
Comenzar
con control hacer
Si matriz = nil entonces // no hay forma principal, agarára directamente de acuerdo con su ubicación
Resultado: = CapturesCreenRect (límites (izquierda, arriba, ancho, altura))
else // hay una forma principal, conviértala en relación con las coordenadas de la pantalla y luego agarrala
con parent.clienttoscreen (punto (izquierda, arriba)) hacer
Resultado: = capturescreenRect (límites (x, y, ancho, altura));
fin;
// gatear de acuerdo con el mango del formulario
function CaptureWindowimage (WND: HWND): TBITMAP;
var r: trect;
Comenzar
GetWindowrect (Wnd, R);
Resultado: = CapturesCreenRect (r);
fin;
fin.