interface - начало раздела, в котором могут содержаться списки подключаемых модулей, объявление типов, констант и т.д.;
uses - список подключаемых модулей.
type – раздел описания типов;
private - раздел описания закрытых данных объекта;
public - раздел описания открытых данных объекта;
var - раздел объявления глобальных переменных;
implementation - раздел для программного кода;
{$R *.dfm} - директива для компилятора, определяющая файл ресурса.
Далее идут функции и процедуры программы. Любой листинг программы на delphi завершается оператором «end.».
Рассмотрим процесс создания приложения на примере программы суммирующей 2 числа. Для этого создадим новый проект, на форме разместим 2 компонента Label, 2 компонента Edit и компонент Button, как показано на рисунке 2.
Рисунок - 2. Форма приложения
Обратите внимание, что после добавления вышеперечисленных компонент в разделе type модуля этой формы появились записи вида <Имя_компонента: Класс_компонента> для каждого из добавленных компонентов. Далее в инспекторе объектов выберите компонент Label1 и поменяйте на вкладке Properties (свойства) свойство Caption (заголовок) на «a» (для Label2 - на «b»). Компонет можно выбрать также нажав по нему на форме левой кнопкой мыши или выделить его в древе объектов.
Затем в инспекторе объектов выберите компонент Edit1 и на вкладке Properties (свойства) удалите текст из свойства Text (аналогично для Edit2). Поле ввода Edit станет пустым, так как в компоненте Edit на форме отображается тот текст, который содержится в его свойстве Text.
Свойство Caption компонента Button измените на «Суммировать». Название кнопки при этом изменится.
Работа с внешним видом формы на этом закончена. В данном случае у нас всего 5 компонетов на форме, но при написании сложных программ их количество в разы увеличивается, и для того, чтобы не запутаться в программном коде желательно каждому компоненту задать свое имя. Имя задается в свойстве name каждого компонента и должно быть уникальным в пределах программы, не может начинаться с цифры, также не допускается использование в качестве имен зарезервированных слов.
Теперь мы сможем ввести числа в Edit-ы, но чтобы посчитать их сумму мы должны написать соответствующий программный код, а чтобы этот код выполнился, необходимо, чтобы произошло событие в программе, по вызову которого этот код выполняется. В нашем примере таким событием будет нажатие на кнопку Button1. Для того чтобы процедура обработчика события «нажатие кнопки Button1» появилась в модуле, необходимо выбрать компонент Button1 в инспекторе объекта, и на вкладке Events (события) щелкнуть 2 раза левой кнопкой мыши в поле напротив события OnClick. Процедура появилась также в разделе type.
Между директивой «{$R *.dfm}» и оператором «end.»находится сама процедура. При ее добавлении, она имеет следующий вид:
procedureTForm1.Button1Click(Sender: TObject);
Begin
end;
Обратите внимание, что в разделе написания кода (между директивой «{$R *.dfm}», стоящей после «implementation»,и оператором «end.») содержатся сами процедуры или функции (с исполняемым кодом), а в разделе type, после объявления компонентов лишь их объявления. Причем, название и список параметров (для функции также и тип) объявленной процедуры (функции) не должны отличаться от названия и списка параметров процедуры (функции) в области написания кода, за исключением того, что в области написания кода перед именем процедуры (функции) должно стоять название класса текущей формы через точку (в данном случае - TForm1), т.е.:
в области объявления: procedure Button1Click(Sender: TObject);
в области написания кода: procedure Form1.Button1Click(Sender: TObject);
У процедуры в области написания кода есть начало и конец, обозначающиеся соответственно «begin» и «end;», между которыми и содержится код, выполняемый процедурой.
Для объявления локальных переменных (будут доступны только в процедуре, для которой объявляются) необходимо между названием процедуры и ключевым словом «begin» вставить ключевое слово «var» и после слова «var» объявить переменные (задать имя переменной и тип через двоеточие). В примере рассмотрена процедура, которая находит сумму двух чисел и выводит результат в сообщении, при этом используются процедуры приведения строкового значения в вещественное число - «StrToFloat()», вещественного числа в строковое значение – «FloatToStr()», и процедура вывода сообщения «ShowMessage()».
procedureTForm1.Button1Click(Sender: TObject);
Var
a,b,c:real;
Begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
c:=a+b;
ShowMessage('Сумма a и b равна '+FloatToStr(c));
end;
Операция присвоения в Delphi обозначается связкой «:=» (двоеточие равно). Не путайте с операцией сравнения «=» (равно). Сначала приводится переменная, потом идет знак присвоения, и в правой части присваиваемое значение. Обращение к методам и свойствам компонента происходит через точку. Как видно из примера, для обрашения к свойству Text компонента Edit1 было использовано выражение Edit1.Text. Если сообщение, выводимое процедурой ShowMessage состоит из нескольких частей, то между этими частями необходимо поставить знак плюс «+». В конце каждой строки ставится точка с запятой (кроме begin, else и некоторых других исключений).
Приводимая в примере процедура для понятности была разделена на несколько операций, но могла состоять и из одной строки:
Также во втором случае не понадобилось бы объявлять переменные, так как программа оперировала бы напрямую со значениями, содержащимися в полях ввода Edit, а если быть точнее – в свойствах Text компонентов Edit.
В результате проделанных действий, листинг программы примет следующий вид: