Выбрать главу

 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.