![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Zhaw |
|
|||
|
Unregistered |
Подскажите, люди добрые, как бороться со страшным зверем QuickReport!!
Я создал отчёт для QuickReport'a (не через БД, а сам, через событие OnNeedData), просматриваю его с помощью Preview-метода - всё хорошо. Настраиваю принтер соотв-вующей кнопкой и проч - тоже работает. НО! При нажатии на кнопку Печатать (такая маленькая, сволочь, с принтером без гаечного ключа После полудня метаний по И-нету и копаний в pdf-ах нашёл и проверил такой ход ReportForm.FlawReport.Prepare; ReportForm.FlawReport.QRPrinter.Print; ReportForm.FlawReport.QRPrinter.Free; ReportForm.FlawReport.QRPrinter := nil; - это работает, но это ведь всегда печатает и без всякого диалог-окошка. Так что второй вариант требует знаний - как перехватить нажатие на кнопку Print у компонента QuickReport - чтобы самому в нужный момент распечатать то что нужно Заранее огромное Thanks! |
|||
|
||||
| Kleo |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Клуба Сообщений: 121 Регистрация: 12.12.2002 Где: Москва Репутация: нет Всего: нет |
а я, когда с такой же проблемой столкнулась, не нашла даже такого другого метода
было бы интересно узнать из-за чего это и как с этим бороться нужно... --------------------
Съел бобра - спас дерево |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Ну что Вам сказать? Чтобы ответить на этот вопрос, необходимо самому прощупать эту ситуацию. Может Вы где-то что-то забыли указать, а может у Вас с настройкой принтера неладно, или сам принтер специфичен. Пришлите мне на e-mail свой проект, или его часть, и я постараюсь разобраться.
[email protected] -------------------- |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Вот наткнулся:
-------------------- |
|||
|
||||
| Zhaw |
|
||||
|
Unregistered |
Неа, не рабтает... Я параметр (драйвер для принтра взял из TPrinter.GetPrinter). Не работает и всё тут. Мож я что не так делаю? Всё-таки можно как нибудь перехватить сообщение об отправке на печать и обработать самому? Пусть хоть даже со вставкой из С++, пусть даже из Asm - я на такое даже готов! |
||||
|
|||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Да перехватить-то можно..
Лови сообщение WM_LBUTTONDOWN. -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Пришлите тогда мне сырец проекта, я посмотрю. -------------------- |
|||
|
||||
| Zhaw |
|
|||
|
Unregistered |
WM_LBUTTONDOWN перехватить можно если ловишь либо всё подряд (плохо), либо для какого-то окна (тогда нужно знать его Handle). А как получить Handle окошка предпросмотра, которое автоматически генерируется QuickReport'ом |
|||
|
||||
| Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 2 Всего: 4 |
Кстати, знаешь, я вот только вчера сделал отчёт, у меня всё печатается отлично из preview.
У меня Д6. Насчёт перехвата нажатия кнопки. Да, нужно знать её дискриптор. Я попробовал через WinSight, он её не видит, видит только TToolBar и всё. Поэтому рыть надо в сторону ToolBar, именно он и является владельцем этих кнопок. Но вот вопрос, если не видит WinSight, тогда наверно извращение c GetWindow() тоже ничего не дадут. Тем не менее кнопку эту я перехватил. Правда не одну, а все что там есть, но если ещё помучаться (у меня тогда не было в достатке времени), можно и именно её. А способ вот какой: я перехватывал WM_LBUTTONDOWN и смотрел какой класс у окон, когда я нажал на эту кнопку, он выдал мне TButton. Логично, да? И напоследок, как выполнить свой Print, а не дать напечатать Quick Report'у. Просто когда словишь WM_LBUTTONDOWN и убедишься, что под мышью именно та кнопка что тебе нужна, подменяй сообщене на WM_NULL и вызывай свой Print(). -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |