Обработчик события OnClick
При щелчке по кнопке мышью в работающей программе возникает событие OnClick (По щелчку). Пока это событие никак не обрабатывается программой, и поэтому «нажатие» кнопки не приведет ни к каким последствиям. Чтобы заставить программу реагировать на нажатие кнопки, необходимо написать на языке Object Pascal фрагмент программы, который называется обработчиком события.
Этот фрагмент должен представлять собой последовательность текстовых строк, в которых программист указывает, что именно должна делать программа в ответ на нажатие кнопки. Фрагмент оформляется в виде специальной подпрограммы языка Object Pascal - процедуры.
Чтобы заставить Delphi самостоятельно сделать заготовку для процедуры обработчика события OnClick, дважды подряд без заметной паузы щелкните мышью по вновь вставленному компоненту. В ответ Delphi активизирует окно кода, и вы увидите в нем такой текстовый фрагмент:
PROCEDURE TForm1.Button1Click(Sender: TObject);
BEGIN
END;
Слово PROCEDURE извещает компилятор о начале подпрограммы-процедуры (в Delphi могут использоваться также подпрограммы-функции; в этом случае вместо PROCEDURE (процедура) используется слово FUNCTION (функция). За ним следует имя процедуры TForm1.ButtonlClick. Это имя - составное: оно состоит из имени класса TForm1 и собственно имени процедуры ButtonlClick.
Классами в Delphi называются функционально законченные фрагменты программ, служащие образцами для создания подобных себе экземпляров.
Однажды создав класс, программист может включать его экземпляры (копии) в разные программы или в разные места одной и той же программы. Такой подход способствует максимально высокой продуктивности программирования за счет использования ранее написанных фрагментов программ. В состав Delphi входит несколько сотен классов, созданных программистами корпорации Inprise (так называемых стандартных классов). Совокупность стандартных классов определяет мощные возможности этой системы программирования.
Каждый компонент принадлежит к строго определенному классу, а все конкретные экземпляры компонентов, вставляемые в форму, получают имя класса с добавленным числовым индексом. По используемому в Delphi соглашению все имена классов начинаются с буквы Т. Таким образом, имя TFormI означает имя класса, созданного по образцу стандартного класса TForm. Если вы посмотрите начало текста в окне кода, то увидите следующие строки:
TYPE
TForm1 = CLASS(TForm)
Button1: TButton;
Label1: TLabel;
PROCEDURE ButtonlClick(Sender: TObject);
PRIVATE
{ Private declarations }
PUBLIC
{ Public declarations }
END;
VAR
Form1: TForm1;
Строка
TForm1 = CLASS(TForm)
определяет новый класс TForm1, которыйпорожден от (создан по образцу) стандартного класса TForm. Строка
Form1: TForm1;
создаетэкземпляр этого класса с именем Form1. Стандартный класс TForm описывает пустое Windows-окно, в то время как класс TFormI описывает окно с уже вставленными в него компонентами метка и кнопка. Описание этих компонентов содержат строки
Button1: TButton;
Label1: TLabel;
Они указывают, что компонент Button1 (Кнопка1) представляет собой экземпляр стандартного класса TButton, а компонент Label1 (Метка1) -экземпляр класса TLabel.
За именем процедуры TForm1 ButtonlClick в круглых скобках следует описание параметра вызова
Sender: TObject
(параметр с именем Sender принадлежит классу TObject). Как мы увидим дальше, процедуры могут иметь не один, а несколько параметров вызова или не иметь их вовсе. Параметры вызова (если они есть) служат настройке реализованного в процедуре алгоритма на выполнение конкретной работы. Параметр Sender вставлен Delphi «на всякий случай»: с его помощью подпрограмма ButtonlClick может, при желании, определить, какой именно компонент создал событие OnClick.
Вся строка в целом
PROCEDURE TForm1.ButtonlClick(Sender: TObject);
называется заголовком процедуры. Ее завершает символ «;». Этот символ играет важную роль в Object Pascal, т.к. показывает компилятору на конец предложения языка. Из отдельных предложений составляется весь текст программы. В конце каждого предложения нужно ставить точку с запятой – это обязательное требование синтаксиса языка. Три следующие строки определяюттело процедуры:
BEGIN
END;
Слово BEGIN (начало) сигнализирует компилятору о начале последовательности предложений, описывающих алгоритм работы процедуры, а слово END(конец) - о конце этой последовательности. Наполнить тело нужными предложениями - задача программиста. Каждый раз при нажатии кнопки Button1 управление будет передаваться в тело процедуры, а значит, между словами BEGIN и END мы можем написать фрагмент программы, который будет выполняться в ответ на это событие.
Дата добавления: 2016-06-15; просмотров: 2529;