Размещение нового компонента
Разместить на форме новый компонент нетрудно. Для этого сначала нужно его выбрать (щелкнуть на нем мышью) в палитре компонентов, а затем щелкнуть мышью на точке рабочего пространства формы, где должен располагаться левый верхний угол компонента.
Например, если попробовать разместить в окне программы компонент Label, предназначенный для размещения различного рода надписей, форма примет следующий вид, приведенный на рис. 7. Для доступа к данному компоненту следует выбрать вкладку Standard в палитре компонентов и щелкнуть мышью по кнопке . Потом следует щелкнуть левой кнопкой мыши по рабочей области формы.
Рис. 7. Окно формы с размещенным на ней компонентом Label
Новый компонент имеет стандартное имя Label1 и надпись на нем повторяет это имя. Можно изменить эту надпись: например, с помощью строки Caption окна инспектора объектов ввести надпись «Я программирую на Delphi». Как только начнется ввод новой надписи, вид компонента на форме начнет меняться, динамически отражая все изменения, производимые в окне инспектора объектов.
Для лучшей читабельности текста можно выделить надпись цветом и сделать ее шрифт более крупным. Для этого следует щелкнуть мышью на строке Font окна инспектора объектов и с помощью кнопки в правой части строки раскрыть диалоговое окно настройки шрифта. В списке Size (Размер) этого окна следует выбрать высоту шрифта 24 пункта, а с помощью списка Color (Цвет) выбрать нужный цвет (например, красный), после чего закрыть окно щелчком на кнопке ОК.
Надпись на компоненте в окне формы тут же соответствующим образом изменит свои свойства. Delphi обладает способностью визуальной реализации любых изменений свойств компонента не только на этапе прогона программы, но и на этапе проектирования формы.
Также можно перемещать компонент по форме. Для этого следует нажать левую кнопку мыши внутри обрамляющих надпись черных прямоугольников и, не отпуская кнопку, сместить указатель мыши так, чтобы он расположился левее в центре окна, после чего отпустить кнопку. Таким способом можно буксировать компонент по форме, добиваясь нужного его положения.
С помощью обрамляющих черных квадратиков можно изменять размеры компонента. Для этого следует поместить указатель мыши на один из них (в этот момент указатель меняет свою форму на двунаправленную стрелку), затем нажать левую кнопку мыши и, не отпуская ее, буксировать сторону или угол компонента в нужном направлении, после чего отпустить кнопку.
Следует заметить, что все видимые компоненты имеют свойства Left (Слева), Тор (Сверху), Width (Ширина) и Height (Высота), числовые значения которых определяют положение левого верхнего угла компонента и его размеры в так называемых пикселах, то есть в минимальных по размеру точках экрана, светимостью которых может управлять программа. При буксировании компонента или изменении его размеров мышью эти значения автоматически меняются и наоборот – изменение этих свойств в окне инспектора объектов приводит к соответствующему изменению положения и размеров компонента.
Реакция на события
Как уже говорилось, функциональность программы определяется совокупностью ее реакций на те или иные события. В связи с этим каждый компонент помимо свойств характеризуется также набором событий, на которые он может реагировать.
Для дальнейших действий следует провести очередную модернизацию программы: вставить в ее форму еще один компонент – кнопку и заставить ее откликаться на событие, связанное со щелчком левой кнопки мыши.
Компонент Button (Кнопка)изображается значком на вкладке Standard палитры компонентов. Следует поместить этот компонент на форму и расположить его ниже метки и посередине формы (рис. 8).
Рис.8. Форма с добавленной кнопкой
При щелчке на кнопке мышью в работающей программе возникает событие OnClick (По щелчку). Чтобы заставить программу реагировать на щелчок, необходимо написать на языке Delphi фрагмент программы, который называется обработчиком события. Этот фрагмент должен представлять собой последовательность текстовых строк, в которых программист указывает, что именно должна делать программа в ответ на щелчок на кнопке. Фрагмент оформляется в виде процедуры.
Чтобы заставить Delphi самостоятельно сделать заготовку для процедуры обработчика события OnClick, следует дважды щелкнуть мышью на вновь вставленном компоненте. В ответ Delphi активизирует окно кода, в котором будет такой текстовый фрагмент:
procedure TForm1.Button1Click(Sender: TObject);
Begin
end;
Слово procedure извещает компилятор о начале процедуры – в Delphi могут использоваться также подпрограммы-функции; в этом случае вместо слова procedure (процедура) используется слово function (функция). За ним следует имя процедуры TForm1. Button1Click. Это имя — составное: оно состоит из имени класса TForm1 и собственно имени процедуры Button1Click.
Классами в Delphi называются функционально законченные фрагменты программ, служащие образцами для создания подобных себе экземпляров. Однажды создав класс, программист может включать его экземпляры (копии) в разные программы или в разные места одной и той же программы. Такой подход способствует максимально высокой продуктивности программирования за счет использования ранее написанных фрагментов программ. В состав Delphi входит несколько сотен классов, созданных программистами корпорации Borland (так называемых стандартных классов). Совокупность стандартных классов определяет мощные возможности этой системы программирования.
Каждый компонент принадлежит к строго определенному классу, а все конкретные экземпляры компонентов, вставляемые в форму, получают имя класса с добавленным числовым индексом. По используемому в Delphi соглашению все имена классов начинаются с буквы Т. Таким образом, имя TForml означает имя класса, созданного по образцу стандартного класса TForm. Если обратить внимание на начало текста в окне кода, то можно увидеть следующие строки:
Type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
Private
{ Private declarations }
Public
{ Public declarations }
end;
Var
Form1: TForm1;
Представленная ниже строка определяет новый класс TForml:
TForm1 = class (TForm)
Этот класс порожден от (создан по образцу) стандартного класса TForm. А следующая строка создает экземпляр этого класса с именем Form1: Form1: TForm1;
Стандартный класс TForm описывает пустое окно программы, в то время как класс TForm1 описывает окно с уже вставленными в него компонентами метка и кнопка. Описание этих компонентов содержат строки:
Button1: TButton;
Label1: TLabel;
Эти строки указывают, что компонент Button1 (Кнопка1) представляет собой экземпляр стандартного класса TButton, а компонент Label1 (Метка1) — экземпляр класса TLabel.
За именем процедуры TForml.ButtonlClick в круглых скобках следует описание параметра вызова:
Sender: TObject
Это описание означает, что параметр с именем Sender принадлежит классу .Object. Параметр Sender вставлен Delphi «на всякий случай»: с его помошью программист может, при желании, определить, какой именно компонент явился источником события OnClick.
Вся строка в целом называется заголовком процедуры:
procedure TForml.ButtonlClick(Sender: TObject);
Ее завершает символ точки с запятой (;), который играет важную роль в Delphi, как показывает компилятору на конец предложения языка (Также как и в Паскале). Три следующие строки определяют тело процедуры:
Begin
end;
В данном случае тело процедуры пока еще не содержит описания каких-либо действий, что и неудивительно: среда Delphi лишь создала заготовку для процедуры, но она ничего «не знает» о том, для чего эта процедура предназначена. Наполнить тело нужными предложениями – задача программиста.
Каждый раз при щелчке на кнопке Button1 управление будет передаваться в тело процедуры, а значит между словами begin и end можно написать фрагмент программы, который будет выполняться в ответ на это событие.
Чтобы убедиться в этом, можно сделать кнопку «звучащей». Для этого следует написать в пустой строке между словами begin и end следующее предложение:
MessageBeep(МВ_ОК);
Теперь, после запуска программы, в ответ на щелчок на кнопке Button1 в динамике компьютера будет раздаваться звуковой сигнал, так как вставленная строка реализует обращение к стандартной процедуре, которая умеет извлекать из динамика различные стандартные для Windows звуки.
Дата добавления: 2017-01-29; просмотров: 929;