|
Вопрос # 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;
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|