- •Глава 4. Компоненты 30
- •Глава 5. Основы программирования 37
- •Часть I. Delphi и работа в Интегрированной Среде
- •Глава 1. Объектно-ориентированное программирование
- •1.1. Основные понятия и определения
- •1.2. Визуальное программирование интерфейса
- •1.3. Общие вопросы построения программ
- •Глава 2. Проекты Delphi
- •2.1.Файлы проекта
- •2.2.Структура файла головной программы
- •2.3. Окно Интегрированной Среды Разработки Delphi
- •2.4. Панель главного меню и всплывающие меню
- •2.5. Форма и компоненты
- •2.5.1.Окно формы
- •2.5.2. Окно Редактора Кода
- •2.5.3. Инспектор Объектов
- •2.6. Структура модуля приложения
- •Глава 3. Элементы языка Delphi
- •3.1.Типы данных
- •3.1.1. Целый тип
- •3.1.2.Вещественный тип
- •3.1.3. Символьный тип
- •3.1.4. Строковый тип
- •3.1.5. Логический тип
- •3.2. Переменная
- •3.3. Константы
- •3.3.1.Числовые константы
- •3.3.2. Строковые и символьные константы
- •3.3.3. Логические и именованные константы
- •3.4. Инструкция присваивания
- •3.5. Стандартные функции
- •3.5.1.Математические функции
- •Глава 4. Компоненты
- •4.1. Форма и компоненты на форме
- •4.2. Событие и процедура обработки событий
- •Глава 5. Основы программирования
- •5.1. Сохранение проекта, его повторное открывание
- •5.2. Стиль программирования
- •5.3. Порядок разработки проекта
- •5.4. Управляющие структуры языка Delphi
- •5.4.1. Инструкция if
- •5.4.2. Инструкция case
- •5.5. Циклы
- •5.5.1. Инструкция for
- •5.5.2. Инструкция while
- •5.5.3. Инструкция repeat
- •5.5.4. Инструкция goto
- •5.6. Процедуры и функции
- •5.6.1. Структура функции
- •5.6.2. Структура процедуры
- •5.6.3. Ввод и вывод данных в диалоговых окнах
- •5.6.4. Запись инструкций программы
- •5.6.5. Отладка программы
- •5.7. Операции со строками
- •5.7.1. Стандартные функции и процедуры работы со строками
- •5.7.2. Использование операций со строками
- •5.8. Массивы
- •5.8.1. Объявление массива
- •5.8.2. Операции с массивами
- •5.8.3. Стандартные функции обработки массивов
- •5.8.4. Многомерные массивы
Глава 4. Компоненты
Поля редактирования, поля отображения текста, списки, переключатели, командные кнопки и другие элементы, обеспечивающие взаимодействие с пользователем, называют компонентами.
Компоненты, которые программист может использовать в процессе разработки программы, находятся на вкладках палитры компонентов (Tool Palette). На вкладках Standard, Additional, System и Win32 находятся наиболее часто используемые компоненты.
Компонент – это элемент пользовательского интерфейса. С другой стороны, компонент – это код, который обеспечивает создание компонента, его отображение и функционирование. Стандартные компоненты Delphi объединены в библиотеку, которая называется VCL – Visual Component Library (библиотека визуальных компонентов). Именно поэтому приложение, которое для взаимодействия с пользователем использует компоненты VCL, называется VCL-приложением.
4.1. Форма и компоненты на форме
Работа над новым приложением начинается с создания стартовой формы – главного окна программы. Сначала нужно настроить форму, затем – добавить к форме необходимые компоненты (поля отображения текстовой информации, поля ввода, командные кнопки).
Настройка формы (и компонентов) осуществляется путем изменения значений их свойств. Свойства объекта (формы, компонента) определяют вид и поведение объекта. Например, свойство caption определяет заголовок формы, а свойство Position – положение окна в момент первого его появления на экране. Основные свойства формы приведены в табл. 4.1.
Таблица 4.1
Свойства формы (объекта TForm)
Свойство |
Описание |
Name |
Имя (идентификатор) формы. Используется для доступа к форме, ее свойствам и методам, а также для доступа к компонентам формы |
Caption |
Текст заголовка |
Width |
Ширина формы |
Height |
Высота формы |
Position |
Положение окна в момент первого его появления на экране (poCenterScreen – в центре экрана; poOwnerFormCenter – в центре родительского окна; poDesigned– положение окна определяют значения свойств Тор и Left) |
Top |
Расстояние от верхней границы формы до верхней границы экрана |
Left |
Расстояние от левой границы формы до левой границы экрана |
BorderStyle |
Вид границы. Граница может быть обычной (bsSizeable), тонкой (bsSingle) или отсутствовать (bsNone). Если у окна обычная граница, то во время работы программы пользователь может с помощью мыши изменить размер окна. Изменить размер окна с тонкой границей нельзя. Если граница отсутствует, то на экран во время работы программы будет выведено окно без заголовка. Положение и размер такого окна во время работы программы изменить нельзя |
Borderlcons |
Кнопки управления окном. Значение свойства определяет, какие кнопки управления окном будут доступны пользователю во время работы программы. Значение свойства задается путем присвоения значений уточняющим свойствам biSystemMenu, biMinimaze, biMaximaze и biHelp. Свойство biSystemMenu определяет доступность кнопки системного меню (пиктограммы в заголовке окна), biMinimaze – кнопки Свернуть, biMaximaze – кнопки Развернуть, biHelp – кнопки вывода справочной информации |
Продолжение табл.4.1
Color |
Цвет фона. Цвет можно задать, указав название цвета или привязку к текущей цветовой схеме операционной системы. Во втором случае цвет определяется текущей цветовой схемой, выбранным компонентом привязки и меняется при изменении цветовой схемы операционной системы |
Font |
Шрифт. Шрифт, используемый "по умолчанию" компонентами, находящимися на поверхности формы. Изменение свойства Font формы приводит к автоматическому изменению свойства Font компонента, располагающегося на поверхности формы. То есть компоненты наследуют свойство Font от формы (имеется возможность запретить наследование) |
Чтобы в заголовке формы вместо Form1 появилось название программы – текст (например Покупка), следует изменить значение свойства caption. Для этого надо в окне Object Inspector щелкнуть левой кнопкой мыши на имени свойства (в результате будет выделено текущее значение свойства и появится курсор), ввести текст и нажать клавишу <Enter>. Аналогично можно установить значения свойств Height и Width, которые определяют высоту и ширину формы. Размер формы, а также размер других компонентов задают в пикселах (точках). Форма – это обычное окно. Поэтому размер формы можно изменить точно так же, как любого окна Windows, т. е. путем перемещения границы. По окончании перемещения границы значения свойств Height и Width будут соответствовать установленному размеру формы.
Положение окна на экране в момент его первого появления соответствует положению формы, заданному во время разработки. Положение формы можно задать, установив значение свойств Tор (отступ от верхней границы экрана) и Left (отступ от левой границы экрана) или задав значение свойства Position.
При выборе некоторых свойств, например Borderstyle, справа от текущего значения свойства появляется значок раскрывающегося списка. Из чего следует, что значение таких свойств можно задать путем выбора из списка.
Некоторые свойства являются сложными, т. е. их значение определяется совокупностью значений других (уточняющих) свойств. Например, свойство Bordericons определяет кнопки управления окном, которые будут доступны во время работы программы. Значения этого свойства определяются совокупностью значений свойств biSystemMenu, biMinimize, biMaximize и biHelp, каждое из которых, в свою очередь, определяет наличие соответствующей командной кнопки в заголовке окна во время работы программы. Перед именами сложных свойств стоит значок "+", в результате щелчка которого раскрывается список уточняющих свойств. Значение уточняющего свойства можно задать обычным образом (ввести значение в поле редактирования или выбрать в списке).
В результате выбора некоторых свойств, например Font, в поле значения свойства отображается кнопка, на которой изображены три точки. В результате щелчка на этой кнопке появляется дополнительное диалоговое окне для задания уточняющих свойств. Например, значение свойства Font можно задать путем ввода значений уточняющих свойств (Name, Size, Style и др.), а можно воспользоваться стандартным диалоговым окном Шрифт, которое появится в результате щелчка на кнопке с тремя точками.
В качестве примера можно показать значения свойств компонентов, используемых в программе Покупка. Окно приложения показано на рис. 4.1.
Рис. 4.1. Окно приложения Покупка
В табл. 4.2 приведены значения свойств стартовой формы программы Покупка. Значения других свойств формы оставлены без изменения и в таблице не представлены. В приведенной таблице в именах некоторых свойств есть точка. Это значит, что надо задать значение уточняющего свойства. После того как будут установлены значения свойств формы, на форму надо добавить компоненты.
Таблица 4.2
Значения свойств стартовой формы
Свойство |
Значение |
Комментарий |
Caption |
Стоимость покупки |
|
Height |
190 |
|
Width |
376 |
|
BorderStyle |
bsSizeable |
обычная |
Borderlcons. [biSystemMenu,biMinimize,biMaximize] |
True |
В заголовке окна все кнопки, кроме Help |
Font.Name |
MS Sans Serif |
|
Font.Size |
8 |
|
Программа Покупка должна получить от пользователя исходные данные: цену и количество. Ввод данных с клавиатуры обеспечивает компонент Edit. Поэтому в форму разрабатываемого приложения нужно добавить три компонента Edit. Для того чтобы в форму добавить компонент Edit, надо:
1. В палитре компонентов (окно Tool Palette) раскрыть вкладку Standard.
2. Сделать щелчок на значке компонента. Здесь следует обратить внимание, что в палитре компонентов рядом со значком компонента указывается тип, а не название компонента.
3. Установить указатель мыши в ту точку формы, в которой должен быть левый верхний угол компонента.
4. Щелкнуть кнопкой мыши.
В результате на форме появляется компонент Edit – поле редактирования. Другие компоненты добавляются в форму аналогичным образом. Каждому добавленному компоненту среда разработки присваивает имя, которое состоит из названия компонента и его порядкового номера. Например, первый компонент Edit получает имя Edit1, второй – Edit2 и т.д. Программист, путем изменения значения свойства Name, может изменить имя компонента. Однако в простых программах имена компонентов, как правило, не изменяют.
Свойства выбранного компонента отображаются в окне Object Inspector. Чтобы увидеть и, если надо, изменить свойства другого компонента, нужно этот компонент выбрать – щелкнуть левой кнопкой мыши на изображении компонента или выбрать имя компонента в раскрывающемся списке, который находится в верхней части окна Object Inspector. Компонент, свойства которого надо изменить, можно выбрать и в окне Structure.
Основные свойства компонента Edit приведены в табл. 4.3.
Таблица 4.3
Свойства компонента Edit
Свойство |
Описание |
Name |
Имя компонента. Используется в программе для доступа к компоненту и его свойствам, в том числе к тексту, который находится в поле редактирования |
Text |
Текст, который находится в поле редактирования |
Left |
Расстояние от левой границы компонента до левой границы формы |
Top |
Расстояние от верхней границы компонента до верхней границы формы |
Height |
Высота компонента |
Width |
Ширина компонента |
Font |
Шрифт, используемый для отображения текста в поле компонента |
ParentFont |
Признак наследования шрифта от формы. Если значения свойства равно True, то для отображения текста в поле компонента используется шрифт формы |
MaxLength |
Количество символов, которое можно ввести в поле редактирования. Если значение свойства равно нулю, ограничения на количество символов нет |
Отображение текста на поверхности формы обеспечивает компонент Label. Основные свойства компонента Label перечислены в табл. 4.4.
Таблица 4.4
Свойства компонента Label
Свойство |
Описание |
Name |
Имя компонента. Используется в программе для доступа к компоненту |
Caption |
Отображаемый текст |
Height |
Высота поля вывода |
Width |
Ширина поля вывода |
AutoSize |
Признак того, что размер поля определяется его содержимым |
WordWrap |
Признак того, что слова, которые не помещаются в текущей строке, автоматически переносятся на следующую строку (значение свойства AutoSize должно быть False) |
Смысл свойств Left, Top и Font аналогичны компоненту Edit.
Командная кнопка, компонент Button, добавляется в форму точно так же, как и другие компоненты. Основные свойства компонента приведены в табл. 4.5.
Таблица 4.5
Свойства компонента Button
Свойство |
Описание |
Name |
Имя компонента. Используется в программе для доступа к компоненту |
Caption |
Текст на кнопке |
Enabled |
Признак доступности кнопки. Кнопка доступна, если значение свойства равно True, и не доступна, если значение свойства равно False |
Left |
Расстояние от левой границы кнопки до левой границы формы |
Top |
Расстояние от верхней границы кнопки до верхней границы формы |
Height |
Высота кнопки |
Width |
Ширина кнопки |