Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Delphi_1курс лекции / Тема 02 Введение в ООП.doc
Скачиваний:
59
Добавлен:
23.03.2015
Размер:
201.22 Кб
Скачать

Классы и объекты Delphi

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

Во время проектирования формы приложения Delphi автоматически добавляет в текст программы необходимые объекты. Если сразу после запуска Delphi просмотреть содержимое окна редактора кода, то там можно обнаружить следующие строки:

unit Unit1;

Interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs;

type

TForm1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

Implementation

{$R *.dfm}

end.

Это описание класса исходной, пустой формы приложения и объявление объекта — формы приложения.

Когда программист, добавляя необходимые компоненты, создает форму, Delphi формирует описание класса формы. Когда программист создает функцию обработки события формы или ее компонента, Delphi добавляет объявление метода в описание класса формы приложения.

Помимо классов визуальных компонентов в библиотеку классов входят и классы так называемых невизуальных (невидимых) компонентов, которые обеспечивают создание соответствующих объектов и доступ к их методам и свойствам. Типичным примером невизуального компонента является таймер (тип TTimer) и компоненты доступа и управления базами данных. Существует еще множество других классов.

Каждый компонент принадлежит к строго определенному классу, а все конкретные экземпляры компонентов, вставляемые в форму, получают имя класса с добавленным числовым индексом. По используемому в Delphi соглашению все имена классов начинаются с буквы Т. Таким образом, имя TForm1 означает имя класса, созданного по образцу стандартного класса TForm.

Если на форму поместить кнопку и метку, а также сформировать для кнопки обработчик события OnClick, то увидите следующие строки:

type

TForm1 = class(TForm)

Button1: TButton;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

begin

Label1.Caption:=’Привет’;

end;

Строка

TForm1 = class(TForm)

определяет новый класс TForm1, который порожден от (создан по образцу) стандартного класса TForm.

Строка

Form1: TForm1;

создает экземпляр этого класса с именем Form1. Стандартный класс TForm описывает пустое Windows-окно, в то время как класс TForm1 описывает окно с уже вставленными в него компонентами метка и кнопка. Описание этих компонентов содержат строки

Button1: TButton;

Label1: TLabel;

Они указывают, что компонент Button1 представляет собой экземпляр стандартного класса TButton, а компонент Label – экземпляр класса TLabel.

Замечу, что среда Delphi помещает описания компонентов, вставленных в форму, в специальную секцию без названия, которая располагается сразу за заголовком класса и продолжается до первой объявленной секции. Эта секция - published. Программисту не следует помещать в нее собственные элементы описания класса или удалять из нее элементы, вставленные средой.

За именем процедуры TForm1. ButtonClick в круглых скобках следует описание параметра вызова

Sender: TObject

(параметр с именем Sender принадлежит классу TObject). Параметр Sender вставлен Delphi “на всякий случай”: с его помощью подпрограмма Button1Click может при желании определить, какой именно компонент создал событие OnClick.

Реализация метода ButtonClick находится в разделе implementation

В нашем случае тело процедуры содержит задание свойства Caption объекту Label1.

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