Title:= 'Название альбома';
Caption:= 'Заголовок формы';
Font.Color:= clWhite;
end;
При такой записи подстановка имен объектов осуществляется в порядке их следования. Однако в этом случае требуется следить за тем, чтобы для объектов, указанных после слова with, не использовались поля, свойства или методы с одинаковыми названиями, поскольку это может привести к путанице.
Структура проекта Delphi
Проект Delphi состоит из файлов трех основных типов:
• файл проекта с расширением .dpr;
• программные модули форм — файлы с расширением .pas;
• двоичные данные формы — файлы с расширением .dfm.
Файл .dfm Delphi формирует автоматически на основании значений, присвоенных свойствам формы и размещенных на ней компонентов. Файлы .dpr и .pas также создаются Delphi автоматически, но в них можно вносить изменения вручную. Рассмотрим их структуру.
Файл проекта .dpr
Файл проекта Delphi — это, по сути, главный программный модул не связанный ни с какой формой. В нем указываются ссылки на программные модули приложения и создаются формы. Он имеет следующую с т руктуру:
program имя_программы; //заголовок
//раздел, в котором указываются ссылки на модули форм
uses
Forms,
Unit1 in 'Unit1.pas' {Form1}; //главная форма приложения
//ссылки на остальные формы приложения
//…
{$R *.res} {директива компилятора о подключении файла ресурсов программы}
begin
//инициализация приложения как объекта
Application.Initialize;
//создание главной формы приложения
Application.CreateForm(TForm1, Form1);
//создание остальных форм
//…
//запуск приложения
Application.Run;
end.
Перед словом begin можно добавлять объявления констант, типов и переменных, а между словами begin и end — добавлять собственный программный код.
Файл программного модуля .pas
Файл программного модуля (формы или независимый) имеет следующую структуру:
unit имя_модуля;
//начало интерфейсной части модуля
interface
uses
{раздел ссылок на другие программные модули, классы, типы, переменные, процедуры или функции которых используются в данном модуле}
const
{описания констант}
type
{описание типов, в частности — класса формы}
var
{описание переменных, в частности – экземпляра формы}
//начало раздела реализации
implementation
uses
{раздел ссылок на другие программные модули}
{$R *.dfm} //директивы компилятора
const
{описания констант}
type
{описание типов }
var
{описание переменных }
{реализация процедур и функций модуля}
end.
В интерфейсном разделе (между ключевыми словами interface и implementation) указываются элементы программного модуля, доступные для других модулей и программ, а также ссылки на другие модули (раздел uses).
Все описания и операторы, помещаемые в раздел реализации (после ключевого слова implementation), доступны только внутри данного программного модуля.
Процедуры и функции
Процедура – это именованный программный блок, который не возвращает никакого значения. В отличие от нее, функция — это именованный программный блок, возвращающий некоторое значение в точку вызова. Обычно в виде функций или процедур выделяют часто используемые фрагменты программного кода. Синтаксис процедур:
procedure имя_процедуры(список_параметров);
{Локальные объявления констант, типов и переменных}
begin
//Тело процедуры
end;
Синтаксис функций:
function имя_процедуры(список_параметров): тип_возвращаемого_значения;
{Локальные объявления констант, типов и переменных}
begin
//Тело функции
Result:= возвращаемое_ значение;
end;
Параметры
Список параметров, передаваемых в процедуру или в функцию, имеет следующий синтаксис:
параметр1: тип; …; параметрN: тип
Если процедура или функция не принимает никаких параметров, то ее заголовок выглядит следующим образом:
procedure имя_процедуры;
function имя_процедуры: тип_возвращаемого_значения;
Те параметры, перед которыми при объявлении указано ключевое слово var, называются параметрами, передаваемыми по ссылке. Это означает, что к значению этого параметра сохраняется доступ и после выхода из функции или процедуры. Такие параметры можно использовать для возврата результата в процедурах или возврата более одного результата в функциях.
Для параметра, указанного в списке последним, можно определить значение по умолчанию. Это означает, что при вызове процедуры или функции эти параметры можно не передавать.
Если в качестве параметра передается массив, то размерность массива в заголовке процедуры или функции не указывается.
Вызов процедур и функций
Процедуры и функции вызываются по их названию с указанием в круглых скобках списка параметров, например:
s:= IntToStr(i); //вызов функции IntToStr
delete(s, 1, 2); {вызов процедуры delete, которая удаляет из строки s два символа, начиная с первого. В данном случае, переменная s является параметром, передаваемым по ссылке}
Если в процедуру или функцию не передаются никакие параметры (как во многих методах объектов), то вызов осуществляется только по ее имени, например:
Button1.Click; //вызов метода (процедуры) Click
s:= GetCurrentDir; //вызов функции GetCurrentDir
Досрочный выход из процедуры или функции
Для досрочного выхода из процедуры или функции в ее теле следует указать вызов процедуры Exit.