PDA

View Full Version : عکس برداری از اشیاء پرژه ؟؟؟



ali_mohamadi8928
دوشنبه 10 دی 1386, 20:37 عصر
سلام دوستای برنامه نویس .

چه جوری باید از اشیاء پرژه عکس برداری کرد ؟؟

مثلا یک شیء با نام Bitmap1 داریم حالا میخواییم ازش عکس بگیریم و توی یک فایل bmp ذخیره کنیم . ؟؟ چه جوری باید این کار رو کرد ؟

من میخوام از همه ی حالتهاش عکس بگیرم . یعنی هم زمانی که روش کلیک نشده و هم زمانی که روش کلیک شده . و هر یک از حالت ها رو توی یک فایل جدا ذخیره بکنم .

نکته » همه ی حات هاش : !! منظورم اینه که وقتی که روی Button کلیک نشده یک حالت عادی داره که این رو حالت اول در نظر میگیریم و زمانی که روش کلیک میشه یک حالت فرو رفتگی به خودش میگیره که اون رو حالت دوم در نظر میگیریم .

با تشکر .....

ali_mohamadi8928
چهارشنبه 12 دی 1386, 03:30 صبح
ایا انجام این کار ممکن نیست واقعا ؟

دوستان لطفا کمک کنن .

با تشکر

SYNDROME
چهارشنبه 12 دی 1386, 05:06 صبح
می توانی از روش زیر استفاده کنی.(نتوانستم لینک را پیدا کنم)


ین تابع اصلی
procedure GetShot(Control : TWinControl;FileName : String);
Var
rc : trect;
DC : HDC;
Canvas : TCanvas;
MyBitmap: TBitmap;
begin
Try
rc := rect(0, 0, Control.Width, Control.Height);
Canvas := TCanvas.Create;
MyBitmap := TBitmap.Create;
DC := GetDC(Control.Handle);
Canvas.Handle := DC;
MyBitmap.Width := Control.Width;
MyBitmap.Height := Control.Height;
MyBitmap.Canvas.CopyRect(Rc, Canvas, Rc);
MyBitmap.SaveToFile(FileName+'.bmp');
Finally
MyBitmap.Free;
Canvas.Free
End;
end;

و تابع را به شکل زیر فراخوانی کن.
GetShot(Form1, FileName);
PrintPicture(1, 600, 6800, 4100,FileName+'.bmp',poLandscape);
unit زیر را هم فراخوانی کنید.
Printers
حالا برای چاپ عدد 600 و 800 را دست کاری کن.
fileName هم مسیری است که باید عکس در آن ذخیره می شود.
موفق باشید