Сохранение полосы прокрутки после редактирования

отредактировано January 2016 Раздел: FastReport 4.0
Не нашёл упоминания об этом ни на форуме, ни в документации поэтому решил поделиться опытом.
на форме Delphi располагается компонент TfrxPreview для предварительного просмотра отчёта.
После редактирования frxMemoView выполняется перестройка отчёта (т.к. меняется высота Memo)
Естественно, что при этом VertScrollBar.Position устанавливается в 0.
      frxPreview1.Lock;
      // Перестрока отчёта нужна для того, чтобы Memo расширилась/сузилась после реактирования
      frxReport1.PrepareReport;
      frxPreview1.Unlock;

Необходимо после редактирования сохранять положения полос прокрутки.
Set / Get ScrollPost в данном случае не работают (frxPreview1.handle)

Для реализации этой возможности необходимо использовать frxPreview1.Workspace.VertPosition
var
      VertSccrollPosition: integer;
...

      VertSccrollPosition := frxPreview1.Workspace.VertPosition;
      frxPreview1.Lock;
      // Перестрока отчёта нужна для того, чтобы Memo расширилась/сузилась после реактирования
      frxReport1.PrepareReport;
      frxPreview1.Unlock;
      frxPreview1.Workspace.VertPosition := VertSccrollPosition;

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

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