Access Violation при переключении между окнами.
Добрый вечер.
Осваиваю генерацию репортов и столкнулся с непонятной ошибкой...
Хочу в приложении реализовать редактирование шаблонов расположенных в базе данных. После выгрузки шаблона из базы пытаюсь его отобразить в редакторе, все проходит успешно, но стоит переключиться на другое окно - вылезает Access Violation. При использовании TfrxDesignerForm, ошибка возникает и в пустых и в заполненных шаблонах, при использовании только DesignReportInPanel метода, появление ошибки носит выборочный характер и появляется только с некоторыми из заполненных шаблонов.
Использую версию FastReport 4.11.8
Среда Embarcadero 2010, язык C++
Код:
В событии onShow формы:
TfrxReport *frxReport = GetReportTemplate(ID);
TfrxDesignerForm *designer = new TfrxDesignerForm(frxReport->Designer);
if(frxReport != NULL )frxReport->DesignReportInPanel(this);
else this->Close();
Если закомментировать строку "TfrxDesignerForm *designer = new TfrxDesignerForm(frxReport->Designer);", ошибка появляется не со всеми отчетами.
Подскажите пожалуйста - из-за чего может появляться такая ошибка?
Взял за основу пример "EmbedDesigner", Там TfrxDesignerForm используется для создания дополнительного меню, может быть нужно определить какие-нибудь важные методы...
Осваиваю генерацию репортов и столкнулся с непонятной ошибкой...
Хочу в приложении реализовать редактирование шаблонов расположенных в базе данных. После выгрузки шаблона из базы пытаюсь его отобразить в редакторе, все проходит успешно, но стоит переключиться на другое окно - вылезает Access Violation. При использовании TfrxDesignerForm, ошибка возникает и в пустых и в заполненных шаблонах, при использовании только DesignReportInPanel метода, появление ошибки носит выборочный характер и появляется только с некоторыми из заполненных шаблонов.
Использую версию FastReport 4.11.8
Среда Embarcadero 2010, язык C++
Код:
В событии onShow формы:
TfrxReport *frxReport = GetReportTemplate(ID);
TfrxDesignerForm *designer = new TfrxDesignerForm(frxReport->Designer);
if(frxReport != NULL )frxReport->DesignReportInPanel(this);
else this->Close();
Если закомментировать строку "TfrxDesignerForm *designer = new TfrxDesignerForm(frxReport->Designer);", ошибка появляется не со всеми отчетами.
Подскажите пожалуйста - из-за чего может появляться такая ошибка?
Взял за основу пример "EmbedDesigner", Там TfrxDesignerForm используется для создания дополнительного меню, может быть нужно определить какие-нибудь важные методы...
Комментарии
Если создать форму, вызвать метод для отчета DesignReportInPanel с указанием формы, отобразить форму, закрыть форму, удалить форму. То первый раз все проходит успешно, но при повторном выполнении форма отрисовывается и отчет отображается, но стоит перейти на другую форму или просто свернуть приложение - вылетает AV.
В этой [topic="4746"]теме[/topic] обсуждалась похожая ситуация, но мне кажется что у них ноги растут из разных мест...