Rave сообщает о проблемах, если принтер не установлен

Я тестировал некоторый код D2006 с использованием отчетов Rave на виртуальной машине и обнаружил, что приложение зависает при создании отчета в формате PDF, если принтер не установлен. Зависание происходит здесь:

exception message : The application seems to be frozen.

main thread ($108):
005c5e62 +106 MyApp.exe    RpRPTF          SimpleTextWidth
006198f7 +31b MyApp.exe    RpMemo          TMemoBuf.GetLine
0061a44a +086 MyApp.exe    RpMemo          TMemoBuf.MemoLinesLeft
005cba28 +014 MyApp.exe    RpBase          TBaseReport.MemoLines
00672e8e +072 MyApp.exe    MyAppReports    PrintReportParagraph
00677f73 +acb MyApp.exe    MyAppReports    PrintSummaryReportBody
0066b208 +010 MyApp.exe    MyAppMainForm   TMainForm.RvSystemSummaryReportPrint
005c6f35 +015 MyApp.exe    RpBase          TBaseReport.PrintEvent
005c8066 +03a MyApp.exe    RpBase          TBaseReport.Execute
0060a299 +125 MyApp.exe    RpSystem        TRvSystem.GenerateReport
0060a52a +07e MyApp.exe    RpSystem        TRvSystem.Execute
0067d364 +0ac MyApp.exe    MyAppReports    DoPrintSummaryReport
0067d64d +1d5 MyApp.exe    MyAppReports    ProduceReports
0066e966 +1e6 MyApp.exe    MyAppProcessing ProcessMyAppData
0066ab9b +0d7 MyApp.exe    MyAppMainForm   TMainForm.DoProcessData

и, несомненно, это связано с нулевой шириной страницы, что приводит к путанице в коде, который вычисляет, сколько строк может уместиться на странице или что-то подобное.

Дело в том, что я пишу PDF, а не печатаю, поэтому я не понимаю, почему отсутствие принтера может привести к отключению этого кода (установлен Acrobat Reader). Если я устанавливаю принтер, он ведет себя так. Зачем мне нужен установленный принтер (приложение может быть установлено на рабочей станции без установленного принтера - с сообщением об ошибке, которое гласит: "Вы не можете сгенерировать отчет в формате PDF, если не установите принтер" кажется немного неуклюжим)?

1 ответ

Решение

Это давняя ошибка в Rave Reports. Это связано с отсутствием установленного принтера по умолчанию. Я поищу ссылки на старые сообщения форума Borland/CodeGear ( CodeNewsFast, похоже, не отвечает прямо сейчас). Возникла проблема с предположением о наличии принтера. Я не знаю, было ли это исправлено в самых последних версиях Rave. (D2006 был довольно давно.)

Если я правильно помню, решение было установить текстовый драйвер на "макет" принтер. Это позволяет Rave продолжать функционировать.

Другие вопросы по тегам