Шаг 13.
Вкладка Standard. Компонент TScrollBar

    На этом шаге мы рассмотрим компонент TScrollBar

    Компонент TScrollBar (Полоса прокрутки) обычно используется как вспомогательный инструмент в других элементах управления: списках, текстовых областях и т.д. Однако его можно довольно эффективно применять и в качестве самостоятельного элемента управления, например для грубой настройки значений с помощью ползунка. С помощью полосы прокрутки пользователь может быстро перемещаться по длинному списку или по большому рисунку, который не умещается на экране. Полосу прокрутки иногда используют также для индикации или ввода какой-либо величины. Кроме того, полосу прокрутки можно применять для аналогового представления позиции какого-либо элемента.

    Полоса прокрутки используется для просмотра содержимого окна, форм и других элементов управления. В то же время многие элементы управления содержат встроенные полосы прокрутки, не требующие от программиста написания дополнительного кода.

    Свойства компонент TScrollBar.

   
Таблица 1. Свойства компонента TScrollBar
Свойство Описание
TScrollBarKind = ( sbHorizontal , sbVertical);
property Kind: TScrollBarKind; ScrollBarKind = (sbHorizontal, sbVertical) ;
Определяет ориентацию компонента:
  • 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




Предыдущий шаг Содержание Следующий шаг