Ситкин. Информатика. Программирование в DELPHI
.pdfОбычно первым делом изменяют установленное по умолчанию значение свойства Caption, меняя значение «Form1» на своё. Следует различать имя формы (свойство Name) и заголовок формы (свойство
Caption), изначально значения этих свойств совпадают. Рекомендуется не изменять значение свойства Name. Некоторые свойства являются сложными их значения определяются совокупностью других значе-
ний, перед именами таких свойств стоит знак «+». Ширину и высоту формы, а также её положение на экране можно устанавливать мышью как обычное окно Windows. Положение формы на экране после запус-
ка уже готового приложения будет соответствовать положению, за-
нимаемому формой на стадии разработки проекта.
Компоненты формы и их свойства
В главном окне Delphi 7 в верхней части экрана расположена палитра компонентов (рис. 1.3), состоящая из нескольких вкладок (Standard, Additional и др.), на которых расположены пиктограммы компонентов. По умолчанию открыта вкладка Standard палитры.
палитра компонентов, вкладка Standard
Рис. 1.3
Для добавления компонента на форму щёлкают его пиктограм-
му на палитре компонентов, затем повторно щёлкают в точке формы,
где должен располагаться левый верхний угол компонента. После установки компонента его положение на форме и размеры можно из-
11
менить мышью. Просмотр свойств компонента и их редактирование осуществляют в окне редактора свойств объекта Object Inspector, вкладка Properties. В верхней части окна указано имя объекта (компо-
нента или формы), чьи свойства отображаются в текущий момент
(рис. 1.2). Выбор объекта, свойства которого нужно отредактировать,
осуществляют из раскрывающегося списка редактора Object Inspector или активацией (щелчком мышью) соответствующего компонента или формы. В левой колонке перечислены свойства, а в правой указа-
ны их значения. Для изменения нужного свойства щёлкают его имя и в правом поле вводят нужное значение с клавиатуры или выбирают его из раскрывающегося списка, если такой предусмотрен для данно-
го свойства. Как и для формы, некоторые свойства являются сложны-
ми, перед их именами стоит знак «+».
Компонент Label (поле вывода)
Предназначен для вывода на форму текстовых надписей. Ос-
новные свойства компонента представлены в табл. 1.2.
|
|
Таблица 1.2 |
|
Основные свойства компонента Label |
|
|
|
|
Свойство |
Описание |
|
Name |
Имя компонента. Используется |
для доступа к |
компоненту и его свойствам |
|
|
|
|
|
Caption |
Отображаемый текст |
|
+ Font |
Характеристики шрифта текста |
|
ParentFont |
True/False Наследование характеристик шрифта |
|
текста формы |
|
|
|
|
|
WordWrap |
True/False Возможность переноса слов на сле- |
|
дующую строку |
|
|
|
|
|
AutoSize |
True/False Автоподбор размера |
компонента по |
его содержимому |
|
|
|
|
12
Для вывода текстовых сообщений можно использовать окно со-
общения (рис. 1.4), появление которого на экране обеспечивается записью в программном коде
ShowMessage('Текст сообщения');.
В строке заголовка выводится название проекта. В
Рис. 1.4 момент появления окна сообщения на экране вы-
полнение приложения приостанавливается. После щелчка на кнопке
«ОК» окно сообщения закрывается, и приложение работает далее.
Использовать вывод данных в окно сообщения можно порекомендо-
вать в тех случаях, когда нужно обратить особое внимание пользова-
теля, например, на совершённую им ошибку, т.к. окно появляется на первом плане.
Компонент Edit (однострочное редактируемое поле)
Предназначен для ввода (вывода) и редактирования строки тек-
ста. Основные свойства компонента представлены в табл. 1.3.
|
|
Таблица 1.3 |
|
|
Основные свойства компонента Edit |
||
|
|
|
|
Свойство |
|
Описание |
|
Name |
Имя компонента. |
Используется для доступа к |
|
компоненту и его свойствам |
|||
|
|||
Text |
Текст в поле редактирования |
||
+ Font |
Характеристики |
шрифта, используемого для |
|
отображения текста |
|||
|
|||
ParentFont |
True/False Наследование характеристик шрифта |
||
текста формы |
|
||
|
|
Понятие редактируемое поле означает, что его содержимое мо-
жет быть изменено во время выполнения приложения с клавиатуры.
13
Компонент LabeledEdit |
вкладка additional |
(однострочное редактируемое поле с меткой) |
Предназначен для ввода (вывода) и редактирования строки тек-
ста. По функциональному назначению представляет собой объединение компонентов Label и Edit. Обычно в поле метки поясняют, что сле-
дует ввести в редактируемое поле или что выводится в него. Пиктограмма компонента расположена на вкладке Additional палитры компонентов. Основные свойства компонента LabeledEdit представлены в табл. 1.4.
Таблица 1.4
Основные свойства компонента LabeledEdit
Свойство |
|
Описание |
|
|
Name |
Имя компонента. Используется для доступа к |
|||
компоненту и его свойствам |
|
|||
|
|
|||
+EditLabel.Caption |
Текст в поле метки |
|
||
.+ Font |
Характеристики шрифта текста в поле метки |
|||
.ParentFont |
True/False Наследование характеристик |
|||
|
шрифта текста формы |
|
||
.WordWrap |
True/False Возможность переноса слов в поле |
|||
|
метки на следующую строку |
|
||
|
Определяет позицию метки относительно ре- |
|||
LabelPosition |
дактируемого |
поля: Above |
(сверху); Below |
|
|
(снизу); Left (слева); Right (справа) |
|||
LabelSpacing |
Расстояние от метки до редактируемого поля в |
|||
пикселях |
|
|
||
|
|
|
||
Text |
Текст в редактируемом поле (поле ввода) |
|||
+ Font |
Характеристики шрифта, используемого для |
|||
отображения текста в редактируемом поле |
||||
|
||||
ParentFont |
True/False |
Наследование |
характеристик |
|
шрифта текста формы редактируемого поля |
||||
|
||||
Компоненты Edit и LabeledEdit можно использовать и для вывода |
данных, однако интуитивно они привычнее для их ввода.
14
Компонент Memo (многострочное редактируемое поле)
Предназначен для ввода, вывода и редактирования многостроч-
ного текста. Основные свойства компонента представлены в табл. 1.5.
|
|
Таблица 1.5 |
|
|
Основные свойства компонента Memo |
||
|
|
|
|
Свойство |
|
Описание |
|
Name |
Имя компонента. |
Используется для доступа к |
|
компоненту и его свойствам |
|||
|
|||
Text |
Текст в поле как единое целое |
||
|
Текст в поле как отдельные строки текста. Доступ |
||
Lines |
к строке осуществляется по номеру в квадратных |
||
|
скобках. Нумерация строк от нуля. |
||
Lines.Count |
Количество строк текста в поле |
||
+ Font |
Характеристики |
шрифта, используемого для |
|
отображения текста |
|||
|
|||
ParentFont |
True/False Наследование характеристик шрифта |
||
текста формы |
|
||
|
|
Компонент ListBox (список выбора)
Предназначен для формирования многострочного текстового
списка. Основные свойства компонента представлены в табл. 1.6.
|
|
|
Таблица 1.6 |
|
Основные свойства компонента ListBox |
||
|
|
|
|
Свойство |
|
|
Описание |
Name |
|
Имя компонента. |
Используется для доступа к |
|
компоненту и его свойствам |
||
|
|
||
Items |
|
Элементы списка |
|
ItemIndex |
|
Номер выбранного элемента в списке. Нумерация |
|
|
от нуля |
|
|
|
|
|
|
+ Font |
|
Характеристики |
шрифта, используемого для |
|
отображения элементов списка |
||
|
|
||
ParentFont |
|
True/False Наследование характеристик шрифта |
|
|
текста формы |
|
|
|
|
|
15
Компонент ComboBox (раскрывающийся список выбора)
Предназначен для формирования многострочного раскрываю-
щегося текстового списка. Состоит из двух частей: однострочного ре-
дактируемого поля (верхняя строка компонента) и самого раскрыва-
ющегося списка. Позволяет ввести данные либо непосредственно в редактируемое поле, либо путём выбора из раскрытого списка. Ос-
новные свойства компонента представлены в табл. 1.7.
|
|
Таблица 1.7 |
|
Основные свойства компонента ComboBox |
|||
|
|
|
|
Свойство |
|
Описание |
|
Name |
Имя компонента. |
Используется для доступа к |
|
компоненту и его свойствам |
|||
|
|||
Text |
Текст в редактируемом поле |
||
Items |
Элементы списка |
|
|
ItemIndex |
Номер выбранного элемента в списке. Нумерация |
||
от нуля |
|
||
|
|
||
DropDownCount |
Количество отображаемых элементов в раскры- |
||
том списке |
|
||
+ Font |
Характеристики |
шрифта, используемого для |
|
отображения элементов списка |
|||
|
|||
ParentFont |
True/False Наследование характеристик шрифта |
||
текста формы |
|
||
|
|
Строки текста у компонента Memo и списки выбора как у компонента ListBox, так и у компонента ComboBox могут быть сформированы как на стадии разработки формы, так и во время работы приложения.
Для формирования списков первым способом следует в окне редакто-
ра свойств объекта Object Inspector для компонента Memo выбрать свойство Lines, а для ListBox или ComboBox свойство Items и щёлкнуть на кнопке запуска редактора списка строк (рис. 1.5). Каждый элемент списка вводят на отдельной строке и завершают нажатием клавиши
16
Enter , кроме последнего. Завершают формирование списка щелч-
ком по кнопке «ОК».
0
1 нумерация
N-1
кнопка запуска редактора строк
String List Editor
или Lines у Memo
Рис. 1.5
Компонент Button (командная кнопка)
Предназначен для управления выполнением приложения. Ос-
новные свойства компонента представлены в табл. 1.8.
Таблица 1.8
|
Основные свойства компонента Button |
|
|
|
|
Свойство |
|
Описание |
Name |
|
Имя компонента. Используется для доступа к |
|
компоненту и его свойствам |
|
|
|
|
Caption |
|
Текст на кнопке |
Enabled |
|
True/False Доступность кнопки |
WordWrap |
|
True/False Возможность переноса слов на сле- |
|
дующую строку |
|
|
|
Большинство значений свойств объектов может быть переопре-
делено программным кодом по ходу выполнения приложения. Доступ
к свойству объекта программным кодом осуществляется в формате
17
Имя_объекта.Имя_свойства Значение ;
например, Label1.Caption 'Мой проект';.
Событие и процедура обработки события
Одной из основ событийного программирования является собы-
тийное управление. Это означает, что порядок выполнения команд,
обычно разбитых по группам, определяется порядком возникновения событий. Событие это то, что происходит во время выполнения приложения. Например, загрузка или закрытие приложения, щелчок мышью по форме или компоненту формы, перемещение указателя мыши по объекту, изменение содержимого поля всё это примеры событий. События наступают в результате действий пользователя,
операционной системы или по логике разработанного приложения.
Некоторые события описаны в табл. 1.9.
Таблица 1.9
|
Некоторые события в Windows |
|
|
|
|
Событие |
Возникает |
|
OnCreate |
При загрузке формы (приложения) |
|
OnActivate |
||
|
||
OnClose |
При закрытии формы (приложения) |
|
OnDeactivate |
||
|
||
OnClick |
При щелчке мышью |
|
OnDblClick |
При двойном щелчке мышью |
|
OnMouseDown |
При нажатии кнопки мыши |
|
OnMouseUp |
При отпускании кнопки мыши |
|
OnMouseMove |
При перемещении мыши |
|
OnEnter |
При получении компонентом фокуса |
|
OnExit |
При потере компонентом фокуса |
|
OnChange |
При изменении содержимого компонента |
|
(например, содержимого редактируемого поля) |
||
|
||
OnKeyPress |
При нажатии клавиши клавиатуры |
18
При разработке проекта задача программиста определить ре-
акцию на то или иное событие, т.е. что должно быть выполнено, если наступило событие. Для этого необходимо создать процедуру обра-
ботки события. Сначала определяют уже созданный объект, для ко-
торого создаётся процедура обработки события (например, командная кнопка Button1), активируя его щелчком мыши по нему или по его имени в дереве объектов Object Tree View или выбором из раскры-
вающегося списка окна Object Inspector. Затем в окне редактора Object Inspector выбирают вкладку Events (рис. 1.6). Слева перечислены
двойной щелчок
шаблон процедуры
Рис. 1.6
имена событий, которые доступны для выбранного объекта, справа имена назначенных процедур (сначала никаких имён процедур нет).
Исходя из логики проекта, определяют событие для выбранного объ-
екта и выполняют двойной щелчок мышью в поле имени процедуры обработки выбранного события (правая колонка). В результате откро-
ется окно редактора кода Unit1.pas с помещённым в него шаблоном процедуры. Процедуре автоматически присваивается имя из двух ча-
стей: первая идентифицирует форму, содержащую объект, вторая сам объект и событие, например, TForm1.Button1Click. По имени можно
19
определить, что процедура будет вызвана на выполнение, когда произойдёт событие OnClick по компоненту Button1, расположенному на форме Form1. Между словами begin и end прописывают операторы, которые должны быть выполнены по данной процедуре.
Пример 1.1
Разработаем простейший проект для ввода с формы фамилии студента и номера его группы и их вывода на эту же форму при наступлении некоторых событий.
После запуска Delphi в окне Object Inspector изменим значение свойства формы Caption на «Ввод-вывод данных».
Для ввода фамилии разместим на форме компонент Edit и в окне
Object Inspector обнулим значение свойства Text, чтобы на момент запуска приложения поле для ввода фамилии было пустым.
Рядом с компонентом Edit разместим на форме компонент Label, в окне Object Inspector изменим значение свойства Caption на «Фамилия» это поможет будущему пользователю нашего приложения понять, что следует ввести в компонент Edit.
Для ввода номера группы поместим на форму компонент LabeledEdit, в поле метки (свойство +EditLabel.Caption) запишем «Группа».
Для вывода введённого значения фамилии разместим на форме компонент Label, а для номера группы компонент Memo. Обнулим соответственно значения свойств Caption и Lines этих компонентов.
Вынесем на форму ещё два компонента Button, изменив значение свойства Caption на «Вывести фамилию» и Label, изменив значение свойства Caption на «Щёлкни по форме для вывода № группы».
Получившийся примерный вид формы изображён на рис. 1.7.
20