Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.07.17;
Скачать: CL | DM;

Вниз

Работа с TPrinter   Найти похожие ветки 

 
И. Павел ©   (2011-04-11 10:32) [0]

Здравствуйте.

Хочу расставить все точки над "и" по поводу стандартной дельфийской печати с помощью TPrinter. Вопросы мелкие и касаются одного объекта поэтому решил не делить на три разные темы:

1. Зачем нужен метод Printer, создающий новый TPrinter или возвращающий старый экземпляр, если такой имеется? Это же получается глобальный объект. А если в нескольких потоках его использовать - будет путаница, да и в одном потоке тоже можно с этим столкнуться. Можно ли самому создавать свой экземпляр и с ним работать? Т.е. просто писать: MyPrinter := TPrinter.Create? Или же есть плюсы в использовании именно функции Printer?
2. Есть ли какие-нибудь краеугольные камни, с которыми придется столкнуться при переходе с QReport на TPrinter (кроме того, что придется все масштабировать, учитывая параметр dpi принтера)?
3. У TPrinter есть какое-нибудь окно предварительного просмотра, или придется самому велосипед создавать?

PS. Как работать с TPrinter вспоминал, читая эту статью: http://www.podgoretsky.com/ftp/Docs/Delphi/D4/DG_Delphi4/chap10.pdf

Заранее спасибо.


 
Anatoly Podgoretsky ©   (2011-04-11 11:15) [1]

Ну ты сам ответил на все вопросы. Только вот использовать свой экземпляр не получится, это Singleton - в одном экземпляре. Просто не надо его использовать в потоках, пусть об будет использоваться в главном потоке и уже, через синхронизацию к нему обращаться. Плюсом или минусов нет, поскольку принтер один, просто надо именно использовать функцию Printer/
Собственно а как же иначе, ведь созданием экземпляра принтер не размножится.

2 Краеугольных камней просто нет, придется с нуля делать, иногда именно так и поступают, чтобы иметь доступ до канвы.

3. есть куча разных превью, разработаных разными разработчиками, можно поискать на Торри, самому совсем не обязательно разрабатывать.

ЗЫ: хоть и Д4 а статья не устарела. Жалко что теперь подобная документация с Дельфи уже давно не поставляется. А то эти четыре книги были очень ценными, но можно пользоваться старыми, информация там не сильно устарела.


 
Anatoly Podgoretsky ©   (2011-04-11 11:30) [2]

> Anatoly Podgoretsky  (11.04.2011 11:15:01)  [1]

Кстати раз нужна много поточность, то может напрямую работать чер Spool API


 
И. Павел ©   (2011-04-11 11:33) [3]

Anatoly Podgoretsky ©
Спасибо.
Превью поищу.


> [2] Anatoly Podgoretsky ©   (11.04.11 11:30)

Многопоточность при печати мне пока не нужна. Просто показалось странным использование одной глобальной переменной.


 
clickmaker ©   (2011-04-11 11:40) [4]

> Просто показалось странным использование одной глобальной
> переменной

а что странного? удобно. Принтер, как правило, один


 
Плохиш ©   (2011-04-11 11:43) [5]

Печатать из разных потоков одновременно это прикольно :-)
Буква из одного документа, буква из другого...



Страницы: 1 вся ветка

Текущий архив: 2011.07.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.01 c
15-1301662575
ddd329
2011-04-01 16:56
2011.07.17
Delphi затребовал регистрацию


2-1302495929
Максон
2011-04-11 08:25
2011.07.17
Подмена окончаний в слове


8-1213608131
Midous
2008-06-16 13:22
2011.07.17
Воспроизведение музыки без ошибок при отсутствии кодеков


3-1261736952
stalex2000
2009-12-25 13:29
2011.07.17
Возникла проблема с выполнением запросов ADOQuery.


15-1301659966
clickmaker
2011-04-01 16:12
2011.07.17
В Гугле открылась отличная вакансия