Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методички по информатике / Программирование в среде Delphi (Часть 1).pdf
Скачиваний:
50
Добавлен:
27.05.2015
Размер:
1.11 Mб
Скачать

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