(4) إنشاء ملف وحدة يلتقط الصور scrncpt
وحدة scrncpt ؛
واجهة
يستخدم Windows ، النماذج ، عناصر التحكم ، الفئات ، الرسومات ؛
الوظيفة التقاطات (ARECT: TRECT): TBITMAP ؛
وظيفة التقاط الشاشة: tbitmap ؛
وظيفة captureclientimage (التحكم: tcontrol): tbitmap ؛
وظيفة capturecontrolimage (التحكم: tcontrol): tbitmap ؛
وظيفة capturewindowimage (wnd: hwnd): tbitmap ؛
تطبيق
الوظيفة التقاطات (ARECT: TRECT): TBITMAP ؛
var screendc: HDC ؛
يبدأ
النتيجة: = tbitmap.create ؛
مع النتيجة ، arect تفعل
يبدأ
العرض: = اليمين الأيمن ؛
الارتفاع: = القاع القاع ؛
ScreendC: = GetDC (0) ؛
يحاول
// bool bitblt (hdcdest ، nxdest ، nydest ، nwidth ، nheight ، hdcsrc ، nxsrc ، nysrc ، dwrop)
// انسخ صورة نقطية من الجهاز المصدر الجدول HDCSRC إلى الجهاز الهدف وصف جدول HDCDest ،
// يحدد DWROP DWROP النقطية طريقة تركيبة مخطط المصدر
bitblt (canvas.handle ، 0،0 ، العرض ، الارتفاع ، screendc ، اليسار ، أعلى ، srccopy) ؛
أخيراً
تم إصداره (0 ، screendc) ؛
نهاية؛
نهاية؛
نهاية؛
// التقاط صور الشاشة بملء الشاشة
وظيفة التقاط الشاشة: tbitmap ؛
يبدأ
مع الشاشة تفعل
النتيجة: = capturescreenRect (Rect (0،0 ، العرض ، الارتفاع)) ؛
نهاية؛
// زحف صورة منطقة العميل للنموذج أو التحكم
وظيفة captureclientimage (التحكم: tcontrol): tbitmap ؛
يبدأ
//control.clientorigin هو الركن الأيسر العلوي من منطقة عميل التحكم. X ، Y هو متغير من العميل
مع السيطرة ، control.clientorigin تفعل
النتيجة: = capturescreenrect (الحدود (x ، y ، clientwidth ، clientheight)) ؛
نهاية؛
// زحف شكل كامل أو تحكم
وظيفة capturecontrolimage (التحكم: tcontrol): tbitmap ؛
يبدأ
مع السيطرة تفعل
إذا لم يكن هناك أي شكل من الوالدين = لا يوجد أي شكل من الوالدين ، فاحصل مباشرة على موقعه وفقًا لموقعه
النتيجة: = capturescreenrect (حدود (يسار ، أعلى ، عرض ، ارتفاع)))
آخر // هناك نموذج أولي ، وتحويله إلى إحداثيات الشاشة ، ثم انتزاع
مع parent.clienttoscreen (نقطة (يسار ، أعلى)) تفعل
النتيجة: = capturescreenrect (الحدود (x ، y ، العرض ، الارتفاع)) ؛
نهاية؛
// الزحف وفقًا لمقبض النموذج
وظيفة capturewindowimage (wnd: hwnd): tbitmap ؛
var r: Trect ؛
يبدأ
GetWindowRect (WND ، R)
النتيجة: = capturescreenrect (r) ؛
نهاية؛
نهاية.