Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Delphi - проблемы и решения" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Программирование на Delphi. От новичка до профессионала! 15.2 Создание и сохранение проекта
Информационный Канал Subscribe.Ru |
Партнёрская программа от www.hostingsystem.ru, выплаты 40% от заказа. Качественный хостинг для вашего сайта. Подробнее...
Взлом НТВ+ с помощью распределённых вычислений
15.2 Создание и
сохранение проекта
1. Организация каталогов проекта
Разговор о создании нового проекта начнем с одного важного совета: заведите себе
за правило отводить для каждого нового проекта новый подкаталог (папку Windows).
Удобная структура каталогов существенно облегчает работу над проектами.
Связан этот совет с тем, что если помещать несколько проектов в один каталог, то
и вы, и, возможно, Delphi скоро запутаетесь в том, какие файлы к какому проекту
относятся. Размещение проектов в разных каталогах избавит вас в дальнейшем от
многих неприятностей.
Если у вас возникает несколько вариантов выполнения проекта, а обычно так и
бывает, то желательно внутри каталога проекта создавать подкаталоги для каждого
варианта. Удобная структура каталогов существенно облегчает работу над
серьезными проектами.
Новый каталог вы можете создать средствами Windows перед началом проекта, или
создавать его можно в окне стандартного диалога сохранения файлов с помощью
соответствующей быстрой кнопки.
2. Создание нового проекта
Начать новый проект можно несколькими способами. Один уже рассматривался выше:
команда File | New | Application в Delphi 7 и 6, или команда File | New
Application в Delphi 5 и 4. Еще один путь — команды File | New | Other в Delphi
7 и 6 (File | New в более ранних версиях) или соответствующая ей быстрая кнопка.
При выборе этой команды открывается окно New Items (новые элементы), показанное
на рис.12.
рисунок 13
Это
окно является витриной Депозитария объектов (Object Repository) — хранилища
образцов компонентов, форм, фреймов и проектов. Вы можете и сами создавать
какие-то свои формы, компоненты, фреймы, проекты и включать их в Депозитарий. На
протяжении этой книги мы еще не раз будем обращаться к этому многостраничному
окну.
В данном случае мы хотим открыть новый проект. Это можно сделать, щелкнув на
пиктограмме Application (приложение), расположенной на странице New (новый).
Пиктограмма Application создает уже привычное вам приложение с пустой формой. Вы
можете также воспользоваться и некоторыми другими вариантами положений,
пиктограммы которых расположены на странице Projects.
Чтобы получить пояснения по содержащимся в Депозитарии объектам, можно щёлкнуть
в окне правой кнопкой мыши и из всплывшего меню выбрать форму отображения View
Details (подробности). Форма отображения изменится, и вы сможете увидеть краткие
пояснения предлагаемых вам вариантов.
Проекты, выбираемые на этой странице, включают в себя уже не просто пустые
формы. Например, щелкнув на Win2000 Logo Application, вы создаёте приложение с
формой. Это почти готовый текстовый редактор, который вы можете, конечно, как
угодно перерабатывать, добавлять новые функции, переводить надписи на русский
язык и т.д. Пиктограмма MDI Application создаст вам многооконный текстовый
редактор, в котором реализованы все стандартные функции подобных приложений MDI
(приложений с множеством документов типа Word, Excel и т.п.). Выбрав пиктограмму
Application Wizard, вы попадёте под опеку одного из Мастеров (Wizard) Delphi,
который проведет вас через ряд диалоговых окон. Отвечая на их вопросы, вы
сможете создать приложение с меню, инструментальной панелью, диалогами и т.д. Вы
сможете указать, какие меню вам нужны, задать шаблоны файлов, используемые в
диалогах открытия и сохранения файлов, сформировать по своему желанию
инструментальную панель. В результате вы получите форму, сгенерированную
Мастером Приложений.
Всё это, конечно, прекрасно. Возможность пользоваться Мастером Приложения или
готовыми проектами из Депозитария выглядит, безусловно, привлекательно. Но я бы
не советовал увлекаться этими возможностями. Приложение, создаваемое Мастером
Application Wizard, выполнено по очень устаревшей технологии, напоминающей то,
что создавалось в Delphi 3. В нем нет диспетчеризации действий, о которой вы
узнаете в следующих уроках, в силу этого не используются стандартные события, не
используется перехват событий приложения компонентом ApplicationEvents,
пиктограммы на инструментальной панели далеки от привычных. Вы очень скоро
научитесь делать собственные приложения на гораздо более высоком уровне. И
времени это будет занимать у вас не больше, чем ответы на вопросы Мастера.
Другие готовые приложения в Депозитарии более современны. Но дело даже не в том,
что Мастера Delphi отстают от возможностей последних версий Delphi. Пользуясь не
пустыми эскизами приложений и форм, вы всегда рискуете, что в них окажутся
какие-то, не замеченные вами особенности, которые не позволят приложению
работать так, как вам хотелось бы. К тому же, приложение будет выглядеть
стандартным, лишенным индивидуальности. Когда вы освоитесь с Delphi, лучше все
приложение делать самому, начиная с пустой формы. А проекты из Депозитария, так
же как и примеры, поставляемые с Delphi, полезно посмотреть, изучить,
опробовать, перенести какие-то приемы программирования в свои приложения, но не
более того.
3. Сохранение проекта, его повторное открывание
После того, кок вы создали приложение с пустой формой, сразу сохраните его в
нужном каталоге. И в течение работы над проектом почаще выполняйте сохранение.
Если вы начинаете работу с того, что сохраняете проект, и в дальнейшем регулярно
повторяете сохранение, вы можете не опасаться любых неожиданностей типа сбоя
компьютера или Delphi, вызванных техническими причинами или недопустимыми
действиями вашего собственного еще не отлаженного приложения при его запуске
:-). Но есть и еще аргумент в пользу немедленного сохранения проекта и модулей.
В многооконных приложениях, которые будут рассмотрены значительно позднее, это
позволяет сразу задать модулям имена, которые будут использоваться в программе
для взаимных ссылок модулей друг на друга. Если вы не выполнили сразу сохранение
формы, то вынуждены сначала ссылаться на ее имя по умолчанию, а в дальнейшем
изменять эти ссылки.
Сохранить проект можно командой File | Save All. Удобно также использовать
соответствующую быструю кнопку. При первом сохранении Delphi спросит у вас имя
файла сохраняемого модуля, а затем — имя файла проекта. Тут надо иметь в виду,
что Delphi не допускает одинаковых имен модулей и проектов. Поэтому задаваемые
вами имена файлов должны быть разными. Всегда при сохранении проектов и модулей
задавайте осмысленные имена файлов.
Почему не стоит соглашаться при сохранении с именами, предлагаемыми Delphi по
умолчанию — Project 1, Unit1 и т.п.? Во-первых, имя файла проекта будет в
дальнейшем именем вашего выполняемого модуля. Наверное, не очень хорошо будет
отдавать заказчику проект с таким странных названием, как Project1.
Во-вторых, имя файла модуля будет и именем самого модуля. В проекте с одним
модулем имя Unit1, возможно, не так уж и страшно. Но если у вас в проекте будет
несколько модулей, то вряд ли вам будет удобно все время помнить, что такое
Unit1, а что такое Unit5. Кроме того, представьте себе, что вы на некоторое
время прекратили работу над своими проектами, а потом опять ее возобновили. Или
сопровождение ваших проектов осуществляется не вами, а кем-то другим. Вы
уверены, что легко будет разобраться в многочисленных Project1 и Unit1
непонятного назначения.
Рекомендации по созданию нового проекта сводятся к следующему:
- Создайте новый каталог для своего нового проекта.
- Создайте новый проект командой File | New | Application.
- Сразу сохраните проект и файл модуля командой File | Save All.
Имеется удобный способ автоматически открывать при загрузке Delphi тот проект,
над которым вы работали последний раз. Для этого надо выполнить команду Tools |
Environment Options. В открывшемся многостраничном окне надо перейти на страницу
Preferences и включить индикатор Desktop группы опций автосохранения Autosave
options. Вы можете сохранить свой проект в Депозитарии.
4. Менеджер проектов
В управлении проектом существенную помощь может оказать Менеджер Проектов —
Project Manager. Он является не только и не столько инструментом управления
проектом, сколько инструментом работы с группами проектов. Группа проектов — это
группа родственных проектов, с которыми удобно работать параллельно Например,
это могут быть проекты клиента и сервера, обменивающихся какой-то информацией,
или проект, создающий библиотеку DLL, и проект, использующий ее.
Открывается Менеджер Проектов командой View | Project Manager. Если в данный
момент нет открытого проекта, то в окне Менеджера Проектов будет написано <No
Project Group>. Если же какой-то проект открыт, то формируется группа с именем
по умолчанию ProjectGroup1, содержащая только один открытый проект. В окне виден
состав проекта в виде иерархического дерева. Двойной щелчок на вершине,
связанной с текстом модуля или формой, открывает соответственно текст модуля в
окне Редактора Кода или форму. Так что из окна Менеджера Проектов очень Удобно
осуществлять навигацию по сложным проектам с множеством модулей и форм.
Кнопка New позволяет включить в группу новый проект. Действие кнопки Remove
(удалить) зависит от того, какая вершина выделена в окне Менеджера Проекта. Если
выделена вершина проекта, то из группы удаляется проект. Если выделена вершина
модуля или его текста, то удаляется данный модуль. Впрочем, модуль из проекта вы
можете также удалить, если выделите интересующий вас модуль и щелкнете правой
кнопкой мыши. Во всплывшем меню будут разделы Open (открыть), Remove From
Project (удалить из проекта), Save (сохранить), Save As (сохранить как) и ряд
других. Удаление выделенного модуля происходит также просто при нажатии клавиши
Delete.
Если вы выделите в окне не модуль, а проект — имя файла .exe, и щелкнете правой
кнопкой мыши, то всплывет уже другое мепю, в котором будут, в частности, разделы
Add (добавить новую форму или модуль), Remove File (удалить файл — появится
диалоговое окно, в котором вы можете выбрать удаляемый модуль), Save (сохранить
проект), Options (вызов окна опций выделенного проекту) и ряд других.
Добавить в группу еще один проект можно двумя способами. Если вы хотите добавить
новый проект, вы можете щелкнуть на кнопке New, или выделить в окне имя группы
проектов, щелкнуть правой кнопкой мыши и выбрать из всплывшего меню раздел Add
New Project (добавить новый проект). Вы попадёте в уже рассмотренное нами окно
Депозитария и можете выбрать в нём вид открываемого проекта, в частности,
Application – новый проект с пустой формой.
Если же вы хотите добавить в группу один из разработанных вами ранее проектов,
то, выделив в окне имя группы проектов и щелкнув правой кнопкой мыши, надо
выбрать из всплывшего меню раздел Add Existing Project (добавить существующий
проект). Далее в обычном окне открытия файла вы можете указать добавляемый файл
проекта .dpr.
При добавлении в группу нового проекта в окне Менеджера Проектов будет
отображаться уже информация о всех проектах группы. Вы можете сохранить файл
вашей группы, если выполните команду File I Save As или если выделите в окне
Менеджера Проектов имя группы, щёлкнете правой кнопкой мыши и из всплывшего меню
выберете команду Save Project Group As. Группа проектов сохраняется в файле с
расширением .bpg. В дальнейших сеансах работы вы можете открыть этот файл той же
командой File | Open Project или File | Reopen, которой вы открываете проект.
Окно Менеджера Проектов — встраиваемое, так что вы можете встроить его в окно
Инспектора Объектов, и оно не будет занимать на экране лишнего места.
Объединение нескольких проектов в группу дает нам возможность работать
параллельно работать над всеми проектами группы, открыв их модули в окне
Редактора Кода. Можно одновременно выполнять и отлаживать несколько проектов
одной группы. Для этого зачала надо выполнить компиляцию всех проектов командой
Project | Compile All Project. В Windows 95\98 такая параллельная отладка
нескольких проектов невозможна.
5. Планирование работ — список To-Do List
Список To-Do List, появившийся начиная с Delphi 5, представляет собой запись тех
текущих задач, которые надо решить при разработке проекта. Эти задачи могут
заноситься в список непосредственно или передаваться в него из кода ваших
модулей. Ведение списка облегчает планирование работ, позволяет ранжировать
задачи, отслеживать очередность и своевременность их решения.
Список может быть создан для каждого проекта и хранится в файле с расширением .todo.
Посмотреть список To-Do List, связанный с текущим проектом, можно командой View
| To-Do List. Команда контекстного меню Add позволяет добавлять задачи
непосредственно в список. Добавление задачи в файл модуля или проекта
осуществляется из окна Редактора Кода. Откройте в нем требуемый файл, в нужном
вам месте кода щелкните правой кнопкой мыши и выберите из всплывшего меню
команду Add To-Do Item. Вы попадете в то же диалоговое окно, что и при
выполнении команды Add и сможете в нем указать все атрибуты задачи. В результате
задача не только включится в список, но оператор, соответствующий ей, включится
в код. Впрочем, вы можете не использовать меню, а просто записать в коде
соответствующий оператор. Синтаксис этого оператора следующий:
{TODO | DONE [n] (-о<ответственный>) [-с<класс>] : <текст>}
Весь оператор заключается в фигурные скобки. Регистр при записи оператора не
учитывается. Ключевое слово TODO используется для незавершенных задач. Если
задача выполнена, это слово заменяется на DONE. Обязательными элементами
оператора являются только ключевое слово и текст. Все остальные опции могут
отсутствовать.
Значение опции n указывает приоритет задачи. Опция -о указывает ответственного
за решение данной задачи. Опция -с устанавливает класс задачи.
Например, оператор
{ TODO 2 -оСидоров С.С. -скод: Главное меню }
задает задачу с именем «Главная форма», класса «Прототип» с приоритетом 2, за
которую отвечает Сидоров С.С.
Введенные в текст операторы отображаются в окне списка и автоматически
изменяются при работе со списком (например, при включении индикатора выполнения
ключевое слово TODO автоматически заменяется на DONE).
6. Завершение проекта, задание учетной информации
На заключительной стадии проектирования, когда основные задачи разработки уже
решены, необходимо провести ряд работ по оформлению вашего приложения:
- Разработать для вашего проекта файл справки
- Установить опции заключительной компиляции, обеспечивающие оптимизацию вашего
загрузочного модуля.
- Решить, будете ли вы распространять ваше приложение как автономный модуль, или
будете использовать поддержку пакетов времени выполнения. В зависимости от этого
надо провести заключительную компиляцию модуля.
- Задать учетную информацию о версии вашего программного продукта
- Продумать вопрос об установке приложения на компьютерах пользователей.
Возможно, что для этого потребуется создать специальную программу установки.
- Если вы надеетесь на распространение вашего приложения за рубежом (в том числе
и в ближнем зарубежье), то необходимо решить задачу интернационализации вашей
программы.
Большинство этих задач, как указано в приведенном выше перечне, будут
рассмотрены в последующих уроках. А пока остановимся только на одной задаче —
задании в приложении положенной информации о версии продукта, его назначении и
т.п. Такая информация должна быть включена в любой программный продукт,
распространяемый среди пользователей. Впрочем, и для самого себя полезно
указывать подобную информацию, чтобы не запутаться в многочисленных
версиях разрабатываемого приложения.
Для задания или просмотра этой информации надо выполнить команду Project |
Options и в открывшемся окне опций проекта перейти на страницу Version Info.
Указанная на данной странице информация заносится в выполняемый файл и
становится доступна пользователю, когда он, работая в Windows, щелкает правой
кнопкой мыши на пиктограмме вашего приложения и выбирает команду Свойства. Тогда
в открывшемся диалоговом окне на странице Версия пользователь может увидеть
информацию о вашем приложении.
Основная опция страницы Version Info окна опций проекта — Include version
mforinotior.. Если она не установлена, то все окна страницы доступны только для
чтения. Это позволяет просто посмотреть информацию о версии вашего прошлого
приложения, если, конечно, вы позаботились о том, чтобы ввести ее в приложение.
Если же вы установите опцию Include version information, то все окна страницы
станут доступны для ввода информации.
Окна группы Module Version Number позволяют вам задать номер версии, состоящий
из четырех цифр, разделенных точками. Индикатор Auto-increment build number
позволяет автоматизировать изменение последней из этих цифр. Если вы включили
этот индикатор, последняя цифра будет увеличиваться на единицу каждый раз, когда
вы будете выполнять команду Project | Build All. При других командах компиляции
цифра изменяться не будет.
Группа индикаторов Module Attributes указывает назначение версии. Эти индикаторы
можно заполнять для себя в чисто информационных целях, например: Debug Build —
отладка, Pre-Release — версия не для коммерческого использования, DLL — проект
DLL, Special Build — версия получена в стандартном режиме компиляции, Private
Build — версия построена не в стандартном режиме компиляции.
Окно Language указывает кодовую страницу системы пользователя, которая нужна для
запуска приложения, т.е. указывает язык. Окно Language заполняется автоматически
в зависимости от установленной в системе кодовой страницы.
Список Key/Value включает в себя стандартные сведения о программном продукте:
CompanyName (Производитель), FileDescription (Описание), FileVersion (Версия
продукта), InternalNome (Внутреннее имя), LegalCopyright (Авторские права),
LegalTrademarks (Товарные знаки), OriginalFilename (Исходное имя файла),
ProductName (Название продукта), ProductVersion (Версия продукта). Comments
(Комментарий).
Сайт рассылки http://mydelphi7.narod.ru, на котором есть архив рассылки, также гостевая книга, переводчик.
Копировать, размещать, продавать представленную информацию запрещается.
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||