Вкладка 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



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

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