Thema: Delphi eingegrenzter Screenshot

Einzelnen Beitrag anzeigen

Benutzerbild von BluesKid
BluesKid

Registriert seit: 2. Sep 2003
Ort: NRW
133 Beiträge
 
Delphi 2005 Professional
 
#2

Re: eingegrenzter Screenshot

  Alt 18. Mai 2004, 14:19
Moin moin

vieleicht kann dir das helfen..ist nich (alles) von mir

Delphi-Quellcode:
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;
..und ist u.U. auch noch stark verbesserungswürdig

schönen Gruß

Sam
  Mit Zitat antworten Zitat