Сохранение полосы прокрутки после редактирования
Не нашёл упоминания об этом ни на форуме, ни в документации поэтому решил поделиться опытом.
на форме Delphi располагается компонент TfrxPreview для предварительного просмотра отчёта.
После редактирования frxMemoView выполняется перестройка отчёта (т.к. меняется высота Memo)
Естественно, что при этом VertScrollBar.Position устанавливается в 0.
Необходимо после редактирования сохранять положения полос прокрутки.
Set / Get ScrollPost в данном случае не работают (frxPreview1.handle)
Для реализации этой возможности необходимо использовать frxPreview1.Workspace.VertPosition
на форме 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;