Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с выводом на печать 
:(
    Опции темы
Lockdog88
Дата 20.11.2012, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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 ни вводилось, печатается только первичная информация .
PM MAIL   Вверх
Lockdog88
Дата 20.11.2012, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 22.4.2010

Репутация: нет
Всего: нет



Проблема оказалась не в выводе на печать, а в другом.
У меня на форме есть ActiveX компонент, который выводит штрих-код из введённого текста в Edit1.
Чтобы абстрагироваться от принтера, по кнопке выполняется такой код:
Код

Image2.Picture.Graphic := StrokeScribe1.Picture.Graphic;

При первом нажатии на кнопку, на Image2 выводится изображение штрих-кода из StrokeScribe1, но затем при изменении текста в edit'e штрих-код меняется на компоненте StrokeScribe1 (выводится на форму), но при попытке перенести изображение на Image2 в нём остаётся старая картинка.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0533 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.