(Iv) Buat file unit yang menangkap gambar SCRNCPT
unit scrncpt;
antarmuka
menggunakan windows, formulir, kontrol, kelas, grafik;
fungsi captureScreenrect (arect: trect): tbitmap;
Fungsi CaptureScreen: tbitmap;
Fungsi CaptureClientImage (Kontrol: TConstrol): TbitMap;
Fungsi CaptureControlimage (Kontrol: TControl): TbitMap;
Function CaptureWindowImage (WND: HWND): TBITMAP;
Pelaksanaan
fungsi captureScreenrect (arect: trect): tbitmap;
var screendc: hdc; // menangani tabel deskripsi perangkat
Mulai
Hasil: = tbitmap.create;
Dengan hasil, Arect lakukan
Mulai
Lebar: = kiri-kanan;
Tinggi: = Bottom-top;
Screendc: = getDC (0);
mencoba
// bool bitblt (hdcdest, nxdest, nydest, nwidth, nheight, hdcsrc, nxsrc, nysrc, dwrop)
// Salin bitmap dari perangkat Sumber Deskripsi Tabel HDCSRC ke target perangkat deskripsi tabel hdcdest,
// Raster Opcode DWROP menentukan metode kombinasi diagram sumber
Bitblt (canvas.handle, 0,0, lebar, tinggi, screendc, kiri, atas, srccopy);
Akhirnya
Dirilis (0, screendc);
akhir;
akhir;
akhir;
// Pengambilan Gambar Layar Lengkap
Fungsi CaptureScreen: tbitmap;
Mulai
dengan layar lakukan
Hasil: = captureCreenrect (rect (0,0, lebar, tinggi));
akhir;
// merangkak gambar area klien dari suatu formulir atau kontrol
Fungsi CaptureClientImage (Kontrol: TConstrol): TbitMap;
Mulai
//Control.clientorigin adalah sudut kiri atas area klien kontrol. x, y adalah variabel klien
dengan kontrol, control.clientorigin lakukan
Hasil: = captureCreenrect (batas (x, y, clientwidth, clientheight));
akhir;
// merangkak seluruh bentuk atau kontrol
Fungsi CaptureControlimage (Kontrol: TControl): TbitMap;
Mulai
dengan kontrol lakukan
Jika induk = nil maka // tidak ada bentuk induk, langsung ambil sesuai dengan lokasinya
Hasil: = CaptureCreenrect (batas (kiri, atas, lebar, tinggi))
else // ada bentuk induk, mengubahnya menjadi relatif ke koordinat layar, dan kemudian ambil
dengan parent.clienttoscreen (titik (kiri, atas)) lakukan
Hasil: = captureCreenrect (batas (x, y, lebar, tinggi));
akhir;
// merangkak sesuai dengan pegangan formulir
Function CaptureWindowImage (WND: HWND): TBITMAP;
Var R: Trect;
Mulai
GetWindowrect (wnd, r);
Hasil: = captureCreenrect (r);
akhir;
akhir.