Konuyu Oyla:
  • Derecelendirme: 5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Çalışma anında ekranda sabit bir alanın görüntüsünü alma
#1
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.
Cevapla
#2
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.
Cevapla
#3
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);
Ayakkabıyı sefaletten
Çok sonraları tanıdım
Öyle ufuklarda mı olurmuş Allah'ım
Giyer giyer koşardım
Toprağın dostluğundan
Oyuncaklar yaptım çamurdan
Tenimin rengini aldım topraktan
Sen bakma esmerliğim sonradan...





Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi