Опубликован: 25.06.2014 | Уровень: для всех | Доступ: платный | ВУЗ: Учебный центр "ANIT Texno Inform"
Лекция 2:

Анатомия проекта

< Лекция 1 || Лекция 2: 12 || Лекция 3 >

Из чего состоит проект

Мы то и дело повторяем слово "Проект". В первой лекции мы говорили, что проект - это набор связанных файлов различного типа, из которых, в конце концов, после компиляции, получается программа.

Из каких же файлов состоит проект?

Выберите команду Главного меню "Сервис -> Параметры", и в ветке "Окружение" перейдите на раздел "Файловые фильтры". Вы увидите 6 основных типов файлов, которые могут встречаться в проекте:

  • Модуль Lazarus (*.pas;*.pp)
  • Проект Lazarus (*.lpi)
  • Форма Lazarus или Delphi (*.lfm;*.dfm)
  • Пакет Lazarus (*.lpk)
  • Исходный код проекта Lazarus (*.lpr)
  • Иной файл Lazarus (*.inc;*.lrs;*.lpl)

Если мы перейдем в папку с нашим проектом, то увидим, что он состоит из восьми файлов:

  • project1.exe (Исполняемый файл программы).
  • project1.ico (Файл с "иконкой" проекта - изображением в виде лапы гепарда, которое появляется в верхнем левом углу окна программы).
  • project1.lpi (Информационный файл проекта). Если вы желаете открыть данный проект в Lazarus, то запускать нужно именно этот, информационный файл.
  • project1.lpr (Исходный файл проекта). Запуск этого файла также приведет к запуску Lazarus с загрузкой данного проекта.
  • project1.lps (Конфигурация проекта в виде xml-кода)
  • project1.res (Файл ресурсов, используемых в проекте)
  • unit1.lfm (Файл формы модуля. В нем в текстовом виде отображены настройки всех компонентов, используемых в модуле. Редактировать этот файл в ручную настоятельно не рекомендуется, для редактирования этих данных нужно использовать Редактор форм).
  • unit1.pas (Исходный код модуля на языке Object Pascal).

Файлы с именем project1 - это файлы всего проекта в целом, файлы с именем unit1 - это файлы модуля.

Модуль> - это отдельная единица исходного кода, выполненная в виде файла с расширением *.pas. Совокупность таких единиц составляет программу.

Когда мы создаем окно, то для него создается два файла: модуль - файл *.pas с исходным кодом, и файл *.lfm, в котором содержатся настройки используемых на форме компонентов. Текст модуля мы можем видеть в Редакторе кода. Однако модуль не всегда имеет окно, это может быть и просто текстовый файл с исходным кодом. О модулях и их разделах мы поговорим подробней в одной из следующих лекций. В нашем проекте всего один модуль, но вообще их может быть сколько угодно. И каждый модуль будет представлен этой парой файлов.

Кроме того, в папке проекта находится папка lib, в которой располагаются подключаемые к проекту данные и информация о компиляции. Если же вы изменяли проект, и сохраняли эти изменения, то появится также папка backup, в которой будут храниться резервные копии старых вариантов проекта.

Нередко программист добавляет в проект и свои типы файлов. Например, в проекте можно использовать базу данных, какой-нибудь текстовый файл или ini-файл для сохранения пользовательских настроек. Разумно располагать эти файлы также в папке с проектом.

Теперь пару советов по поводу наименования проекта и модулей. Проект следует называть так, как мы хотим, чтобы называлась наша программа. Например, проекту из первой лекции было бы уместней дать имя "Hello" вместо нейтрального "project1".

Модули же нужно называть, исходя из их значения. Всегда в проекте есть главный модуль. В наших проектах пока что было по одному окну. Модуль, созданный для этого окна, и будет главным. В учебной литературе есть множество рекомендаций, как обозначать модули, остановимся на одной из них. Давайте договоримся в будущем главный модуль называть Main (англ. main - главный), а другим модулям давать смысловые названия, например, Options, Editor и т.п. Форму этого модуля (точнее, свойство Name формы) будем называть также, но с приставкой f-, обозначающей форму. То есть, fMain, fOptions, fEditor и так далее. Закрепим этот материал на практике.

Откройте Lazarus, если он у вас закрыт, или закройте старый проект и начните новый. В данный момент в Редакторе форм у нас пустая форма, в заголовке которой написано Form1 - это имя формы по умолчанию. Мы договорились называть главный модуль Main, а его форме добавлять приставку f-. В Инспекторе объектов найдите свойство Name, и вместо Form1 впишите туда fMain. Как только вы нажмете <Enter>, заголовок формы изменится на новый. Теперь сохраним проект и модуль главной формы. Нажмите кнопку "Сохранить все" на Панели инструментов, или выберите команду Главного меню "Файл -> Сохранить все".

В запросе вместо имени проекта project1 укажите новое имя Hello, не забывайте, что мы договорились сохранять проекты в папки с именем по номеру лекции, и номеру проекта в ней. В нашем примере это будет

C:\Education\02-02\

Как только вы нажмете кнопку "Сохранить", выйдет запрос на сохранение главного модуля. Форму мы назвали fMain, значит, модулю дадим название просто Main. В Lazarus строчные и заглавные буквы не различаются, однако для удобочитаемости кода лучше приучиться использовать заглавные буквы, чтобы выделять названия. Например, FileEdit, SaveAll и т.п.

В свойстве Caption формы впишем слово "Приветствие" (разумеется, без кавычек), это будет более понятным заголовком для окна. Не забывайте после ввода новых значений свойств в Инспекторе объектов нажимать <Enter>, чтобы изменения вступили в силу. Теперь установим на форму компонент TLabel (метку), который позволит выводить на форме текст. Компонент находится на вкладке Standard:

Метка TLabel

Рис. 2.4. Метка TLabel
Подсказка: если подвести указатель мыши к компоненту и какое то время не нажимать кнопку, выйдет всплывающая подсказка с именем компонента.

Щелкните мышкой по метке, затем по форме, в верхней части окна. Поскольку метка у нас одна, то можно оставить ей имя (свойство Name) по умолчанию - Label1. А вот в свойстве Caption метки напишите:

Как вас зовут?

Ниже метки поместите компонент TEdit - редактируемое текстовое поле, в котором пользователь сможет написать что-то:

Текстовое поле TEdit

Рис. 2.5. Текстовое поле TEdit

У этого компонента свойство Name также оставим по умолчанию - Edit1. Как вы можете заметить, у этого компонента свойства Caption нет, зато появилось свойство Text - именно тут и содержится текст, отображенный в поле. По умолчанию, он совпадает с именем компонента. Просто очистим это свойство, удалив из него старый текст (не забывайте про <Enter>).

Еще ниже установим кнопку TButton. Оставим ее имя по умолчанию, а в свойстве Caption напишем

Выполнить

Изменим положение и размеры компонентов и самой формы так, чтобы форма приняла примерно такой вид:

Окончательный вид главной формы

Рис. 2.6. Окончательный вид главной формы

Теперь запрограммируем нажатие кнопки. Щелкните по ней дважды, чтобы сгенерировалось событие, и автоматически открылся Редактор кода. В месте, где мигает курсор, впишем следующий код:

ShowMessage('Привет, ' + Edit1.Text + '!');
    

Редактор кода должен выглядеть так:

Введенный код

увеличить изображение
Рис. 2.7. Введенный код

Сохраните проект и запустите его. Когда программа загрузится, впишите в окне Edit1 свое имя и нажмите кнопку "Выполнить". Вы должны получить примерно такой результат:

Программа Hello.exe в действии

Рис. 2.8. Программа Hello.exe в действии

Вы можете сколько угодно раз менять имя в текстовом поле и снова нажимать кнопку "Выполнить", получая приветствие уже с другим текстом. У нас получилась настоящая интерактивная программа, то есть, программа, взаимодействующая с пользователем.

В дальнейших лекциях мы не будем так подробно останавливаться на том, как сохранять проект или модуль, ограничиваясь кратким

Сохраните проект под именем …

Как и куда сохранять проект, вы уже должны знать.

< Лекция 1 || Лекция 2: 12 || Лекция 3 >
Инга Готфрид
Инга Готфрид
Александр Скрябнев
Александр Скрябнев

Через WMI, или используя утилиту wmic? А может есть еще какие более простые пути...