Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа2.doc
Скачиваний:
5
Добавлен:
06.11.2018
Размер:
196.1 Кб
Скачать
  1. Визуальные компоненты vcl

Цель работы: Расширить познания о компонентах VCL (RadioButton, CheckBox, GroupBox, Statubar, PageControl, ListBox, Combobox и Memo), их свойствах и событиях. Рассмотреть методы работы с файлами.

    1. Переключатели RadioButton и флажки CheckBox

Компонент RadioButton расположен на вкладке Standard Палитры компонентов:

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

При этом все RadioButton'ы в одном контейнере считаются принадлежащими одной группе. Если же вам надо организовать две или более независимых групп, то воспользуйтесь компонентом GroupBox на вкладке Standard:

Разместите на форме два компонента GroupBox, и поместите в каждый из них по две RadioButton'а (только размещать их надо не двойным щелчком на компоненте на Панели компонентов, а одинарным, с последующим щелчком внутри соответствующего GroupBox'а). Запустите программу. Теперь выбор между этими двумя группами можно производить независимо:

Компонент CheckBox расположен на вкладке Standard:

Этот компонент используется для включения/отключения некоторых параметров. При этом на форме может быть несколько CheckBox'ов, и каждый из них можно включать/отключать независимо от других.

Основное свойство для этого компонента - это свойство State. Оно может принимать три значения (именно три, а не два) - cbUnchecked (неотмеченное состояние), cbChecked (отмеченное состояние) и cbGrayed (серое состояние). Серое состояние выглядит так (обратите внимание, что рядом с компонентом уже есть надпись. Она определяется свойством Caption):

Компонент может иметь такое состояние тогда, когда про соответствующий ему параметр нельзя сказать, включен он или нет. Например, если параметр отвечает за то, не является ли выделенный фрагмент шрифта полужирным, то если часть выделенного текста полужирная, а часть - нет, то логично использовать именно такое состояние. Если же такого неопределенного значения у параметра быть не должно, то свойство AllowGrayed должно быть установлено в false (в этом случае при запуске программы при щелчке на CheckBox'е будут чередоваться только два состояния). Если же свойство AllowGrayed компонента установлено в true, то при щелчке на таком компоненте будут чередоваться все три состояния.

Еще одно свойство, показывающее состояние компонента - это свойство Checked. Оно равно true, если компонент отмечен, и false, если не отмечен (т. е. при этом его свойство State может принимать два значения - cbUnchecked и cbGrayed).

    1. Строка состояния StatusBar

Компонент StatusBar расположен на вкладке Win32 палитры компонентов:

На строке состояния может располагаться одна или несколько панелей. За это отвечает свойство SimplePanel. Если оно установлено в true, то панель - одна, если в false - то несколько. В первом случае за текст в строке состояния отвечает свойство SimpleText. Оно доступно и на этапе разработки, и на этапе выполнения. Если же панелей несколько (SimplePanel равно false), то до их свойств можно добраться через свойство Panels. Для добавления панелей к строке состояния просто щелкните на многоточии рядом со свойством Panels в Инспекторе объектов (или просто сделайте двойной щелчок на самой строке состояния на форме):

После добавления панелей можно редактировать их свойства. Основное свойство для них - это text. Естественно, что оно задает текст в соответствующей панели. Это свойство доступно для чтения и записи (в том числе и во время работы программы). Вот так, например, можно задать некоторую надпись в первой панели строки состояния:

StatusBar1.Panels[0].Text:='сохранение';

Обратите внимание, что нумерация панелей идет с нуля.

Количество панелей в строке состояния возвращает следующее выражение:

StatusBar1.Panels.Count

Вот так, например, можно обнулить строки во всех панелях строки состояния:

for i:=0 to StatusBar1.Panels.Count-1 do

StatusBar1.Panels[i].test:='';