Dialogpage нужно отобразить во фрайме

отредактировано 17:23 Раздел: FastReport 4.0
Добрый день, ситуация следующая.
Программно открывается отчет в котором есть диалоговая форма. Необходимо ее открыть не в отдельном окне, пусть даже при модальном вызове, а во фрайме (такой способ очень хорошо вписывается в интерфейс нашего приложения, а отдельное окно там как бы не уместно). Есть какой-нибудь способ это реализовать? Если не стандартными методами, то переопределением класса TfrxDialogPage или созданием похожего классе, например TfrxDialogFramePage, у которого Parent можно будет переприсвоить на имеющийся фрейм? Но новый класс нужно будет зарегистрировать в Fast Report, однако я не нашла в руководстве разработчика такую возможность. Или можно все-таки имеющимися методами такого добится?
Спасибо.

Комментарии

  • отредактировано 17:23
    Сделала следующее.
    В отчете в диалоговой форме все контролы сажаю на панель, которая лежит на форме. Далее программно нахожу форму а на ней панель и переопредаляю ей свойство Parent.
    frxReport1.LoadFromFile('ХХХ.fr3');
    for i := 1 to frxReport1.PagesCount-1 do
        if frxReport1.Pages[i].BaseName = 'DialogPage' then
        begin
          Page := frxReport1.Pages[i] as TfrxDialogPage;
          FrmDialogForm := Page.DialogForm;
          Break;
        end;
      for i:=0 to FrmDialogForm.ControlCount-1 do
        if FrmDialogForm.Controls[i].ClassType.ClassName = 'TPanel' then
        begin
          dpPanel := FrmDialogForm.Controls[i] as TPanel;
          Break;
        end;
      dpPanel.Parent := Self;
    
    Замечательно отображает, вот только события не срабатывают, а именно событие OnShow на диалоговой форме (что вполне естественно, потому как открытие формы не происходило). Но даже если есть событие OnEnter на панели, которую я перетащила в свой фрейм, то это событие все равно не срабатывает. Можно как-то принудительно создавать события, тем самым вызвав соответствующий обработчик?

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

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