:: MVP ::
|
|
:: RSS ::
|
|
|
Как определить, что TScrollBox прокручен в самый конец?
procedure TForm1.ScrollBox1ViewportPositionChange(Sender: TObject;
const OldViewportPosition, NewViewportPosition: TPointF;
const ContentSizeChanged: Boolean);
begin
if ScrollBox1.ContentBounds.Height - ScrollBox1.ClientHeight = NewViewportPosition.Y then
Label1.Text := 'bottom'
else
Label1.Text := 'not bottom';
end;
|
Как включить функцию оттягивания скроллинга за границу контента и его возврат на место?
procedure TForm1.FormCreate(Sender: TObject);
begin
// Указывает, следует ли настраивать инерционную прокрутку
ScrollBox1.AniCalculations.Animation := True;
// Отвечает за функцию оттягивания скроллинга за границу контента
// и его возврат на место
ScrollBox1.AniCalculations.BoundsAnimation := True;
// Отвечает за скорость возврата оттянутой области к контенту
ScrollBox1.AniCalculations.Elasticity := 50;
// Коэффициент замедления инерционной прокрутки
// Значение по умолчанию DecelerationRateNormal = 1.95
ScrollBox1.AniCalculations.DecelerationRate := 1.5;
// Отвечает за плавное скрытие и отображение полос прокрутки
// False - полосы прокрутки не скрываются
// Значение по умолчанию = True
ScrollBox1.AniCalculations.AutoShowing := False;
ScrollBox1.AniCalculations.TouchTracking := [ttVertical{, ttHorizontal}];
end;
|
Как прокрутить TScrollBox программно?
// Способ первый
// без анимации
procedure TForm1.Button1Click(Sender: TObject);
begin
// Установка координат окна просмотра (левый верхний угол)
ScrollBox1.ViewportPosition := TPointF.Create(0, 0);
end;
// Способ второй
// без анимации
procedure TForm1.Button1Click(Sender: TObject);
begin
// Установка координат окна просмотра (левый верхний угол)
// Аналог ViewportPosition
ScrollBox1.ScrollTo(0, 0);
end;
// Способ третий
// без анимации
procedure TForm1.Button1Click(Sender: TObject);
begin
// Сдвиг на вектор
ScrollBox1.ScrollBy(-10, -10);
end;
// Способ четвертый
// с анимацией
procedure TForm3.FormCreate(Sender: TObject);
begin
ScrollBox1.AniCalculations.Animation := True;
ScrollBox1.AniCalculations.BoundsAnimation := True;
ScrollBox1.AniCalculations.TouchTracking := [ttVertical, ttHorizontal];
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// Сам сдвиг
ScrollBox1.AniCalculations.MouseWheel(5, 10);
end;
|
При использовании материала - ссылка на сайт обязательна
|
|