Ошибки в компонентах fastreport?

отредактировано 01:55 Раздел: FastReport 3.0
Требуется создать форму для просмотра, экспорта и печати отчетов.Выбран Fastreport 3.0. Планируется покупка компоненты. Если бы ни одна гадость: если во время дизайна формы на нее сначала положить frxReport, а потом кладем frxRichObject , то при линковке приложения возникает эксепшн Access Violation.
Если же класть их на форму в обратном порядке: сначала frxRichObject ,затем нажать Save,чтоб в коде сначала был #pragma link "frxRich",
а потом frxReport и снова сэйвим чтобы появился #pragma link "frxClass", то ошибки не возникает. Такая же ситуация с компонентой frxDialogControls. Вопрос это такая фича,что нужно класть в таком порядке или бага в компонентах? Очень неудобно, когда кладешь все нужны компоненты и оказывается что хидеры и прагмы объявлены в неверном порядке и при этом возникает ошибка по неизвестной причине. Кстати при удалении этой формы из проекта бага остается. При использовании fastreport 2.5 таких багов не было. ;)

Комментарии

  • отредактировано 01:55
    Такого не замечал ;)
    Какая версия FR ?
  • отредактировано 01:55
    Версия 3.23.11
  • отредактировано 01:55
    До этого FR 3 стоял (если да - старую версию удалили полностью) ?
    Ошибку точно описать можете (адрес и тд..)?
  • отредактировано August 2006
    До третьего фаст репорта стоял фаст репорт 2.5. Я снес компоненту, снес билдер, ребутнул систему. Создал новый проект , добавил в него только компоненты frxreport и frxRichObject, засэйвил , появились нужные pragma И include, но при запуске вот такой эксепшн, теперь при любом порядке добавления компонент:

    Debugger Exception Notification
    Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 4002CD14. Read of address 00000008'. Process stopped. Use Step or Run to continue.
    OK Help
    Вот кусок View CPU:
    rtl60.@Classes@TCollection@GetCount$qqrv:
    4002CD14 8B4008 mov eax, [eax+0x08]

    Без frxRichObject на форме проект запускается нормально.
  • отредактировано 01:55
    Вы добавили необходимые рантайм пакеты?
  • отредактировано 01:55
    А что это за пакеты? О чем речь вообще и куда их добавлять? Из предоставленного линка не понятно. Пардон за ламерство)
  • отредактировано 01:55
    При использовании пакетов фр не включает их в приложение(exe), а грузит bpl как dll(соответственно bpl должны быть перенесены на машину клиента).
    Если хотите включить все в один exe, то project -> Options -> Packages -> и снимите крыжик с build with run-time packages. а если хотите юзать run-time пакеты, то добавьте указанные пакеты.
  • отредактировано August 2006
    Опция use runtime library отключена была, также как и use dinamic rtl впрочем.
    Вопросик как эти бплки добавить,каксоответственно bpl должны быть перенесены на машину клиента? Указать галочки в списке design packages или перечислить их в build with runtime packages?Скорее второе,я прав? Мой товарищ дома на чистую машину поставил фр3 (фр2.5 не было) и во время дизайна такая же бага. Сейчас я попробую бплки подключить. Пасиб за помощь.
  • отредактировано August 2006
    Я тоже на чистую машину поставил блидер потом фр ,к кладу компоненты в произвольном порядке, сохраняю. в свойствах проекта прописываю пакгаджи запускаю и опять вот эта бага:
    Debugger Exception Notification
    Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004AD394. Read of address 00000008'. Process stopped. Use Step or Run to continue.
    OK Help
    в *.cpp:
    #pragma package(smart_init)
    #pragma link "frxClass"
    #pragma link "frxDBSet"
    #pragma link "frxRich"
    #pragma resource "*.dfm"

    в *.h:
    #include "frxClass.hpp"
    #include "frxDBSet.hpp"
    #include "frxRich.hpp"

    Веселье в том что если поменять местами указанные выше строки кода в модулях то все работает:
    в *.cpp:
    #pragma package(smart_init)
    #pragma link "frxDBSet"
    #pragma link "frxRich"
    #pragma link "frxClass"
    #pragma resource "*.dfm"

    в *.h:
    #include "frxDBSet.hpp"
    #include "frxRich.hpp"
    #include "frxClass.hpp"


  • отредактировано 01:55
    Я тоже на чистую машину поставил блидер потом фр ,к кладу компоненты в произвольном порядке, сохраняю. в свойствах проекта прописываю пакгаджи запускаю и опять вот эта бага:
    Debugger Exception Notification
    Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 004AD394. Read of address 00000008'. Process stopped. Use Step or Run to continue.
    OK Help
    в *.cpp:
    #pragma package(smart_init)
    #pragma link "frxClass"
    #pragma link "frxDBSet"
    #pragma link "frxRich"
    #pragma resource "*.dfm"

    в *.h:
    #include "frxClass.hpp"
    #include "frxDBSet.hpp"
    #include "frxRich.hpp"

    Веселье в том что если поменять местами указанные выше строки кода в модулях то все работает:
    в *.cpp:
    #pragma package(smart_init)
    #pragma link "frxDBSet"
    #pragma link "frxRich"
    #pragma link "frxClass"
    #pragma resource "*.dfm"

    в *.h:
    #include "frxDBSet.hpp"
    #include "frxRich.hpp"
    #include "frxClass.hpp"


  • отредактировано August 2006
    Наррроод!!! Скажите, пожалуйста, у кого-нибудь работают frxReport И frxRichObject из Fast Report 3.23.11 на одной форме в C++Builder 6 Enterprise? Я задолбался уже. Как только ставлю на форму компоненту frxRichObject, так при линковке вылезает Access Violation. Я уже все пробовал сносить и билдер и компоненту и винду и другой билд билдера ставил и все равно вот такая бага. Быть может это от того что у меня ХР SP2? Подскажите что делать то? Всякие библиотеки и паккаджи прописывал.
  • отредактировано August 2006
    Ладно з******ы, куплю я ваш FastReport, но если баги не исчезнут , то держитесь разработчики- достану ведь....вопросами!! ;)
  • отредактировано August 2006
    Задавайте любые вопросы, мы дадим вам любые ответы ;)
  • отредактировано 01:55
    BOOsTer написал:
    До третьего фаст репорта стоял фаст репорт 2.5. Я снес компоненту....
    2.5 можно было не сносить. Оба генератора прекрасно уживаются вместе.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.