Ошибки в 3.08

Eugene LachinovEugene Lachinov Санкт-Петербург
отредактировано 07:47 Раздел: FastReport 3.0
Виснет в fs_iinterpreter.pas

if Item is TfsMethodHelper then
while Item.FLocked do; // здесь

Комментарии

  • Eugene LachinovEugene Lachinov Санкт-Петербург
    отредактировано 07:47
    Для повторения

    ShowMessage(IntToStr(StrToInt(IntToStr(1))))
  • отредактировано 07:47
    присоединяюсь, то же самое
  • отредактировано 07:47
    Спасибо Александр, Вы как и обещали добавили св-во CloseDataSource, теперь есть возможность сохранять форму после просмотра отчета, но к сожалению значение этого св-ва не сохраняется в файле отчета.
  • отредактировано December 2004
    Eugene Lachinov написал:
    Для повторения

    ShowMessage(IntToStr(StrToInt(IntToStr(1))))

    Это понятно. А реальный пример "из жизни" можно?
  • отредактировано 07:47
    kirill2000 написал:
    Спасибо Александр, Вы как и обещали добавили св-во CloseDataSource, теперь есть возможность сохранять форму после просмотра отчета, но к сожалению значение этого св-ва не сохраняется в файле отчета.
    Разобрался

    FrxClass:

    Было
    property CloseDataSource: Boolean read FCloseDataSource write FCloseDataSource default False;

    Надо
    property CloseDataSource: Boolean read FCloseDataSource write FCloseDataSource default True;

    Удручило другое: в версии 3.08 напрочь перестало работать Trace into, одно из главных преимуществ 3 версии пропало, при нажатии на F7 дизайнер намертво зависает.
  • Eugene LachinovEugene Lachinov Санкт-Петербург
    отредактировано 07:47
    AlexTZ написал:
    AlexTZ написал:
    Для повторения

    ShowMessage(IntToStr(StrToInt(IntToStr(1))))

    Это понятно. А реальный пример "из жизни" можно?
    Я не пойму, ошибка на этом примере не повторяется ?
  • отредактировано December 2004
    Возникла проблема: в дизайнере отчётов, встраиваемом в программу, невозможно попасть в окно инспектора ;) Оно появляется и исчезает по F11, и выглядит вполне активным. Однако, при щелчке мыши на нём издаёт звук стандартного виндового exception.

    C++Builder 5.0, дизайнер вызывается по кнопке из НЕмодального окна (fsNormal), а приложение в целом - MDI.
  • отредактировано 07:47
    Фикс на ошибку с зависанием - в наших ньюсгруппах, группа fast-reports.ru.public.hotfixes
  • отредактировано December 2004
    Кстати, ещё любопытный глюк (а может, так задумано). В дизайнере отчёта кнопка "влево" перемещает выделение на один объект вправо, и наоборот.
  • отредактировано 07:47
    В дизайнере отчётов, встраиваемом в программу, невозможно попасть в окно инспектора Оно появляется и исчезает по F11, и выглядит вполне активным. Однако, при щелчке мыши на нём издаёт звук стандартного виндового exception.

    C++Builder 5.0, приложение - MDI.

    Я выяснил, что если при прошлом вызове дизайнера окно инспектора было включено (что фиксируется в Registry), то инспектор появляется позади окна дизайнера, после чего нажатие F11 его выключает, следующее нажатие F11 - включает, но во вновь включенный инспектор попасть невозможно.

    Если же изначально при вызове дизайнера инспектор выключен, или он прицеплен к окну в режиме Dock, то всё работает нормально.

    Я временно пофиксил проблему, отключив в исходном коде FastReport (frxDesgn.pas) чтение позиции инспектора, сделав там вместо этого FInspector.Visible:=False.

    Однако, хотелось бы более толкового решения ;)
    То же самое запостил в news.
  • отредактировано 07:47
    Надо вернуть метод в frxClass.pas в первоначальный вид:
    procedure TfrxReport.DesignReport;
    var
      p: TfrxPage;
      f: TForm;
    begin
    {$IFNDEF FR_VER_BASIC}
      if FDesigner <> nil then Exit;
      if frxDesignerClass <> nil then
      begin
        if PagesCount = 0 then
        begin
          if FDotMatrixReport then
            p := TfrxDMPPage.Create(Self) else
            p := TfrxReportPage.Create(Self);
          TfrxReportPage(p).SetDefaults;
          p.Name := 'Page1';
        end;
        FScript.ClearItems(Self);
    
        try
          f := Screen.ActiveForm;
          if f <> nil then
            f.Enabled := False;
    
          FModified := False;
          FDesigner := TfrxCustomDesigner(frxDesignerClass.NewInstance);
          FDesigner.CreateDesigner(nil, Self);
          FDesigner.Show;
          while not FDesigner.FModalFinished do
            Application.HandleMessage;
        finally
          FDesigner.Free;
          FDesigner := nil;
        end;
    
        if f <> nil then
        begin
          f.Enabled := True;
          if (not (csDesigning in ComponentState)) and (f.Visible) then
            f.SetFocus;
        end;
      end;
    {$ENDIF}
    end;
    
  • отредактировано 07:47
    Спасибо! Инспектор заработал, как надо.

    Только при полной рекомпиляции утилита recompile матерится на отсутствие frxDBX5.bpk (у меня версия Professional).

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

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