function TForm1.getScreen(aRect: TRect) : TBitmap;
var DCPuffer,
DC: HDC;
Puffer: HBitmap;
x, y: integer;
Bild2 : TBitmap;
begin
(*macht einen Screenshot von aRect *)
Bild2 := TBitmap.Create;
(*Devicekontext holen *)
DC:=CreateDC('
DISPLAY',
nil,
nil,
nil);
(* relative x und y abmessungen ausrechnen *)
x:= aRect.Right - aRect.left;
y:= aRect.Bottom - aRect.Top;
(*Devicekontext zum Zeischenspeichern *)
DCPuffer:=CreateCompatibleDC(
DC);
Puffer:=CreateCompatibleBitmap(
DC, x, y);
Application.ProcessMessages;
SelectObject(DCPuffer,Puffer);
(*Kopieren von Bildschirmausschnitt in Puffer *)
BitBlt(DCPuffer, 0, 0, x, y,
dc, aRect.left, aRect.top, srccopy);
Bild2.Width:=x;
Bild2.Height:=y;
(*Kopieren von Puffer nach TBitmap *)
BitBlt(Bild2.canvas.Handle, 0, 0, x, y, DCPuffer, 0, 0, srcCopy);
(*Aufräumen *)
DeleteDC(DCPuffer);
DeleteDC(
DC);
Application.ProcessMessages;
result := Bild2;
end;