Понятие проекта. Структура проекта

Если вы загляните в папку, в которой хранится исходный код вашего приложения, вы увидите довольно много файлов. Эти файлы необходимы для того, чтобы работало ваше приложение. Именно поэтому мы советовали вам все файлы сохранять в одной папке, чтобы не потерять ни один файл.

Набор файлов, который хранит исходный код вашего приложения, называется проектом. На основе файлов проекта создается выполнимый файл (*.exe). Давайте рассмотрим, из каких основных файлов состоит проект.

Структура проекта изображена на рис.

 
  Понятие проекта. Структура проекта - student2.ru

Рис. Структура проекта

Где

*.dfm содержит графическое представление формы;

*.pas – модуль Pascal;

*.res хранит ресурсы проекта;

*.dof хранит опции проекта.

Проект может содержать несколько форм, с каждой формой связаны два файла – с расширениями dfm и pas. Файл с расширением dfm – хранит графическое представление формы, именно сюда вы помещаете интерфейсные элемента, такие как кнопки, списки, поля редактирования. Файл с расширением pas – является модулем Pascal, именно там хранится программный код, связанный с формой, например обработчики событий формы. При этом каждому файлу dfm обязан соответствовать файл pas. Обратное неверно, т.е. модуль может не иметь связанной с ним формы, файла dfm.

С каждым проектом связан один файл с расширением dof, в котором хранятся опции проекта. А вот ресурсных файлов res может быть, вообще говоря, несколько, но, как правило, с каждым проектом связан один файл ресурсов, который хранит иконки, картинки, рисунки вашего приложения.

В своей папке вы обнаружите также файлы с расширением dcu. Эти файлы являются результатом компиляции модулей Pascal, они создаются каждый раз, когда компилируется проект. Значит, их хранение не является обязательным и они могут быть удалены.

Также можно не хранить файлы, расширение которых начинается со знака "~", например ~dfm, ~pas. Это файлы отката текстового редактора. Этими файлами можно воспользоваться, если испорчены основные файлы dfm и pas.

С каждым проектом связан один файл с расширением cfg – это файл конфигурации проекта.

Программа на Pascal, которая запускает приложение на выполнение, часто также называется проектом и хранится в файле с расширением *.dpr. Для доступа к этому файлу выполним меню Project | View Source.

Понятие проекта. Структура проекта - student2.ru

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

Рассмотрим структуру программы. Ключевое слово program задает имя проекта (программы). Ключевое слово uses позволяет подключить к проекту формы и модули. А вот {$R *.RES} – это не комментарий, это опция компилятора, которая подключает к проекту ресурсный файл. Между операторами begin .. end располагается основной текст программы. Для каждого приложения создается глобальный объект Application. Этот объект отсутствует в палитре компонентов, недоступен он и на этапе разработки приложения. Но некоторые из его общедоступных (public) свойств могут быть установлены во время проекти­рования в диалоге задания опций проекта на страницах Forms и Application.

Метод Initialize – это первый метод, вызываемый для любого Delphi-приложения. Он инициализирует объект Application.

Метод CreateForm – загружает очередную форму в оперативную память.

Проект Delphi обычно состоит из нескольких вызовов метода CreateForm по количеству самозагружаемых (auto-create) форм. Приложение может создавать форму динамически во время выполнения с помощью того же метода CreateForm, но это не всегда требуется. По умолчанию первая созданная форма становится главной формой приложения.

Метод Run запускает приложение на выполнение и передает управление главной форме.

Задание для самостоятельной работы

1. Создайте новое приложение в Delphi

2. Сохраните его в отдельной папке

3. Откройте папку и посмотрите, из каких файлов она состоит

4. Измените приложение, например, добавьте несколько любых компонентов на форму

5. Сохраните приложение

6. Откройте папку и посмотрите, из каких файлов она состоит

7. Удалите ненужные файлы, т.е. такие которые не повлияют на работо­способность приложения

8. Запустите приложение на выполнение и убедитесь в его работоспособности.

Форма

Приложение может состоять из нескольких форм. Форма – это основной элемент интерфейса пользователя, который обеспе­чивает наиболее удобный вид представления, просмотра, редактирования данных и управления ходом выполнения приложения. С точки зрения пользователя, форма – это просто окно, посредством которого программа общается с пользователем. С точки зрения разра­ботчика, форма – это объект класса TForm. С каждой формой связаны два файла: файл dfm – содержит графическое представление формы, файл pas – содержит ассоциированный с формой модуль Паскаля.

Добавление формы к проекту

Добавление формы к проекту осуществляется либо через меню File | New | Form, либо с помощью быстрой кнопки New Form кнопочной панели.

Понятие проекта. Структура проекта - student2.ru Понятие проекта. Структура проекта - student2.ru Понятие проекта. Структура проекта - student2.ru

       
   
New Form
 
 
Toggle Form\Unit

