![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с TPrinter
И. Павел © (2011-04-11 10:32:00)Здравствуйте.
Хочу расставить все точки над "и" по поводу стандартной дельфийской печати с помощью 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
Заранее спасибо.
Плохиш (2011-04-11 11:43:00) [1]Печатать из разных потоков одновременно это прикольно :-)
Буква из одного документа, буква из другого...
clickmaker (2011-04-11 11:40:00) [2]> Просто показалось странным использование одной глобальной
> переменной
а что странного? удобно. Принтер, как правило, один
И. Павел (2011-04-11 11:33:00) [3]Anatoly Podgoretsky ©
Спасибо.
Превью поищу.
> [2] Anatoly Podgoretsky © (11.04.11 11:30)
Многопоточность при печати мне пока не нужна. Просто показалось странным использование одной глобальной переменной.
Anatoly Podgoretsky (2011-04-11 11:30:00) [4]> Anatoly Podgoretsky (11.04.2011 11:15:01) [1]
Кстати раз нужна много поточность, то может напрямую работать чер Spool API
Anatoly Podgoretsky (2011-04-11 11:15:00) [5]Ну ты сам ответил на все вопросы. Только вот использовать свой экземпляр не получится, это Singleton - в одном экземпляре. Просто не надо его использовать в потоках, пусть об будет использоваться в главном потоке и уже, через синхронизацию к нему обращаться. Плюсом или минусов нет, поскольку принтер один, просто надо именно использовать функцию Printer/
Собственно а как же иначе, ведь созданием экземпляра принтер не размножится.
2 Краеугольных камней просто нет, придется с нуля делать, иногда именно так и поступают, чтобы иметь доступ до канвы.
3. есть куча разных превью, разработаных разными разработчиками, можно поискать на Торри, самому совсем не обязательно разрабатывать.
ЗЫ: хоть и Д4 а статья не устарела. Жалко что теперь подобная документация с Дельфи уже давно не поставляется. А то эти четыре книги были очень ценными, но можно пользоваться старыми, информация там не сильно устарела.