View Full Version : عـکـس گـرفتـن از فـرم
Mahdi_Delphi
چهارشنبه 23 فروردین 1385, 18:37 عصر
سلام
چطور میشه از فرمهای برنامه عکس گرفت ؟:متفکر:
آیا میشه از سایر پنجره های ویندوز هم عکس گرفت اگه Handle ش رو داشته باشیم ؟
ممنون:خجالت:
shayan_delphi
چهارشنبه 23 فروردین 1385, 19:13 عصر
یک Image و یک Button روی فرم گذاشته و در رویداد Button1.OnClick بنویسید:
;Image1.Picture.Bitmap:= GetFormImage
mohamadmjk
چهارشنبه 23 فروردین 1385, 23:09 عصر
برای ذخیره اون هم بنویس :
Form6.GetFormImage.SaveToFile('sample.bmp');
Mahdi_Delphi
پنج شنبه 24 فروردین 1385, 11:16 صبح
خیلی ممنون از کمکتون
آیا میشه از سایر پنجره های ویندوز هم عکس گرفت اگه Handle اش رو داشته باشیم ؟
Delphi Skyline
پنج شنبه 24 فروردین 1385, 15:48 عصر
بله . به این صورت ::
function tform1.GetScreenShot: TBitmap;
var
Desktop: HDC;
begin
Result := TBitmap.Create;
Desktop := GetDC(---- your handle ---);
try
try
Result.PixelFormat := pf24bit;
Result.Width := ---- your handle ---.Width;
Result.Height := ---- your handle ---.Height;
BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, Desktop, 0, 0, SRCCOPY);
Result.Modified := True;
finally
ReleaseDC(---- your handle ---, Desktop);
end;
except
Result.Free;
Result := nil;
end;
end;
Mahdi_Delphi
پنج شنبه 24 فروردین 1385, 19:08 عصر
خیلی ممنون دوست عزیز
Mahdi_Delphi
جمعه 25 فروردین 1385, 08:27 صبح
سلام
چندتا سوال داشتم،میخواستم راهنمایی کنید.
من هندل پنجره رو با تابع FindWindow پیدا کردم ولی " width.هندل " و " Height.هندل " خطا داد . مشکل از کجا میتونه باشه ؟
کار تابع bitblt چیه ؟ توی Help دلفی پیداش نکردم.
Delphi Skyline
جمعه 25 فروردین 1385, 10:49 صبح
باید هندل به صورت زیر باشه :
var a : tcanvas;
a := tcanvas.create;
a.handle := your handle;
Mahdi_Delphi
جمعه 25 فروردین 1385, 11:50 صبح
خیلی ممنون
اما مشکلم حل نشد !
; هندل پنجره =: هندل.a
قرار میدم اما
Result.Width := a.width بازم جواب نمیده.
میشه یه Sample کامل بزارید ؟
Delphi Skyline
جمعه 25 فروردین 1385, 15:51 عصر
نگاه کن به جای a.widht بزار مثلا 800 یا 600 . کلا اندازه پنجره یا رزولیشن ویندوزت .
Mahdi_Delphi
جمعه 25 فروردین 1385, 18:42 عصر
نگاه کن به جای a.widht بزار مثلا 800 یا 600 . کلا اندازه پنجره یا رزولیشن ویندوزت .
میدونم ولی توی ویندوزهای مختلف ممکنه تغییر کنه یا حتی اگه کاربر رزلوشن رو عوض کنه عکس درست در نمیاد !
یه کد بود که رزلوشن صفحه رو میداد باید از اون استفاده کنم.
بهر حال خیلی ممنون دوست عزیز
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.