Компоненты

Программа вычисления скорости бега должна получить от пользователя исходные данные — длину дистанции и время, за которое спортсмен пробежал дистанцию. В подобных программах данные с клавиатуры, как правило, вводят в поля редактирования. Поэтому в форму надо добавить компонент Edit — поле редактирования.

Наиболее часто используемые компоненты находятся на вкладке Standard (рис. В16).

Для того чтобы добавить в форму компонент, необходимо в палитре компонентов выбрать этот компонент, щелкнув левой кнопкой мыши на его пиктограмме, далее установить курсор в ту точку формы, в которой должен быть левый верхний угол компонента, и еще раз щелкнуть левой кнопкой мыши. В результате в форме появляется компонент стандартного размера.

Рис. В16. Вкладка Standard содержит наиболее часто используемые компоненты

Размер компонента можно задать в процессе его добавления к форме. Для этого надо после выбора компонента из палитры поместить курсор мыши в ту точку формы, где должен находиться левый верхний угол компонента, нажать левую кнопку мыши и, удерживая ее нажатой, переместить курсор в точку, где должен находиться правый нижний угол компонента, затем отпустить кнопку мыши. В форме появится компонент нужного размера.

Каждому компоненту Delphi присваивает имя, которое состоит из названия компонента и его порядкового номера. Например, если к форме добавить два компонента Edit, то их имена будут Edit1 и Edit2. Программист путем изменения значения свойства Name может изменить имя компонента. В простых программах имена компонентов, как правило, не изменяют.

На рис. В17 приведен вид формы после добавления двух компонентов Edit полей редактирования, предназначенных для ввода исходных данных. Один из компонентов выделен. Свойства выделенного компонента отображаются в окне Object Inspector. Чтобы увидеть свойства другого компонента, надо щелкнуть левой кнопкой мыши на изображении нужного компонента. Можно также выбрать имя компонента в окне Object TreeView или из находящегося в верхней части окна Object Inspector раскрывающегося списка объектов.

Рис. В17. Форма после добавления компонентов Edit

В табл. В3 перечислены основные свойства компонента Edit — поля ввода-редактирования.

Таблица ВЗ. Свойства компонента Edit (поле ввода-редактирования)

| Свойство | Описание |
| Name | Имя компонента. Используется в программе для доступа к компоненту и его свойствам, в частности — для доступа к тексту, введенному в поле редактирования |
| Text | Текст, находящийся в поле ввода и редактирования |
| Left | Расстояние от левой границы компонента до левой границы формы |
| Top | Расстояние от верхней границы компонента до верхней границы формы |
| Height | Высота поля |
| Width | Ширина поля |
| Font | Шрифт, используемый для отображения вводимого текста |
| ParentFont | Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно True, то при изменении свойства Font формы автоматически меняется значение свойства Font компонента |

Delphi позволяет изменить размер и положение компонента при помощи мыши.

Для того чтобы изменить положение компонента, необходимо установить курсор мыши на его изображение, нажать левую кнопку мыши и, удерживая ее нажатой, переместить контур компонента в нужную точку формы, затем отпустить кнопку мыши. Во время перемещения компонента (рис. В18) отображаются текущие значения координат левого верхнего угла компонента (значения свойств Left и тор).

Для того чтобы изменить размер компонента, необходимо его выделить, установить указатель мыши на один из маркеров, помечающих границу компонента, нажать левую кнопку мыши и, удерживая ее нажатой, изменить положение границы компонента. Затем отпустить кнопку мыши. Во время изменения размера компонента отображаются текущие значения свойств Height И Width (рис. В19).

Свойства компонента так же, как и свойства формы, можно изменить при помощи Object Inspector. Для того чтобы свойства требуемого компонента были выведены в окне Object Inspector, нужно выделить этот компонент (щелкнуть мышью на его изображении). Можно также выбрать компонент из находящегося в верхней части окна Object Inspector раскрывающегося списка объектов (рис. В20) или из списка в окне Object TreeView (рис. В21).

Рис. В18. Отображение текущих значений свойств Left и Тор при изменении положения компонента

Рис. В19. Отображение текущих значений свойств Height и Width при изменении размера компонента

Рис. В20. Выбор компонента

Рис. В21. Выбор компонента из списка в окне Object Inspector в окне Object TreeView

В табл. В4 приведены значения свойств полей редактирования Editi и Edit2. Компонент Editi предназначен для ввода длины дистанции, Edit2 — для ввода времени.

Обратите внимание на то, что значением свойства Text обоих компонентов является пустая строка.

Таблица В4. Значения свойств компонентов Edit

| Свойство | Компонент |
| Edit1 | Edit2 |
| Text |  |  |
| Тор | 56 | 88 |
| Left | 128 | 128 |
| Height | 21 | 21 |
| Width | 121 | 121 |

