Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прикл_программир_ч1.doc
Скачиваний:
11
Добавлен:
18.09.2019
Размер:
11.05 Mб
Скачать

5.7 Полосы прокрутки (ScrollBar)

Полосы прокрутки на формах не следует путать с полосками прокрутки , которые автоматически вставляются в большие текстовые поля или списки. Элемент полосы прокрутки представляет собой совершенно независимый объект , не привязанный к другим элементам. Горизонтальная и вертикальная полосы прокрутки ничем не отличаются друг от друга., кроме ориентации. Оба элемента обладают одинаковыми свойствами , событиями и методами. Полосы прокрутки обычно применяются для увеличения или уменьшения некоторого значения .Например, таким образом можно изменять цвета, числа или громкость звука на устройствах мультимедиа.

Основные свойства полос прокрутки:

Свойство Position - целое, значение которого может изменяться в пределах, задаваемых свойствами Min и Max. По умолчанию Min = 0, Max = 100, так что Position может принимать значения - от 0 до 100. Если задать большее или меньшее значение Max, соответственно увеличится или уменьшится количество возможных значений Position в диапазоне Min - Max. . Это свойство отражает положение бегунка и может задаваться как во время проектирования , так и программно во время выполнения.

Свойство Kind, определяет горизонтальное или вертикальное расположение полосы и принимает соответственно значения sbHorizontal или sbVertical.

Свойство SmallChange , определяет шаг изменения свойства Position, когда пользователь щелкнет мышкой по одной из стрелок на концах прокрутки.

Свойство LargeChange, определяет шаг изменения свойства Position, когда пользователь щелкнет мышкой по бегунку прокрутки.

Значения свойств Position, SmallChange и LargeChange должны принадлежать диапазону , определяемому свойствами Min - Max.

События полос прокрутки:

OnChange – происходит при изменении свойства Position во время выполнения программы .

OnScroll.- генерируется во время перетаскивания бегунка.

Программный код приложения, характеризующего основные свойства компонента ScrollBar показан на рисунке 5.18 Для реализации интерфейса этого приложения на форме необходимо расположить три однострочный реактора(Edit), четыре метки(Label), две радио кнопки(RadioButton ) и компонент ScrollBar. Свойства элементов, установленные во время проектирования , показаны в таблице 5.10.

Таблице 5.10

Компонент

Свойство

Значение

Форма

Caption

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

Метки

Name

Label1

Caption

Color

clHighlightText

Name

Label2

Caption

Color

clHighlightText

Caption

SmallChange(Label3)

Caption

Position(Label4)

Радио кнопки

Caption

SmallChange=5 (RadioButton1)

Caption

SmallChange=10 (RadioButton2)

Окна редактирования

Name

Edit1

Name

Edit2

Name

Edit3

Другие свойства компонентов принимаются по умолчанию.

//Программный код приложения, характеризующего основные свойства компонента ScrollBar

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

Label2->Caption=ScrollBar1->SmallChange;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ScrollBar1Change(TObject *Sender)

{

Label1->Caption= ScrollBar1->Position;

Edit1->Color=TColor(RGB (0,ScrollBar1->Position,0));

Edit2->Color=TColor(RGB (ScrollBar1->Position,0,0));

Edit3->Color=TColor(RGB (0,0,ScrollBar1->Position));

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ScrollBar1Scroll(TObject *Sender,

TScrollCode ScrollCode, int &ScrollPos)

{

Edit1->Text= "Произошло событие- щелчек по бегунку";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton1Click(TObject *Sender)

{

ScrollBar1->SmallChange=5;

Label2->Caption=ScrollBar1->SmallChange;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::RadioButton2Click(TObject *Sender)

{

ScrollBar1->SmallChange=10;

Label2->Caption=ScrollBar1->SmallChange;

}

//---------------------------------------------------------------------------

Рис.5.18 Программный код приложения, характеризующего основные свойства компонента ScrollBar

В этом приложении свойство Position компонента ScrollBar установлено в диапазоне Min=0 - Max=100 ,и при изменении положения бегунка отображается в свойстве Caption метки Label1. Свойство SmallChange , определяющее шаг изменения свойства Position при щелчке мышкой по одной из стрелок на концах прокрутки, изменяется с помощью радио кнопок RadioButton1и RadioButton2 и регистрируется с помощью метки Label2. Положение бегунка компонента ScrollBar определяет интенсивность цвета фона однострочных редакторов Edit1- Edit3.

5.8 Элемент управления CheckBox ( индикатор)

Этот компонент представляет собой элемент управления для выбора одного из двух возможных значений (обычно “Да” или “ Нет”). При каждом щелчке пользователя на индикаторе его состояние изменяется от положения включено (наличие черной галочки в окне индикатора) до положения выключено (пустое окно индикатора). Эти состояния индикатора соответствуют значению свойства AllowGrayed = false (значение по умолчанию). При значении этого свойства = true, индикатору добавляется третье состояние – промежуточное (серое окно индикатора и серая галочка).

Трем состояниям индикатора соответствуют три значения свойства State: cbCheked, cbGrayed, cbUnchecked.

Проверить состояние индикатора можно не только по значению свойства State, но и по значению свойства Checked. Если Checked = true, то индикатор выбран, т.е. State = cbChecked. Если Checked = false, то State = cbChecked.

Надпись в индикаторе CheckBox задается свойством Caption, а ее размещение по отношению к индикатору – свойством Aligment.

Наиболее часто используемым является событие OnClick, возникающее при каждом изменении пользователем состояния индикатора. Это событие можно использовать для обработки результатов изменения. Пример использования индикаторов CheckBox в приложения показан в разделе 5.4 при описании компонента CheckListBox.