Ошибка в код Tfrxreport

отредактировано 01:51 Раздел: FastReport 4.0
Если открывать отчет для редактирования на сторонней форме методом frxReport.DesignReportInPanel, то при переключении с моего приложения на другое (хоть дельфистудию, хоть просто Alt+Tab), то падает с AV. Моё решение ошибки привело к тому, что ошибку можно отключить в методе TfrxDesignerForm.DoTopmosts путем проверки наличия Designer <> nil.

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

Внешний дизайнер вызываю так:
var
  Frm: TFmFastReportPlaceholder; // форма содержит на себе только меню (для показа пунтков "Данные" и "Переменные" отчета)
begin
  Frm := TFmFastReportPlaceholder.Create(nil);
  try
    // display the designer
    Report.DesignReportInPanel(Frm);
    with TfrxDesignerForm(Report.Designer) do
    begin
      // добавляю собственные кнопки на форму
      Frm.miData.Action := ReportDataCmd;
      SaveCmd.OnExecute := Frm.SaveReport; // там я сохраняю отчет в БД 
    end;

    Frm.ShowModal;
  finally
    Report.Designer := nil;
    Frm.Free;
  end;
end;
я исправил следующую процедуру
procedure TfrxDesignerForm.DoTopmosts(Enable: Boolean);
begin
  if Report.Designer = nil then // также годится проверка Report.Owner = nil
    Exit;
  ...
end;

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

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