Delphi 7. занятие 1_9.
Содержание
В занятии 8 мы познакомились с основными элементами среды разработки Delphi. Написали несколько несложных программ. Осталось сохранить результаты нашего труда.
Сохранение результатов разработки
Для сохранения полученных результатов используем пункт «File» главного меню, команду «Save All …». Предварительно необходимо создать отдельную папку для сохранения файлов проекта.
Среда IDE сохраняет набор файлов. Из них файлы Project1.dpr, Project1.dof, Project1.cfg, Unit1.pas, Unit1.dfm можно просмотреть в текстовом редакторе.
Файл проекта.
Прежде всего, это файл Project1.dpr. Это, по сути, и есть сама программа. Именно в нём содержатся операторы, создающие объекты-формы. Последний оператор запускает приложение на выполнение.
Объект Application
Оператор Application.CreateForm(TForm1,Form1) создаёт объект формы с помощью метода CreateForm() объекта Application.
Объект Application является осовным в структуре объектов, составляющих дерево объектов приложения. Он каждый раз формируется автоматически при создании нового проекта.
Особенностью объекта Application является то, что он не отображается в окне инспектора объектов Object TreeView.
Но к свойствам и методам Application можно обращаться непосредственно из текста программы.
Следующий метод Application.run отображает главную форму и инициализирует очередь сообщений Windоws. Именно через эту очередь приложение общается с операционной системой.
Например, в самом языке Delphi нет процедур для работы с дисками, поэтому используются процедуры операционной системы. Delphi только обращается к ним посредством так называемых сообщений. Сами сообщения помещаются в очередь сообщений. Каждое последующее сообщение извлекается из очереди после обработки предыдущего.
Главная форма.
При создании проекта добавление новой формы в проект осуществляется автоматически путём добавления строки в модуль Project1:
Application.CreateForm(TForm, Form1).
При этом первой строкой после строки Application.Initionalization оказывается Application.CreateForm(TForm, Form1) и Form1 будет главной формой приложения.
Если в дальнейшем мы создаём вторую форму, то добавляется строка:
Application.CreateForm(TForm, Form2), и так далее.
Если переместить на первое место Application.CreateForm(TForm, Form2), то главной станет Form2. То есть любая форма может стать главной, если её переместить на первое место.
Добавить форму в проект можно из главного меню из пункта «File» командой «New → Form»
Внутренняя структура модуля.
Interface.
Обратимся теперь к структуре модуля Unit. Если в модуле Project программисту что-либо нежелательно (и порой опасно!), то в именно в Unit размещён программный код.
Для примера рассмотрим внутреннюю структуру модуля Unit1. Пространство модуля состоит из двух секций: секция Interface и секция Implementation.
Само слово Interface грубо можно перевести как «между кем-то или чем-то», то есть это пространство, доступное извне.
Типы и переменные, а также файлы в предложении Uses, размещённые в секции Interface, оказываются доступными как в любом месте самого модуля, так и из других модулей.
Ключевое слово Uses. Подключение модуля.
Если данные из Unit1 необходимы для работы процедур и функций в Unit2, то в нём используется механизм Uses (используемые). Если в Uses написать Unit1, то его секция Interface становится доступной для Unit2.
И наоборот.
Секция Implementation.
В этой секции размещается код программы.
Кроме того, здесь мы можем разместить объявление типов и переменных, которые хотим спрятать от других модулей, но которые будут видны в любом месте секции. Это позволяет задавать одинаковые имена типам и переменным в разных модулях без возникновения конфликта.
Здесь же лучше размещать Uses для ссылки на другие модули Unit. Причём сделать это можно автоматически, используя «File» → «Use Unit …». Три точки в команде меню означают, что будет открыто модальное окно диалога (пока не закрыто модальное окно, невозможно обратиться к другим частям программы).
При использование этого пункта меню автоматически формируется предложение Uses в секции Implementation, например Uses Unit2 в секции Implementation модуля Unit1.
Кроме того такое размещение решает проблему «перекрёстных ссылок». Компилятор не пропустит, если в Unit1 есть ссылка на Unit2? А в Unit2, в свою очередь, есть ссылка на Unit1 и эти ссылки размещены в секции Interface.
Файлы проекта.
После успешной компиляции требуется сохранить разработанный проект (или отдельные его части). Это осуществляется командами пункта «File» главного меню. Если выбрать команду «Save All …», то в указанную папку будут сохранены все файлы проекта.
Исходный код модулей Unit будет сохранён в файлы Unit1.pas, Unit2.pas и так далее. Для сохранения формы будет создан файл Unit1.dfm. Проект будет сохранён в файле Project1.dpr.
Откомпилированные файлы модулей Unit1, Unit2, … будут сохранены в файлах Unit1.dcu, Unit2.dcu , … . Кроме того, будет создан ещё ряд служебных файлов, необходимых для корректной работы IDE. Наконец, исполняемый файл проекта Project1.exe, который и является целью всех наших усилий.
Заключение.
В занятии 9 мы рассмотрели вопросы сохранения программы на диск; Структуру модулей Project и Unit; обратили внимание на роль объекта Application. Выяснили, как сделать выбранную форму главной и как правильно добавить ссылку на другой модуль.
Глоссарий.
- Interface
- Implementation
- Uses
- Projecr1.dpr, Unit1.pas, Unit1.dcu, Unit1.dfm
- Объект Application
- Панель Object TreeView
- Очередь сообщений Windows
- Главная форма