(7) รวบรวมข้อมูลแบบฟอร์มหรือรูปแบบการควบคุม
สร้าง Form2 ใหม่และบันทึกเป็น Capture2.pas ตั้งค่าคุณสมบัติทั้งสี่ของแอตทริบิวต์ Bordericons เป็นเท็จ
Borderstyle ถูกตั้งค่าเป็น bsnone, formstyle ถูกตั้งค่าเป็น fsstayontop
ตัวแปรทั่วไปสองตัว: Frect: Trect, FBMP: TBITMAP;
การจับภาพหน่วย 2;
ส่วนต่อประสาน
ใช้
Windows, ข้อความ, sysutils, ตัวแปร, คลาส, กราฟิก, การควบคุม, รูปแบบ,
บทสนทนา;
พิมพ์
tform2 = คลาส (tform)
โพรซีเดอร์แบบฟอร์ม (ผู้ส่ง: tobject);
ขั้นตอนการสร้างสรรค์ (ผู้ส่ง: tobject);
FORMDESTROY ขั้นตอน (ผู้ส่ง: TOBJECT);
รูปแบบขั้นตอน (ผู้ส่ง: tobject);
Procedure FormMouseUp (ผู้ส่ง: tobject; ปุ่ม: tmouseButton;
SHIFT: TSHIFTSTATE;
ส่วนตัว
{ประกาศส่วนตัว}
สาธารณะ
Frect: Trect;
FBMP: TBITMAP;
จบ;
วาจา
Form2: tform2;
การดำเนินการ
{$ r *.dfm}
// สร้างเคอร์เซอร์เคอร์เซอร์แบบกำหนดเองใหม่และวางไว้ในทรัพยากร Capture2.res
// ในไฟล์มีเส้นขอบสี่เหลี่ยมสีขาว 32*32 เพื่อระบุช่วงของการจับภาพ
ขั้นตอน TFORM2.FormCreate (ผู้ส่ง: tobject);
VAR ADC: HDC;
const crhand = -18;
เริ่ม
Screen.cursors [Crhand]: = loadcursor (Hinstance, 'Cursor_1');
เคอร์เซอร์: = crhand;
fbmp: = tbitmap.create;
fbmp.width: = screen.width;
fbmp.height: = screen.height;
ADC: = getDC (0);
bitblt (fbmp.canvas.handle, 0,0, หน้าจอ, หน้าจอ, หน้าจอ, adc, 0,0, srccopy);
ปล่อย (0, ADC);
setBounds (0,0, screen.width, screen.height);
จบ;
ขั้นตอน tform2.formactivate (ผู้ส่ง: tobject);
const crhand = -18;
เริ่ม
Screen.cursors [Crhand]: = loadcursor (Hinstance, pchar ('Cursor_1'));
เคอร์เซอร์: = crhand;
จบ;
ขั้นตอน TFORM2.FormDestroy (ผู้ส่ง: tobject);
เริ่ม
fbmp.free;
Screen.cursor: = Crdefault;
จบ;
ขั้นตอน TFORM2.FormPaint (ผู้ส่ง: TOBJECT);
เริ่ม
Canvas.Draw (0,0, FBMP);
จบ;
ขั้นตอน TFORM2.FormMouseUp (ผู้ส่ง: tobject; ปุ่ม: tmouseButton;
SHIFT: TSHIFTSTATE;
เริ่ม
modalresult: = mrok;
จบ;
จบ.