- •Введение
- •1 Компоненты Delphi
- •1.1 Компонент класса TEdit
- •1.2 Компонент класса TLabel
- •1.3 Компонент класса TButton
- •1.4 Компонент класса TMemo
- •1.5 Компонент класса TStringGrid
- •1.6 Компонент класса TSpinEdit
- •2 Примеры выполнения практических заданий
- •2.1 Простейшие алгоритмы
- •2.2 Выражения
- •2.3 Циклы
- •2.4 Одномерные массивы
- •2.5 Матрицы
- •2.6 Строки
- •2.7 Записи и файлы
- •2.8 Функции и процедуры
1 Компоненты Delphi
Как и любая программная единица, компонент имеет идентификатор (имя), а также характеризуется базовым классом. Класс компонента определяет набор его свойств, методов и событий. Идентификатор присваивается средой Delphi автоматически с использованием имени класса (без начальной буквы T) и порядкового номера компонента, например, Button1, Label12. Как правило, такие имена идентификаторов изменяются на более понятные1.
Обращение к свойствам и методам компонента, в соответствии с принципом ООП, осуществляется в виде:
<идентификатор компонента>.<идентификатор свойства (метода)>,
например, Button1.Caption, где Button1 – идентификатор компонента; Caption – идентификатор свойства. При такой записи обращения к свойству компонента считается, что обращение производится из метода той формы, на которой он расположен. Если же требуется обращение к компоненту, расположенному на другой форме, то идентификатор формы также должен указы-
ваться, например, Form1.Button1.Caption.
Описание поведения компонента при возникновении того или иного события, заключается в реализации соответствующего метода. Например, поведение компонента Button1 (кнопка), расположенного на форме Form1 класса TForm1, при нажатии (событие OnClick) описывается в методе:
procedure TForm1.Button1Click(Sender : TObject); begin
// Описание реализации реакции на нажатие end;
Таким образом, собственно текст программы состоит фактически из набора описаний поведения компонентов при возникновении тех или иных событий.
Использование иерархического принципа наследования компонентов позволяет компонентам иметь базовый набор свойств, методов и событий, что значительно облегчает изучение и создание новых компонентов. Большинство компонентов являются прямыми или косвенными наследниками классов
TObject, TComponent, TControl, TWinControl. В таблицах 1 и 2 приводится
описание наиболее часто используемых свойств, методов и событий этих классов, имеющихся у большинства компонентов.
1 В данных методических указаниях будут использоваться идентификаторы, состоящие из двух частей, разделенных знаком подчеркивания. Первая часть определяет назначение компонента, а вторая дает информацию о его классе, например, Count_E, является компонентом класса TEdit и служит для ввода некоторого количества.
4
Таблица 1 – Наиболее часто используемые свойства компонентов
Наименование |
Тип |
Назначение |
|
Name |
TComponentName |
Определяет идентификатор компонента. |
|
|
(string) |
Подчиняется всем правилам, применяе- |
|
|
|
||
|
|
мым при выборе идентификаторов пере- |
|
|
|
менных, констант, типов и т.д. |
|
Align |
TAlign |
Определяет способ выравнивания компо- |
|
|
(перечисляемый) |
нента в пределах его визуального вла- |
|
|
|
дельца (нет, влево, вправо, снизу, сверху, |
|
|
|
по всему компоненту) |
|
AutoSize |
boolean |
Определяет, будет ли компонент автома- |
|
|
|
тически менять свой размер в зависимости |
|
|
|
от содержания. |
|
Font |
TFont |
Определяет вид и параметры шрифта, ис- |
|
|
|
пользуемые для вывода надписей на ком- |
|
|
|
поненте. |
|
Caption |
TCaption |
Как правило, свойство Caption определя- |
|
Text |
(string) |
ет поясняющий текст, выводимый на ком- |
|
|
|
||
|
|
поненте, а свойство Text – данные, вво- |
|
|
|
димые в компонент. В большинстве слу- |
|
|
|
чаев у компонента доступно только одно |
|
|
|
из этих свойств. |
|
ClientHeight |
integer |
Свойства, описывающие максимальные |
|
ClientWidth |
integer |
размеры, которые может иметь тот ком- |
|
ClientOrigin |
TPoint |
||
понент, для которого данный является ви- |
|||
ClientRect |
TRect |
||
зуальным владельцем (высота, ширина, |
|||
|
|
||
|
|
позиция верхнего левого угла, координа- |
|
|
|
ты области в точках экрана). |
|
Color |
TColor |
Определяет цвет компонента. |
|
|
(тип-диапазон) |
|
|
|
|
|
|
Enabled |
boolean |
Определяет, может ли компонент реаги- |
|
|
|
ровать на нажатие мыши, клавиатуры, |
|
|
|
другие события. Даже если это свойство |
|
|
|
установлено в False, компонент остается |
|
|
|
доступным для программирования. |
|
Height |
integer |
Высота, левая граница, верхняя граница, |
|
Left |
|
ширина компонента соответственно (в |
|
Top |
|
||
|
точках экрана) |
||
Width |
|
||
|
|
||
|
|
|
|
Visible |
boolean |
Определяет, видим ли в данный момент |
|
|
|
компонент, т.е. требуется ли его отобра- |
|
|
|
жение. Невидимые компоненты остаются |
|
|
|
доступными для программирования. |
5
Таблица 2 – Наиболее часто используемые методы и события компонентов
Наименование |
Назначение |
|
|
Методы |
|
Create |
Конструктор. Вызывается при создании компонента. Для раз- |
|
|
личных компонентов имеет разный набор параметров. |
|
Destroy |
Деструктор. Вызывается для разрушения компонента. Как |
|
|
правило, явно не используется. Для разрушения целесообраз- |
|
|
нее использовать метод Free, проверяющий равенство объек- |
|
|
та nil и не позволяющий выполнить повторное разрушение |
|
|
объекта. |
|
Free |
Вызывается для разрушения компонента. |
|
Hide |
Вызывается для того, чтобы сделать компонент невидимым. |
|
Show |
Вызывается для того, чтобы отобразить невидимый компо- |
|
|
нент. |
|
SetFocus |
Вызывается для передачи компоненту фокуса ввода (курсора). |
|
|
События |
|
OnClick |
Возникает при «нажатии» на компонент. В зависимости от |
|
|
компонента, событие может возникнуть по разным причинам. |
|
|
Подробнее событие будет рассмотрено отдельно у каждого |
|
|
компонента. |
|
OnResize |
Возникает при изменении размера компонента и перед пер- |
|
|
вым его отображением. |
|
OnMouseDown |
Возникает, соответственно, при нажатии, отпускании кнопки |
|
OnMouseUp |
мыши над компонентом, или перемещении мыши над компо- |
|
OnMouseMove |
||
нентом. |
||
|
||
OnKeyDown |
Возникает, соответственно, при нажатии, отпускании или |
|
OnKeyUp |
комбинации нажатия и отпускания клавиши клавиатуры у вы- |
|
OnKeyPress |
||
бранного (сфокусированного) компонента. |
||
|
Операции ввода/вывода в компоненты, во многих случаях, осуществляются с использованием свойств, имеющих текстовое представление, поэтому при работе с данными не строкового типа требуется выполнение преобразований данных. Для преобразования данных могут быть использованы стандартные процедуры Pascal Val и Str, а также функции Delphi, некоторые из которых приведены в таблице 3.
Таблица 3 – Некоторые функции преобразования
Наименование |
Тип результата |
Назначение |
StrToInt(s : string) |
integer |
Перевод строки в целое число |
StrToFloat(s : string) |
extended |
Перевод строки в вещественное |
|
|
число |
6
Продолжение таблицы 3
Наименование |
Тип результата |
Назначение |
IntToStr(i : integer) |
string |
Перевод целого числа в строку |
FloatToStr(f : extended) |
string |
Перевод вещественного числа в |
|
|
строку |
1.1 Компонент класса TEdit |
|
Использование компонента класса TEdit (строка ввода) является простейшим способом организации ввода/вывода данных. Компонент расположен в разделе компонентов Standard ()1.
Наиболее часто используемыми свойствами компонента является2:
Text. Имеет строковый тип и служит для хранения введенных данных или размещения результата работы программы;
ReadOnly. Имеет логический тип. При установке в значение True блокирует ручное изменение свойства Text и применяется, например, для элементов программы, отображающих результаты работы.
1.2 Компонент класса TLabel
Компонент класса TLabel (надпись) расположен в разделе Standard () и предназначен для подписи компонентов, которые не имеют свойства Caption. К основным свойствам компонента можно отнести:
Caption. Определяет текст, выводимый в компоненте. При формировании данного свойства можно задать горячую клавишу путем пометки нужного символа знаком «&» (например, «&Ввод» задает горячую клавишу Alt-В). Применение горячих клавиш позволяет организовать быстрый переход к компоненту с помощью клавиатуры;
FocusControl. Указывает на компонент, с которым связывается данная надпись. При этом если в свойстве Caption задана горячая клавиша, то она становится клавишей активизации связанного компонента.
Компонент класса TLabel может также использоваться для отображения данных, не требующих ручного редактирования.
1 Расположение и внешний вид иконок компонентов приведены для среды
Delphi 7.
2 Здесь и далее не указываются свойства, методы и события, единые для большинства компонентов и приведенные в таблицах 1 и 2.
7