При этом открывается окно новой формы. Модуль новой формы добавляется в строку Uses файла проекта – dpr. Чтобы запомнить форму как часть проекта, сохраните ее в папке, где хранятся все файлы вашего приложения, с помощью меню File | Save.

Как мы уже говорили, с каждой формой связаны два файла: в одном находится графическое представление формы, другой содержит модуль Pascal, связанный с формой. Каждый из этих файлов открывается в своем окне. Для переключения между окнами используются кнопка кнопочной панели Toggle Form\Unit или клавиша F12.

Структура модуля Pascal

Модули введены в Turbo Pascal начиная с версии 4.0. Введение модулей явилось решающим шагом на пути его превращения в язык, пригодный для крупных разработок производственного и коммерческого назначения.

Модуль (Unit) в языке Turbo Pascal по определению считается отдельной программой. Модуль – это отдельно хранимая и независимо компилируемая единица в отличие от подпрограммы.

Модуль представляет собой набор программных ресурсов, предназначенных для использования другими модулями и программами. Ресурсы модуля можно разбить на две части – предназначенные для использования другими модулями и программами и объекты рабочего характера, используемые только процедурами и функциями данного модуля. В соответствии с этим модуль имеет две основные части, называемые интерфейсом и реализацией. В интерфейсной части (interface) сосредоточены описания объектов модуля, доступных другим программам; такие объекты называются видимыми вне модуля. Здесь должны быть представлены только заголовки процедур и функций, видимые для других программ, а их полные описания будут содержаться в разделе реализации.

В части реализации (implementation) помещаются рабочие объекты, называемые также невидимыми или скрытыми, а также реализации процедур и функций, используемых другими модулями.

В последующих версиях появились еще две части: initialization и finalization.

Часть initialization используется для инициализации данных, используемых моду­лем. Если приложение использует данный модуль, код в части initialization выпол­няется перед тем, как начнет выполняться само приложение.

Если для модуля необходимо выполнить, например освобождение ресурсов, заня­тых при инициализации объектов, перед тем как завершится приложение, используется часть finalization. Часть finalization следует за частью initialization, но перед конечным end.

Заголовок модуля состоит из ключевого слова Unit и идентификатора, который является именем модуля. Hапример:

Unit Unit1;

Interface

{ описание видимых объектов }

Implementation

{ описание скрытых объектов }

Initialization

{ операторы инициализации объектов модуля }

Finalization

{ очистка }

end.

Для доступа к объектам, процедурам и функциям другого модуля нужно указать имя этого модуля в операторе Uses.

Давайте рассмотрим структуру модуля, связанного с пустой формой.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs;

type

TForm1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

end.

Ключевое слово Unit задает имя модуля. В интерфейсной части модуля с помощью ключевого слова Uses задаются внешние библиотеки, которые будут использоваться модулем. Ключевое слово type задает описание класса TForm1, который является наследником класса TForm. Ключевые слова private и public задают скрытые и общедоступные части класса соответственно. С помощью ключевого слова var задается переменная Form1 это объект класса TForm1.

В части implementation будут создаваться обработчики событий формы.

{$R *.dfm} – это не комментарий, а директива компилятора, которая говорит о том, что данный модуль связан с графическим представлением формы, файлом dfm. Не удаляйте эту директиву!

Как открыть форму

Форма открывается с помощью одного из своих методов: Show или ShowModal. Отличие методов состоит в том, что метод Show открывает обычное окно, а метод ShowModal открывает форму в режиме модального окна, т.е. окна, которое пользователь должен закрыть, прежде чем он сможет получить доступ к другим окнам. Например:

Form2.Show; где Form2 - имя открываемой формы.

Для того чтобы модуль вызывающей формы получил доступ к модулю вызываемой формы, нужно в Uses вызывающей формы добавить имя модуля вызываемой формы.

Напpимеp. Из Формы1 требуется открыть Форму2. С Формой1 связан модуль Unit1, а с Формой2 связан модуль Unit2. Нужно, чтобы модуль Unit1, связанный с Формой1 видел модуль Unit2, связанный с Формой2. Для этого необходимо в операторе Uses модуля Формы1, т.е. в Unit1, прописать имя модуля второй формы Unit2.

Unit Unit1 { Unit1 - модуль вызывающей Фоpмы1 }

implementaion

Uses ... , Unit2; { Unit2 - модуль вызываемой Фоpмы2 }

...

Этого же можно достичь, если, находясь в модуле Unit1, выполнить меню File | Use Unit. В результате в части implementaion модуля Unit1 появится объявление модуля Unit2.

Задание для самостоятельной работы

1. Создайте новое приложение.

2. Добавьте к нему новую форму

3. В главной форме приложения создайте кнопку, по которой будет вызываться новая форма.

4. Добавьте к приложению 5 новых форм. Откройте файл dpr и посмотрите, что он содержит.

Наши рекомендации