PDA

View Full Version : سوال: خطا در هنگام پرینت



younes221
یک شنبه 14 خرداد 1391, 12:03 عصر
سلام دوستان امیدوارم حالتون خوب باشه کد زیر رو واسه عمل پرینت از اطلاعات یک لیست باکس نوشتم ولی خطا میده به نظرتون اشکال از کجاست ؟ ممنون


Var LinePage,LineSpace,Line,X,Size:integer;

procedure TForm1.Button1Click(Sender: TObject);
Var Printer:TPrinter;
Var Counter:integer;
begin

Printer:=TPrinter.Create;

Printer.beginDoc;

Printer.canvas.font.size:=10;
Printer.Canvas.font.color:=clBlue;
Printer.canvas.font.name:='Tahoma';

Size:=Printer.canvas.font.size;

LinePage:=(Printer.PageHeight div Size)+10;
LineSpace:=(Printer.PageHeight div LinePage);

Line:=1;
X:=0;

for Counter := 0 to listbox1.items.count-1 do begin

X:=X+LineSpace;
line:=line+1;
Printer.canvas.TextOut(10,X,listbox1.Items[counter]);

if line>LinePage-1 then begin
Line:=1;
x:=0;
Printer.NewPage;
end;

end;

Printer.EndDoc;

از خط line>linepage-1 اشکال میگیره :

http://img4up.com/up2/43571746534600448584.jpg

BORHAN TEC
یک شنبه 14 خرداد 1391, 13:33 عصر
سلام

در مورد خطای AV باید بگویم که شی Printer از قبل در دلفی تعریف شده هست به عبارتی دیگر با قرار دادن یونیت Printers در فهرست Uses دیگر نیاز به تعریف شی Printer ندارید.
در مورد دوم باید بگویم که کد شما عملکرد خوبی در موقع چاپ ندارد و متون خیلی به هم ریخته نشان داده می شوند. البته این مورد را شما با آزمایش و خطا به راحتی می توانید حل کنید. در این مورد بد نیست که به صفحه زیر هم نگاهی بیاندازید:
http://www.delphicorner.f9.co.uk/articles/op9.htm (http://www.delphicorner.f9.co.uk/articles/op9.htm)

موفق باشید...