View Full Version : پرینت فرم
tazekar
پنج شنبه 17 مهر 1382, 15:00 عصر
سلام
چطور از فرمها پرینت بگیرم ؟
من هر کاری میکنم کاراکترهای حروفی که توی ادیت باکسها نوشته شده اند رو پرینت نمیگیره . ولی اعداد داخل ادیت باکس رو پرینت میگیره و اعداد و حروفی رو که بوسیله label توی فرم قرار دادم رو هم پرینت میگیره .
houshmand
پنج شنبه 17 مهر 1382, 16:27 عصر
ساده ترین راه با
Form1.Print;
:lol: :lol: :lol:
tazekar
پنج شنبه 17 مهر 1382, 19:03 عصر
سلام
علی آقای عزیز خوب منم با همین دستور پرینت گرفتم . اما همون مشکلای بالا برام پیش اومد .
SReza1
پنج شنبه 17 مهر 1382, 19:21 عصر
میتونی از خاصیت canvas استفاده کنی!! مثلا اینکه
form1.canvas رو در canvas پرینتر کپی کنی
tazekar
پنج شنبه 17 مهر 1382, 23:02 عصر
آقا رضا میشه بگید چطور این کار رو انجام بدم ؟ :oops:
tazekar
پنج شنبه 17 مهر 1382, 23:24 عصر
سلام
مشکلم حل شد . کلا نمیتونسته محتویات dbeditbox ها رو چاپ کنه . :shock:
اما یه مشکل دیگه :
وقتی برنامه اجرا میشه یه پرینت از همون صفحه ای که میخوام گرفته میشه .
واضحتر بگم : مثلا من برای صفحه صدور فاکتور یه دونه دستور print گذاشتم اما وقتی برنامه حسابداری باز میشه یه صفحه خالی فاکتور چاپ میشه !! :shock: :shock: :shock:
اگه ممکنه کمکم کنید . :cry: :cry: :cry:
SReza1
جمعه 18 مهر 1382, 09:59 صبح
مثلا می خواهی محتویات فرم رو در داخل image کپی کنی
image1.Width := Form1.Width;
image1.Heigth := Form1.Heigth;
Image1.Canvas.Copyrect(Rect(0,0,Form1.Width,Form1. Heigth),Form1.Canvas,Rect(0,0,Form1.Width,Form1.He igth))
این کار هر چی در فرمت داری به روی image میریزه! حالا می تونی به جای image از prinatre استفاده کنی
Printre.canvas......
امیدوارم مشکلت حل بشه!! :D
Kambiz
جمعه 18 مهر 1382, 14:07 عصر
مثلا می خواهی محتویات فرم رو در داخل image کپی کنی
image1.Width := Form1.Width;
image1.Heigth := Form1.Heigth;
Image1.Canvas.Copyrect(Rect(0,0,Form1.Width,Form1. Heigth),Form1.Canvas,Rect(0,0,Form1.Width,Form1.He igth))
این کار هر چی در فرمت داری به روی image میریزه! حالا می تونی به جای image از prinatre استفاده کنی
Printre.canvas......
امیدوارم مشکلت حل بشه!! :D
متد Print فرم هم دقیقا" همین کار رو میکنه بدین صورت که اول تصویر فرم رو بصورت Bitmap میگیره و بعد اون رو به DIB Bitmap تبدیل میکنه و این تصویر رو رو Canvas پرینتر میکشه.
تبدیل Bitmap به DIB Bitmap برای اینه که درایور بعضی از چاپگرها تصویر با فرمت دیگهای رو قبول نمیکنند.
DIB = Device Independent Bitmap
tazekar
جمعه 18 مهر 1382, 19:59 عصر
سلام
ممنون از راهنماییهاتون .
اما مشکلات من مثل اینکه نمیخواد تموم بشه . :cry: :cry:
حالا تا اونجایی که مانیتور نشون میده پرینت میشه و بقیه فرم .... :?:
تورو خدا کمکم کنید . :cry:
دیگه کم کم داره اعصابم رو خورد میکنه . :evil: :evil: :x :evil: :evil:
SReza1
شنبه 19 مهر 1382, 12:19 عصر
سلام
جناب delphi area همیشه درست میگه :oops:
houshmand
شنبه 19 مهر 1382, 13:48 عصر
حالا تا اونجایی که مانیتور نشون میده پرینت میشه و بقیه فرم .... :?:
خوب این موضوع در راهنمای دلفی نیز گفته شده است :) و چون در این روش از Form عکس گرفته و پرینت می شود فقط قسمتی که دیده می شود پرینت می شود
Call Print to print the form. Print uses the GetFormImage method to obtain a bitmap of the form and draws that to the printer ’ s HDC.
:!: برای پرینت کردن یک روش قویتر ولی یک کم مشکل تر نیز وجود دارد برای اطلاعات بیشتر در باره این روش به راهنمای دلفی موضوع با عنوان
TPrinter,overview :arrow:
مراجعه کنید
JavanSoft
شنبه 19 مهر 1382, 19:45 عصر
آیا بهتر نیست بجای چاپ فرم یک صفحه گزارش طراحی کنید؟
tazekar
یک شنبه 20 مهر 1382, 00:14 صبح
ممکنه ساده تر باشه اما حالا میخوام بدونم اینو چکارش باید کرد :wink:
در ضمن با report هم یه کمی مشکلات دارم . :cry:
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.