Delphi Can
Çalışma anında ekranda sabit bir alanın görüntüsünü alma - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Access violation (https://www.delphican.com/forumdisplay.php?fid=136)
+--- Konu Başlığı: Çalışma anında ekranda sabit bir alanın görüntüsünü alma (/showthread.php?tid=1265)



Çalışma anında ekranda sabit bir alanın görüntüsünü alma - Abdullah ILGAZ - 18-08-2017

Merhaba,

Tuğrul abimin sorusunu gelenekselleştirmek adına küçük bir soru bırakıyorum buraya Smile

İstenilen: Program çalışma anında herhangi bir Top ve Left değeri girildiğinde, bu değeri alıp TImage nesnesine aktarmak.

Bunun için herhangi bir dosya oluşturulmayacak ve harddiskte yer işgal etmeyecek. Bir Panel yada View komponentinin sabit konumunu (kare-dikdörtgen) (Top: 5, Left:5) alıp Bitmap oluşturarak TImage nesnesinde göstereceğiz.


Çalışma anında ekranda sabit bir alanın görüntüsünü alma - sametkayaoglu - 20-08-2017

Layout1.MakeScreenshot; kodu Layout1 ekran görüntüsünü alır Tbitmap olarak geri döner MakeScreenshot kodunu incelersen left top siz belirleyerek istediğiniz alanı alabilirsiniz.


Cvp: Çalışma anında ekranda sabit bir alanın görüntüsünü alma - QuAdR - 20-08-2017

procedure GetScreen(x, y, wd, hg: integer; img: TImage);
var
 bmp: TBitmap;
begin
 bmp := TBitmap.Create;
 bmp.Width := wd;
 bmp.Height := hg;
 with bmp do
 try
   img.Width := wd;
   img.Height := hg;
   BitBlt(bmp.Canvas.Handle,0,0,wd,hg,GetDC(0),x ,y, SRCCOPY);
   img.Picture.Assign(bmp);
 finally
   Free;
 end;
end;

Kullanımı :

  GetScreen(Mouse.CursorPos.X,Mouse.CursorPos.Y, 400, 200, Image1);