(iv) สร้างไฟล์หน่วยที่จับภาพ scrncpt
หน่วย scrncpt;
ส่วนต่อประสาน
ใช้ windows, รูปแบบ, การควบคุม, คลาส, กราฟิก;
ฟังก์ชั่น capturescreenrect (arect: trect): tbitmap;
ฟังก์ชั่น CapturesCreen: TBITMAP;
ฟังก์ชั่น captureclientimage (การควบคุม: tControl): tbitmap;
ฟังก์ชั่น captureControlimage (การควบคุม: TCONTROL): TBITMAP;
ฟังก์ชั่น capturewindowImage (WND: HWND): TBITMAP;
การดำเนินการ
ฟังก์ชั่น capturescreenrect (arect: trect): tbitmap;
VAR SCREEDC: HDC;
เริ่ม
ผลลัพธ์: = tbitmap.create;
ด้วยผล arect ทำ
เริ่ม
ความกว้าง: = ขวาซ้าย;
ความสูง: = ด้านล่างสุด;
SCREEDC: = GETDC (0);
พยายาม
// bool bitblt (hdcdest, nxdest, nydest, nwidth, nheight, hdcsrc, nxsrc, nysrc, dwrop)
// คัดลอกบิตแมปจากอุปกรณ์ต้นฉบับคำอธิบายตาราง hdcsrc ไปยังอุปกรณ์เป้าหมายคำอธิบายตาราง hdcdest, hdcdest,
// raster opcode dwrop ระบุวิธีการรวมกันของไดอะแกรมต้นทาง
bitblt (canvas.handle, 0,0, ความกว้าง, ความสูง, screendc, ซ้าย, ด้านบน, srccopy);
ในที่สุด
เปิดตัว (0, ScreendC);
จบ;
จบ;
จบ;
// การจับภาพหน้าจอเต็มรูปแบบ
ฟังก์ชั่น CapturesCreen: TBITMAP;
เริ่ม
ด้วยหน้าจอทำ
ผลลัพธ์: = CapturesCreenRect (rect (0,0, ความกว้าง, ความสูง));
จบ;
// รวบรวมข้อมูลภาพพื้นที่ไคลเอนต์ของแบบฟอร์มหรือการควบคุม
ฟังก์ชั่น captureclientimage (การควบคุม: tControl): tbitmap;
เริ่ม
//control.clientorigin เป็นมุมบนซ้ายของพื้นที่ไคลเอนต์ควบคุม x, y เป็นตัวแปรของ clientorigin
ด้วยการควบคุม, control.clientorigin ทำ
ผลลัพธ์: = CapturesCreenRect (ขอบเขต (X, Y, ClientWidth, ClientHeight));
จบ;
// คลานทั้งแบบฟอร์มหรือการควบคุม
ฟังก์ชั่น captureControlimage (การควบคุม: TCONTROL): TBITMAP;
เริ่ม
ด้วยการควบคุม DO
ถ้า parent = nil แล้ว // ไม่มีแบบฟอร์มหลักให้คว้ามันโดยตรงตามตำแหน่งของมัน
ผลลัพธ์: = CapturesCreenRect (ขอบเขต (ซ้าย, ด้านบน, ความกว้าง, ความสูง))
อื่น // มีแบบฟอร์มหลักแปลงเป็นสัมพันธ์กับพิกัดหน้าจอแล้วคว้ามัน
ด้วย parent.clienttoscreen (จุด (ซ้าย, บน)) ทำ
ผลลัพธ์: = capturescreenrect (ขอบเขต (x, y, ความกว้าง, ความสูง));
จบ;
// รวบรวมข้อมูลตามที่จับแบบฟอร์ม
ฟังก์ชั่น capturewindowImage (WND: HWND): TBITMAP;
var r: trect;
เริ่ม
GetWindowRect (WND, R);
ผลลัพธ์: = CapturesCreenRect (R);
จบ;
จบ.