139.14K
Категория: ПрограммированиеПрограммирование

Структура простого проекта. Лекция 3

1.

Лекция 3.
Структура простого
проекта

2.

Редактор кода
В окне редактора кода , которое можно увидеть, отодвинув в сторону окно
формы, следует набирать текст программы. В начале работы над новым проектом это
окно редактора кода содержит сформированный Delphi шаблон программы.

3.

Модуль
unit Unit1; //Имя модуля
interface
uses //После этого слова идет перечисления подключенных модулей.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
Type //После этого идет объявление типов
TForm1 = class(TForm) //Начало описания нового объекта TForm1
//Здесь описываются компоненты и события
private //После этого слова можно описывать закрытые данные объекта
{ Private declarations }//Подсказка, которую сгенерировал Delphi
{Здесь можно описывать переменные и методы, доступные только для объекта TForm1}
public //После этого слова можно описывать открытые данные объекта
{ Public declarations }//Подсказка, которую сгенерировал Delphi
{Здесь можно описывать переменные и методы доступные из любого другого модуля}
end;
var //Объявление глобальных переменных
Form1: TForm1; //Это описана переменная Form1 типа объекта TForm1
implementation
{$R *.dfm} //Подключение .dfm файла (файл с данными о визуальных объектах)
end. // конец модуля

4.

Структура модуля
Начинается модуль словом unit, за которым следует имя модуля Unit1.
Модуль состоит из следующих разделов:
интерфейса;
реализации;
инициализации.
Раздел интерфейса (начинается словом interface) сообщает компилятору, какая часть
модуля является доступной для других модулей программы. В этом разделе перечислены
(после слова uses) библиотечные модули, используемые данным модулем. Также здесь
находится сформированное Delphi описание формы, которое следует за словом type.
Раздел реализации открывается словом implementation и содержит объявления
локальных переменных, процедур и функций, поддерживающих работу формы.
Начинается раздел реализации директивой {$R *.DFM}, указывающей компилятору, что в
процессе генерации выполняемого файла надо использовать описание формы. Описание
формы находится в файле с расширением dfm, имя которого совпадает с именем модуля. Файл
описания формы генерируется средой Delphi на основе внешнего вида формы.
За директивой ($R *.DFM} следуют процедуры обработки событий для формы и ее
компонентов. Сюда же программист может поместить другие процедуры и функции.
Раздел инициализации позволяет выполнить инициализацию переменных модуля.
Инструкции раздела инициализации располагаются после раздела реализации (описания всех
процедур и функций) между begin и end. Если раздел инициализации не содержит инструкций
(как в приведенном примере), то слово begin не указывается.

5.

Структура файла проекта
Главной частью приложения является файл проекта (.dpr), содержащий код
на языке Object Pascal, с которого начинается выполнение программы и который
обеспечивает инициализацию других модулей. В большинстве случаев можно
создать законченное приложение Delphi, так и не взглянув на этот файл. Он
создается и модифицируется Delphi автоматически в процессе разработки
приложения. Имя, которое дается файлу проекта, при сохранении его,
становится именем исполняемого файла.
Приведенный ниже код является примером того, как выглядит файл
проекта в случае, когда имена файлов и форм не изменялись.
program Project1
uses
Forms,
Unit1 in 'Unit1.pas' {Form 1};
{SR *,RES}
begin
Application.CreateForm(ТForm, Forml);
Application.Run (Forml);
end.

6.

Структура файла проекта
Начинается главный модуль словом program, за которым следует имя
программы, совпадающее с именем проекта. Имя проекта задается в момент
сохранения проекта, и оно определяет имя создаваемого компилятором
исполняемого файла программы. Далее за словом uses следуют имена
используемых модулей: библиотечного модуля Forms и модуля формы
unitl.pas.
Строка {$R *.RES}, которая похожа на комментарий, — это директива
компилятору подключить файл ресурсов. Файл ресурсов содержит ресурсы
приложения: пиктограммы, курсоры, битовые образы и др. Звездочка
показывает, что имя файла ресурсов такое же, как и у файла проекта, но с
расширением res.
Файл ресурсов не "является текстовым файлом, поэтому просмотреть
его с помощью редактора текста нельзя. Для работы с файлами ресурсов
используют специальные программы, например, Resource Workshop. Можно
также применять входящую в состав Delphi утилиту Image Editor, доступ к
которой можно получить выбором из меню Tools команды Image Editor.
Исполняемая часть главного модуля находится между инструкциями
begin и end. Инструкции исполняемой части обеспечивают инициализацию
приложения и вывод на экран стартового окна.

