На этом шаге мы рассмотрим компонент TScrollBar
Компонент TScrollBar (Полоса прокрутки) обычно используется как вспомогательный инструмент в других элементах управления: списках, текстовых областях и т.д. Однако его можно довольно эффективно применять и в качестве самостоятельного элемента управления, например для грубой настройки значений с помощью ползунка. С помощью полосы прокрутки пользователь может быстро перемещаться по длинному списку или по большому рисунку, который не умещается на экране. Полосу прокрутки иногда используют также для индикации или ввода какой-либо величины. Кроме того, полосу прокрутки можно применять для аналогового представления позиции какого-либо элемента.
Полоса прокрутки используется для просмотра содержимого окна, форм и других элементов управления. В то же время многие элементы управления содержат встроенные полосы прокрутки, не требующие от программиста написания дополнительного кода.
Свойства компонент TScrollBar.
Свойство | Описание |
---|---|
TScrollBarKind = ( sbHorizontal , sbVertical); property Kind: TScrollBarKind; ScrollBarKind = (sbHorizontal, sbVertical) ; |
Определяет ориентацию компонента:
|
property LargeChange: TScrollBarInc; | "Большой" сдвиг бегунка (при щелчке мышью рядом с концевой кнопкой) |
property Max: Integer; | Максимальное значение диапазона изменения числовой величины |
property Min: Integer; | Минимальное значение диапазона изменения числовой величины |
property PageSize: Integer; | Определяет размер позиции табуляции бегунка |
property Position: Integer; | Текущее значение числовой величины |
property SmallChange: TScrollBarInc; | "Малый" сдвиг бегунка (при щелчке мышью на концевой кнопке) |
Компонентом TScrollBar полностью управляет Windows, поэтому у него нет свойства Color.
С помощью следующего метода можно сразу установить свойства Position, Max и Min:
procedure SetParams (APosition, AMax, AMin: Integer);
С компонентом связано два события:
type TScrollEvent = procedure (Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer) of object; procedure OnScroll: TScrollEvent; procedure OnChange: TNotiryEvent;
Первое возникает при любом изменении свойства Position, второе - при изменении параметров методом SetParams.
Приведем пример синхронизации двух компонентов ScrollBar.
Решить эту задачу помогут обработчики событий OnScroll (в данном примере - это два компонента ScrollBar1 и ScrollBar2 расположенные на форме TMainForm):
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ScrollBar1: TScrollBar; ScrollBar2: TScrollBar; procedure ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); procedure ScrollBar2Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin ScrollBar2.Position:=ScrollPos; end; procedure TForm1.ScrollBar2Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin ScrollBar1.Position:=ScrollPos; end; end.
Если вы все сделали правильно, то у вас получится следующее:
Рис.1.Синхронизация двух компонентов ScrollBar
На следующем шаге мы рассмотрим компонент TGroupBox