| 
| 
 | Вопрос # 4 942/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!Вопрос связан с печатанием форм на лазерном принтере
 
 Печать на матричном принтере происходит как должно
 Есди посылать одиночные листы - тоже всё в порядке
 Но в приведённом ниже коде принтер начинает "заикаться"
 интервалы между листами становятся неодинаковыми
 и в конце печати получается множество листов или полностью чёрных
 или напротив совершенно нетронутых - на разных моделях по-разному
 Заранее спасибо
 Приложение:Переключить в обычный режим  procedure TForm1.Timer1Timer(Sender: TObject);begin   while not Tble1.EOF do   begin     ...     Form1.Print;     ...   end;end;
|  |   Вопрос задал: vadim_31 (статус: Посетитель)Вопрос отправлен: 21 января 2011, 19:29
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 5; последнее сообщение — 22 января 2011, 12:10; участников в обсуждении: 3. 
|   | Мережников Андрей (статус: Абитуриент), 21 января 2011, 20:09 [#1]:зачем на печать отправлять по таймеру? |  
|   | vadim_31 (статус: Посетитель), 22 января 2011, 00:48 [#2]:Потому что печать состоит из нескольких десятков документов Причём интервал таймера значения не имеет - менял от 300 ms до 6 секунд!
 |  
|   | min@y™ (статус: Доктор наук), 22 января 2011, 10:04 [#3]:Зачем такой брейнфакинг? Я так понял, нужно напечатать что-то из DBGrid?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Мережников Андрей (статус: Абитуриент), 22 января 2011, 10:11 [#4]:если есть необходимость печатать по таймеру, то предусмотрите, приостановку таймера до окончания печати текущего документа. перед циклом вывода на печать поставьте timer1.enabled:=false;
 после цикла: timer1.enabled:=true;
 |  
|   | vadim_31 (статус: Посетитель), 22 января 2011, 12:10 [#5]:Тьфу! Простите идиота!Воткнул не тот код! Код выглядел вот так:
 procedure TForm1.Timer1Timer(Sender: TObject);
 begin
 if (Printer.Printing) then exit;
 if (not Printer.Aborted) then //optionally
 if not Tble1.EOF then
 begin
 ...
 Form1.Print;
 ...
 end;
 Next;
 end;
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |