Новичок
Профиль
Группа: Участник
Сообщений: 37
Регистрация: 22.4.2010
Репутация: нет Всего: нет
|
Добрый день! Возникла проблема с печатью. Мне необходимо печатать бар-коды и прочую информацию на этикетки Вот написал такой код: | Код | procedure PrintBar; var ScaleX, ScaleY: Integer; BarPosX, BarPosY, Inc: Integer; RR: TRect; TextHeightS: Integer; AbsHeight: Integer; begin Printer.Canvas.Refresh; with Printer do begin BeginDoc;
ScaleX := GetDeviceCaps(Handle, logPixelsX) div Form2.PixelsPerInch; ScaleY := GetDeviceCaps(Handle, logPixelsY) div Form2.PixelsPerInch; BarPosX := Form2.StrokeScribe1.Picture.Width * ScaleX + 10;
BarPosY := Form2.StrokeScribe1.Picture.Height * ScaleY+ 5; Inc := BarPosY;
RR := Rect(2, 2, Form2.StrokeScribe1.Picture.Width * ScaleX, (Form2.StrokeScribe1.Picture.Height * ScaleY)); Canvas.StretchDraw(RR, Form2.StrokeScribe1.Picture.Graphic); RR := Rect(BarPosX, 2, BarPosX+Form2.StrokeScribe6.Picture.Width * ScaleX, (Form2.StrokeScribe1.Picture.Height * ScaleY)); Canvas.StretchDraw(RR, Form2.StrokeScribe6.Picture.Graphic);
RR := Rect(2, BarPosY, Form2.StrokeScribe2.Picture.Width * ScaleX, BarPosY+(Form2.StrokeScribe2.Picture.Height * ScaleY)); Canvas.StretchDraw(RR, Form2.StrokeScribe2.Picture.Graphic); RR := Rect(BarPosX, BarPosY, BarPosX+Form2.StrokeScribe7.Picture.Width * ScaleX, BarPosY+(Form2.StrokeScribe7.Picture.Height * ScaleY)); Canvas.StretchDraw(RR, Form2.StrokeScribe7.Picture.Graphic); BarPosY := BarPosY+Inc;
RR := Rect(2, BarPosY, Form2.StrokeScribe3.Picture.Width * ScaleX, BarPosY+(Form2.StrokeScribe3.Picture.Height * ScaleY)); Canvas.StretchDraw(RR, Form2.StrokeScribe3.Picture.Graphic); RR := Rect(BarPosX, BarPosY, BarPosX+Form2.StrokeScribe8.Picture.Width * ScaleX, BarPosY+(Form2.StrokeScribe8.Picture.Height * ScaleY)); Canvas.StretchDraw(RR, Form2.StrokeScribe8.Picture.Graphic); BarPosY := BarPosY+Inc;
RR := Rect(2, BarPosY, Form2.StrokeScribe4.Picture.Width * ScaleX, BarPosY+(Form2.StrokeScribe4.Picture.Height * ScaleY)); Canvas.StretchDraw(RR, Form2.StrokeScribe4.Picture.Graphic); RR := Rect(BarPosX, BarPosY, BarPosX+Form2.StrokeScribe9.Picture.Width * ScaleX, BarPosY+(Form2.StrokeScribe9.Picture.Height * ScaleY)); Canvas.StretchDraw(RR, Form2.StrokeScribe9.Picture.Graphic); BarPosY := BarPosY+Inc;
RR := Rect(2, BarPosY, Form2.StrokeScribe5.Picture.Width * ScaleX, BarPosY+(Form2.StrokeScribe5.Picture.Height * ScaleY)); Canvas.StretchDraw(RR, Form2.StrokeScribe5.Picture.Graphic); RR := Rect(BarPosX, BarPosY, BarPosX+Form2.StrokeScribe10.Picture.Width * ScaleX, BarPosY+(Form2.StrokeScribe10.Picture.Height * ScaleY)); Canvas.StretchDraw(RR, Form2.StrokeScribe10.Picture.Graphic);
EndDoc; end; with Printer do begin BeginDoc; Printer.Canvas.Font.Size := 7; RR := Rect(5, 5, Form1.Image1.Width * ScaleX+5, Form1.Image1.Height * ScaleY+5); Canvas.StretchDraw(RR, Form1.Image1.Picture.Graphic);
TextHeightS := Printer.Canvas.TextHeight('CH-TAG30-1P-111'); Printer.Canvas.TextOut(20,30 * ScaleY + TextHeightS+5,'CHIRP SERIES TAG CH-TAG30-1P-111');
AbsHeight := 30 * ScaleY + TextHeightS + TextHeightS; Printer.Canvas.TextOut(20,AbsHeight+5,'P/N: TG1S12-1');
AbsHeight := AbsHeight + TextHeightS; Printer.Canvas.TextOut(20, AbsHeight+5,'31B, Shabolovka st.,');
AbsHeight := AbsHeight + TextHeightS; Printer.Canvas.TextOut(20,AbsHeight+5,'Moscow, Russia, 115162');
AbsHeight := AbsHeight + TextHeightS; Printer.Canvas.TextOut(20,AbsHeight+5,'tel.: +7 (495) 545 4125');
AbsHeight := AbsHeight + TextHeightS; Printer.Canvas.TextOut(20,AbsHeight+5,'[email protected]');
AbsHeight := AbsHeight + TextHeightS; Printer.Canvas.TextOut(20,AbsHeight+5,'www.rtlsnet.ru'); EndDoc; end; Form2.Edit1.Clear; Form2.Edit2.Clear; Form2.Edit3.Clear; Form2.Edit4.Clear; Form2.Edit5.Clear; Form2.Edit6.Clear; Form2.Edit7.Clear; Form2.Edit8.Clear; Form2.Edit9.Clear; Form2.Edit10.Clear; Form2.Edit1.SetFocus; end;
|
Собственно при первом запуске процедуры всё печатается нормально, НО когда информация о кодах в Edit'ах обновилась и я повторно нажимаю на печать, то мне всё время печатаются данные, которые были введены впервые. То есть, чтобы в edit ни вводилось, печатается только первичная информация .
|