(Iv) Erstellen einer Einheitsdatei, die Bilder scrncpt erfasst
Einheit scrncpt;
Schnittstelle
Verwendet Windows, Formulare, Steuerelemente, Klassen, Grafiken;
Funktion capturesCreenRect (ARECT: TRECT): tbitmap;
Funktion capturesCreen: tbitmap;
Funktion captureClientImage (Kontrolle: TControl): TBitMap;
Funktion captureControlimage (Steuerung: tcontrol): tbitmap;
Funktion captureWindowimage (wnd: hwnd): tbitmap;
Durchführung
Funktion capturesCreenRect (ARECT: TRECT): tbitmap;
VAR Screendc: HDC;
Beginnen
Ergebnis: = tbitmap.create;
Mit Ergebnis, ARECT DO
Beginnen
Breite: = rechts links;
Höhe: = unten;
ScreendC: = getdc (0);
versuchen
// Bool Bitblt (HDCDEST, NXDEST, NYDEST, NWIDTH, NHELY, HDCSRC, NXSRC, NYSRC, DWROP)
// Kopieren Sie die Bitmap aus der Quellgerätebeschreibungstabelle HDCSRC in die TAVE -Device -Beschreibung Tabelle HDCDEST,
// Der Raster Opcode DWROP gibt die Kombinationsmethode des Quelldiagramms an
Bitblt (Canvas.Handle, 0,0, Breite, Höhe, Screendc, links, ober, srccopy);
Endlich
ReleaseC (0, Screendc);
Ende;
Ende;
Ende;
// Bildaufnahme des Vollbildmodus
Funktion capturesCreen: tbitmap;
Beginnen
mit Bildschirm tun
Ergebnis: = capturesCreenRect (rect (0,0, breite, Höhe));
Ende;
// kriechen Sie das Bildbereich eines Client -Bereichs einer Form oder Kontrolle
Funktion captureClientImage (Kontrolle: TControl): TBitMap;
Beginnen
//Control.clientoriginin ist die obere linke Ecke des Steuerungsbereichs. x, y ist eine Variable des Clientorigines
Mit der Kontrolle kontrollieren Sie
Ergebnis: = capturesCreenRect (Grenzen (x, y, clientbreite, clientHeight));
Ende;
// kriechen eine ganze Form oder Kontrolle
Funktion captureControlimage (Steuerung: tcontrol): tbitmap;
Beginnen
mit Kontrolle tun
Wenn Eltern = NIL dann // Es gibt kein übergeordnetes Formular, greifen Sie direkt nach seinem Standort an
Ergebnis: = CapturesCreenRect (Grenzen (links, oben, Breite, Höhe))
sonst // Es gibt ein übergeordnetes Formular, konvertieren sie in Bezug auf die Bildschirmkoordinaten und greifen Sie sie dann in
mit übergeordnet.clienttoscreen (Punkt (links, oben)) do
Ergebnis: = capturesCreenRect (Grenzen (x, y, width, Höhe));
Ende;
// kriechen gemäß dem Formhandwerk
Funktion captureWindowimage (wnd: hwnd): tbitmap;
var r: trect;
Beginnen
GetWindowRect (WND, R);
Ergebnis: = capturesCreenRect (R);
Ende;
Ende.