Помимо полей редактирования в окне программы должна находиться краткая информация о программе и назначении полей ввода. Для вывода текста в форму используют поля вывода текста. Поле вывода текста (поле статического текста) — это компонент Label. Значок компонента Label находится на вкладке Standard (рис. В22). Добавляется компонент Label в форму точно так же, как и поле редактирования.

Рис. В22. Компонент Label — поле вывода текста

В форму разрабатываемого приложения надо добавить четыре компонента Label. Первое поле предназначено для вывода информационного сообщения, второе и третье — для вывода информации о назначении полей ввода, четвертое поле — для вывода результата расчета (скорости).

Свойства компонента Label перечислены в табл. В5.

Таблица В5. Свойства компонента Label (поле вывода текста)

| Свойство | Описание |
| Name | Имя компонента. Используется в программе для доступа к компоненту и его свойствам |
| Caption | Отображаемый текст |
| Font | Шрифт, используемый для отображения текста |
| ParentFont | Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно True, текст выводится шрифтом, установленным для формы |
| AutoSize | Признак того, что размер поля определяется его содержимым |
| Left | Расстояние от левой границы поля вывода до левой границы формы |
| Top | Расстояние от верхней границы поля вывода до верхней границы формы |
| Height | Высота поля вывода |
| Width | Ширина поля вывода |
| Wordwrap | Признак того, что слова, которые не помещаются в текущей строке, автоматически переносятся на следующую строку |

Следует обратить внимание на свойства Autosize и Wordwrap. Эти свойства нужно использовать, если поле вывода должно содержать несколько строк текста. После добавления к форме компонента Label значение свойства Autosize равно True, т. е. размер поля определяется автоматически в процессе изменения значения свойства caption. Если вы хотите, чтобы находящийся в поле вывода текст занимал несколько строк, то надо сразу после добавления к форме компонента Label присвоить свойству Autosize значение False, свойству wordwrap — значение True. Затем изменением значений свойств width и Height нужно задать требуемый размер поля. Только после этого можно ввести в свойство caption текст, который должен быть выведен в поле.

После добавления полей вывода текста (четырех компонентов Label) и установки значений их свойств в соответствии с табл. В6 форма программы принимает вид, приведенный на рис. В23.

Обратите внимание, что значение свойства caption вводится как одна строка. Расположение текста внутри поля вывода определяется размером поля, значением свойств Autosize и wordwrap, а также зависит от характеристик используемого для вывода текста шрифта.

Рис. В23. Вид формы после добавления полей вывода текста

Таблица В6. Значения свойств компонентов Label1, Label2, Label3 И Label4

| Компонент | Свойство | Значение |
| Labell | AutoSize | False |
| Wordwrap | True |
| Caption | Программа вычислит скорость, с которой спортсмен пробежал дистанцию |
| Top | 8 |
| Left | 8 |
| Height | 33 |
| Width | 209 |
| Label2 | Top | 56 |
| Left | 8 |
| Caption | Дистанция (метров) |
| Label3 | Top | 88 |
| Left | 8 |
| Caption | Время (минуты, секунды) |
| Label4 | AutoSize | False |
| Wordwrap | True |
| Top | 120 |

| Компонент | Свойство | Значение |
| Label 4 | Left | 8 |
| Height | 41 |
| Width | 273 |

Последнее, что надо сделать на этапе создания формы — добавить в форму две командные кнопки: Вычислить и Завершить. Назначение этих кнопок очевидно.

Командная кнопка, компонент Button, добавляется в форму точно так же, как и другие компоненты. Значок компонента Button находится на вкладке Standard (рис. В24). Свойства компонента приведены в табл. В7.

Рис. В24. Командная кнопка — компонент Button

Таблица В7. Свойства компонента Button (командная кнопка)

| Свойство | Описание |
| Name | Имя компонента. Используется в программе для доступа к компоненту и его свойствам |
| Caption | Текст на кнопке |
| Enabled | Признак доступности кнопки. Кнопка доступна, если значение свойства равно True, и недоступна, если значение свойства равно False |
| Left | Расстояние от левой границы кнопки до левой границы формы |
| Top | Расстояние от верхней границы кнопки до верхней границы формы |
| Height | Высота кнопки |
| Width | Ширина кнопки |

После добавления к форме двух командных кнопок нужно установить значения их свойств в соответствии с табл. В8.

Таблица В8. Значения свойств компонентов Button1 и Button2

| Свойство | Компонент |
| Button1 | Button2 |
| Caption | Вычислить | Завершить |
| Тор | 176 | 176 |
| Left | 16 | 112 |
| Height | 25 | 25 |
| Width | 75 | 75 |

Окончательный вид формы разрабатываемого приложения приведен на рис. В25.

Рис. В25. Форма программы Скорость бега

Завершив работу по созданию формы приложения, можно приступить к написанию текста программы. Но перед этим обсудим очень важные при программировании в Windows понятия:

- событие;
- процедура обработки события.