7.

Основные файлы проекта
Проект Delphi состоит из форм, модулей, установок параметров
проекта, ресурсов и т.д. Вся эта информация размещается в файлах.
Многие из этих файлов автоматически создаются Delphi, когда
строится приложение. Ресурсы, такие, как битовые матрицы,
пиктограммы и т.д., находятся в файлах, которые получаются из
других источников или создаются при помощи многочисленных
инструментов и редакторов ресурсов, имеющихся в распоряжении
Delphi. Кроме того, компилятор также создает файлы. Познакомимся с
некоторыми из этих файлов, так как знание того, какие файлы какую
информацию содержат, не раз поможет в трудных ситуациях.
Когда проектируется приложение, Delphi создает следующие
файлы:

8.

Основные файлы проекта
Файл проекта (.dpr)
Этот текстовый файл используется для хранения
информации о формах и модулях. В нем содержатся
операторы инициализации и запуска программы на
выполнение.
Файл модуля (.pas)
Каждой создаваемой вами форме, а начиная с Delphi 5 - и
каждому фрейму, соответствует текстовый файл модуля,
используемый для хранения кода. Иногда вы можете создавать
модули, не связанные с формами. Многие из функций и
процедур Delphi хранятся в модулях.
Файл формы (.dfm)
Это двоичный или текстовый файл, который создается Delphi
для хранения информации о ваших формах. Каждому файлу
формы соответствует файл модуля (.pas).
Файл параметров проекта
(.dfo)
В этом файле хранятся установки параметров проекта.
Файл информации о пакетах
(.drf)
Этот бинарный файл используется Delphi при работе с
пакетами.
Файл ресурсов (.res)
Этот бинарный файл содержит используемую проектом
пиктограмму и прочие ресурсы.
Файл группы файлов (.bpg)
Это файл, создаваемый, если вы работаете с группой проектов.
Файл пакета (.dpk)
Этот двоичный файл пакета (package).

9.

Основные файлы проекта
Файлы резервных копий (.-dp, ~df, .~pa)
Это соответственно файлы резервных копий
для файлов проекта, формы и модуля. Если
вы что-то безнадежно испортили в своем
проекте, можете соответственно изменить
расширения этих файлов и таким образом
вернуться к предыдущему не испорченному
варианту.
Файл конфигурации окон (.dsk)
Файл хранит конфигурацию всех окон.
Файлы диаграмм (.ddp)
Файлы диаграмм, создаваемых на странице
диаграмм окна Редактора Кода.

10.

Основные файлы проекта
Следующая группа файлов создается компилятором
:
Исполняемый файл (.ехе)
Это исполняемый файл вашего приложения. Он
является автономным исполняемым файлом, для
которого больше ничего не требуется, если только вы
не используете библиотеки, содержащиеся в DLL, OCX
и т.д., а также если вы не используете поддержку
пакетов времени выполнения
Объектный файл модуля (.dcu)
Это откомпилированный файл модуля (.pas), который
компонуется в окончательный исполняемый файл.
Динамически присоединяемая
Этот файл создается в случае, если вы проектируете DLL.
библиотека (.dll)
Файл содержания пакета (.dcp)
Это двоичный файл, содержащий заголовок пакета и
список принадлежащих ему файлов .dcu.
Откомпилированный файл
пакета времени выполнения
(.bpl)
Это пакет времени выполнения — файл библиотеки DLL с
определенной спецификой Delphi.
Файлы справки (hlр)
Это стандартные файлы справок Windows, которые могут
быть использованы вашим приложением Delphi.
Файлы изображений или
графические файлы (.wmf,
.bmp, .iсо)
Эти файлы обычно используются в приложениях Windows
для создания привлекательного и дружественного
пользовательского интерфейса.

11.

Сохранение проекта
Чтобы сохранить проект, нужно выполнить следующие действия:
Выбрать команду меню "File – Save All" (сохранить все), либо нажать
горячие клавиши <Shift+Ctrl+S>, либо нажать одноименную кнопку на
панели инструментов
Delphi сначала предложит сохранить модуль (содержимое окна
редактора кода), поэтому на экране появится окно Save Unitl As. В этом
окне надо выбрать папку, предназначенную для файлов проекта, и
ввести имя модуля. После нажатия кнопки Сохранить, появляется
следующее окно в котором необходимо ввести имя файла проекта.
Имена файлов модуля (pas-файл) и проекта (dpr-файл) должны быть
разными. Имя генерируемого компилятором исполняемого файла
совпадает с именем проекта. Поэтому файлу проекта следует присвоить
такое имя, которое, по вашему мнению, должен иметь исполняемый
файл программы, а файлу модуля — какое-либо другое имя, например,
полученное путем добавления к имени файла проекта порядкового
номера модуля.
Так как проект представляет собой набор файлов, то для каждого
проекта нужно создавать отдельную папку.

