
- •Министерство образования российской федерации
- •Северо-западный государственный заочный технический университет
- •В. Л. Макаров
- •Прикладное программирование
- •Конспект лекций с. Петербург 2003г
- •Окно формы. Форма является основой большинства приложений , так как на ней размещаются другие управляющие компоненты. Внешний вид окна формы показан на рисунке 1.3.
- •3.Основные свойства, методы и события формы
- •Компоненты vcl
- •5.1. Кнопки управления
- •5.2. Окно редактирования Edit
- •5.3 Многострочные окна редактирования Memo и RichEdit
- •5.4 Компоненты выбора из списков – ListBox, CheckListBox, ComboBox
- •5.5 Элемент управления Label (надпись или метка)
- •5.6 Элемент управления RadioButton (Радиокнопка)
- •5.7 Полосы прокрутки (ScrollBar)
- •5.9 Компонент Timer(Таймер)
- •5.10 Компонент StringGrid ( таблица строк)
- •5.11 Компонент Chart – графики и диаграммы
- •5.12 Компонент f1Book
- •6. Создание меню
- •7. Системные диалоги
- •7.1 Диалоги открытия и сохранения файлов
- •7.2 Диалог выбора шрифта(компонент FontDialog )
- •7.3 Диалог выбора цвета(компонент ColorDialog )
- •7.4Диалоги поиска и замены текста(компоненты FindDialog и ReplaceDialog )
- •8.1 Структура головного файла проекта
- •8.2 Структура файлов модулей форм
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.