Почему окно дизайнера отчета не модально?

отредактировано 08:27 Раздел: FastReport 3.0
У меня FastReport Professional 3.10, многооконное приложение с главной формой MDIForm.

Дизайнер автономного отчета вызывается в двумя способами:
а) кнопкой на форме, открытой модально;
б) кнопкой на форме MDIChild.

В случае а) дизайнер отчета открывается в модальном окне, чего я и хочу.

В случае б) дизайнер отчета открывается не модально, форма MDIChild остается доступной (хотя и не Enabled), как и главная форма программы, чего я не хочу. При переходе в них окно дизайнера пропадает (скрывается за ними), пользователь ничего понять не может. Тот же эффект наблюдается, если окно предварительного просмотра установлено свойство MDIChild, и пользователь при просмотре нажимает кнопку "Редактировать отчет".

Как сделать так, чтобы окно дизайнера отчета всегда открывалось модально?

Можно ли в unit frxClass в методах

TfrxReport.DesignReport;
TfrxReport.DesignReport(IDesigner: IUnknown; Editor: TObject);
function TfrxReport.DesignPreviewPage:

везде поставить "FDesigner.ShowModal;" вместо "FDesigner.Show;" или возникнут проблемы?

Комментарии

  • отредактировано 08:27
    У модального дизайнера много глюков (не работают окна инспектора и прочие вспомогательные окна). Видимо, это особенность VCL - решения проблемы я так и не нашел.
  • отредактировано 08:27
    Александр, а такой прием допустим?
    Процедура открывает окно дизайнера с эффектом псевдомодальности. Правда, после закрытия его окно прыгает, так как делается попытка переключиться в другое приложение.

    procedure FRXDesignReportAsModal(FRXReport:TFRXReport);
    var F:TForm;
    begin
    try
    F:=Screen.ActiveForm;
    if F.FormStyle = fsMDIChild then Application.MainForm.Enabled:=false;
    FRXReport.DesignReport;
    finally
    if not Application.MainForm.Enabled then
    begin
    Application.MainForm.Enabled:=true;
    Application.MainForm.SetFocus;
    if F <> nil then
    begin
    if (F.Visible and not F.Focused) then F.SetFocus;
    end;
    end;
    end;
    end;

    Сергей Ковязин.

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

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