12.

Компиляция
Компиляция — это процесс преобразования исходной программы в
исполняемую. Процесс компиляции состоит из двух этапов. На первом этапе
выполняется проверка текста программы на отсутствие ошибок, на втором —
генерируется исполняемая программа (ехе-файл).
После ввода текста функции обработки события и сохранения проекта
можно из меню Project выбрать команду Compile и выполнить компиляцию.
Процесс и результат компиляции отражаются в диалоговом окне Compiling. В
это окно компилятор выводит ошибки (Errors), предупреждения (warnings) и
подсказки (Hints). Сами сообщения об ошибках, предупреждения и подсказки
отображаются в нижней части окна редактора кода.

13.

Окно компиляции
Сообщения компилятора об обнаруженных ошибках
Если во время компиляции окна Compiling на экране нет, то нужно выберать
из меню Tools команду Environment options и на вкладке Preferences установите во
включенное состояние переключатель Show compiler progress.

14.

Ошибки
Компилятор генерирует исполняемую программу лишь в том
случае, если исходный текст не содержит синтаксических ошибок. В
большинстве случаев в только что набранной программе есть ошибки.
Программист должен их устранить.
Чтобы перейти к фрагменту кода, который содержит ошибку, надо
установить курсор в строку с сообщением об ошибке и из контекстного
выбрать команду Edit source.
Процесс устранения ошибок носит итерационный характер.
Обычно сначала устраняются наиболее очевидные ошибки, например,
декларируются необъявленные переменные. После очередного
внесения изменений в текст программы выполняется повторная
компиляция. Следует учитывать тот факт, что компилятор не всегда
может точно локализовать ошибку. Поэтому, анализируя фрагмент
программы, который, по мнению компилятора, содержит ошибку,
нужно обращать внимание не только на тот фрагмент кода, на который
компилятор установил курсор, но и на тот, который находится в
предыдущей строке.

15.

Ошибки
Если компилятор обнаружил достаточно много ошибок, то нужно
просмотреть все сообщения, устранить сначала наиболее очевидные ошибки и
выполнить повторную компиляцию. Вполне вероятно, что после этого
количество ошибок значительно уменьшится. Это объясняется особенностями
синтаксиса языка, когда одна незначительная ошибка может "тащить" за собой
довольно большое количество других.
Если в программе нет синтаксических ошибок, компилятор создает
исполняемый файл программы. Имя исполняемого файла такое же, как и у
файла проекта, а расширение — exe. Delphi помещает исполняемый файл в тот
же каталог, где находится файл проекта.
При обнаружении в программе неточностей, которые не являются
ошибками, компилятор выводит подсказки (Hints) и предупреждения
(warnings).
Например, наиболее часто выводимой подсказкой является сообщение
об объявленной, но не используемой переменной:
Variable ... is declared but never used in ...
Действительно, зачем объявлять переменную и не использовать ее?

16.

Запуск программы
Пробный запуск программы можно выполнить непосредственно из Delphi, не
завершая работу со средой разработки. Для этого нужно из меню Run выбрать
команду Run или щелкнуть на соответствующей кнопке панели инструментов
Debug.

17.

Ошибки времени выполнения
Во время работы приложения могут возникать ошибки, которые называются ошибками
времени выполнения (run-time errors) или исключениями (exceptions). В большинстве случаев
причинами исключений являются неверные исходные данные. Например, если для отделения
дробной части числа от целой использовать точку, то в результате нажатия кнопки Вычислить на
экране появится окно с сообщением об ошибке.
Причина возникновения ошибки заключается в следующем. В тексте программы дробная
часть числа от целой отделяется точкой. При вводе исходных данных в поле редактирования
пользователь может (если не предпринять никаких дополнительных усилий) отделить дробную
часть числа от целой точкой или запятой. Какой из этих двух символов является допустимым,
зависит от настройки Windows.
После нажатия кнопки ОК программист может продолжить выполнение программы (для
этого надо из меню Run выбрать команду Step Over) или прервать выполнение программы. В
последнем случае нужно из меню Run выбрать команду Program Reset.
При разработке программы программист должен постараться предусмотреть все
возможные варианты некорректных действий пользователя, которые могут привести к
возникновению ошибок времени выполнения (исключения), и обеспечить способы защиты от
них.
English     Русский Правила