1. ПОСТАНОВКА ЗАДАЧИ Задачей курсового проекта является создание рабочего демонстрационного windows-приложения на языке программирования Delphi с использованием компонентов:
— GroupBox;
— ControlBar;
— HeaderControl;
— Timer;
— OpenPictureDialog;
— Gauge.
Компоненту GroupBox будем использовать для именования и группировки элементов окна приложения для показа работы компоненты Gauge. Компоненту HeaderControl будем использовать для отображения выбранной информации из меню, компонент ControlBar будет использован для написания органайзера. Работа и свойства компоненты OpenPictureDialog продемонстрируем на примере работы с картинкой в окне приложения. Компонента Timer будет запускаться по команде меню и закрывать рпиложение через определенный промежуток времени.
2. ОПИСАНИЕ ИСПОЛЬЗУЕМЫХ КОМПОНЕНТОВ DELPHI
2.1 Компонента для отображения хода выполнения длительных операций Gauge
Компонента Gauge со страницы Samples, предназначена для отображения в стиле Windows хода процессов, занимающих заметное время, например, копирования больших файлов, настройку приложения, установку приложения на компьютере и т. п. Пример возможных вариантов отображения хода процесса компонентой Gauge приведен на рис. 1.
Рисунок 1. Пример отображения хода процесса компонентой Gauge
Приведем основные свойства этой компоненты:
Свойство Gauge Описание
MaxValue Максимальное значение позиции (Position, Progress), которое соответствует завершению отображаемого процесса. По умолчанию задается в процентах 100.
MinValue Начальное значение позиции (Position, Progress), которое соответствует началу отображаемого процесса.
Progress Позиция, которую можно задавать по мере протекания процесса, начиная со значения Min или MinValue в начале процесса, и кончая значением Мах или MaxValue в конце. Если минимальное и максимальное значения выражены в процентах, то позиция это процент завершенной части процесса.
ForeColor Цвет заполнения.
ShowText Текстовое отображение процента выполнения на фоне диаграммы.
Kind Тип диаграммы: gkHorizontalBar горизонтальная полоса, gkVerticalBar вертикальная полоса, gkPie круговая диаграмма, gkNeedle секторная диаграмма, gkText отображение текстом.
Отображение хода процесса можно осуществлять, задавая значение позиции Progress в Gauge. Например, если полная длительность процесса характеризуется значением целой переменной Count (объем всех копируемых файлов, число настроек, количество циклов какого-то процесса), а выполненная часть целой переменной Current, то задавать позицию диаграммы в случае, если используются значения минимальной и максимальной позиции по умолчанию (т.е. 0 и 100), можно оператором
Gauge1.Progress := 100 * Current div Count;
для Gauge.
Можно поступать иначе: задать сначала значение максимальной величины равным Count, а затем в ходе процесса задавать позицию равной Current. Например:
Gauge1.MaxValue := Count;
Gauge1.Progress := Current;
2.2 Панели общего назначения компонента GroupBox
GroupBox находится на панели Standart, надпись в ее верхнем левом углу определяется свойством Caption. Эта панель сама по себе пустая. Ее назначение служить контейнером для других управляющих элементов, в частности, для радиокнопок RadioButton. Отдельная радиокнопка RadioButton особого смысла не имеет, хотя и может служить индикатором, включаемым и выключаемым пользователем. Но в качестве индикаторов обычно используются другие компоненты CheckBox. А радиокнопки имеют смысл, когда они взаимодействуют друг с другом в группе. Эта группа и объединяется единым контейнером, обычно панелью GroupBox.
Рассмотрим свойства радиокнопки RadioButton. Свойство Caption содержит надпись, появляющуюся около кнопки. Значение свойства Alignment определяет, с какой стороны от кнопки появится надпись: taLeftJustify слева, taRightJustify справа (это значение принято по умолчанию). Свойство Checked определяет, выбрана ли данная кнопка пользователем, или нет. Поскольку в начале выполнения приложения обычно надо, чтобы одна из кнопок группы была выбрана по умолчанию, ее свойство Checked надо установить в true в процессе проектирования. Если вы поэкспериментируете, то заметите, что и во время проектирования можно установить в true значение Checked только у одной кнопки из группы.