21-09-2017

Структура проекта Lazarus

Интерфейсы программ Delphi и Lazarus во многом очень похожи, поэтому все примеры (как среда разработчика, так и программный код) будут даваться в системе Delphi (версия 7). Среда Lazarus имеет некоторые недостатки при написа- нии программного кода о которых будет сообщаться по мере изучения предмета. Интерфейсные элементы среды разработ- чика лучше всего рассматривать, если создать новый проект. Для этого в основ- ном меню следует выбрать пункт "File" и в списке выбрать опцию "New Application". Среда разработчика на Delphi должна принять вид, показанный на рисунке.

Любой проект в Lazarus—это совокупность файлов, из которых создаётся единый выполняемый файл. В простейшем случае список файлов проекта имеет вид:

 файл описания проекта (.lpi);
 файл проекта(.lpr);
 файл ресурсов(.lrs);
 модуль формы(.lfm);
 программный модуль(.pas);

После компиляции программы из всех файлов проекта создаётся единый вы- полняемый файл с расширением .exe, имя этого файла совпадает с именем проекта.

Программный модуль, или просто модуль — это отдельно компилируемая про- граммная единица, которая представляет собой набор типов данных, констант, переменных, процедур и функций. Любой модуль имеет следующую структуру: unit имя_модуля; // Заголовокмодуля.

interface // Разделописаний.

implementation // Разделреализаций.

end. // Конецмодуля.

Заголовок модуля — это зарезервированное слово unit, за которым следует имя модуля и точка с запятой. В разделе описаний, который открывается слу- жебным словом interface, описывают программные элементы — типы, классы, процедуры и функции:

interface
 uses список_модулей;
 type список_типов;
 const список_констант;
 var список_переменных;
 procedure имя_процедуры;
 ...
 function имя_функции;
 ...

Раздел implementation содержит программный код, реализующий механизм ра- боты описанных программных элементов (текстыпроцедур обработки событий, процедуры и функции, созданные программистом). Процедуры ифункции в Laza- rus так ж епостроены по модульному принципу.

Размер исполняемого файла в Lazarus.

В Lazarus если добавить пакет или поместить на форму компонент из не стандартного пакета, то автоматически в файл (.lpr) добавятся модули данного проекта. По умолчанию файл lpr не открыт если вы хотите отредактировать данный файл его необходимо сначала открыть (меню Проект/Просмотреть исходный файл проекта).

Необходимыми модулями являются interface,forms и модуль вашей формы все остальные можете (если конечно они вами не используются непосредственно в lpr) удалять. Смотрите ниже пример стандартного файла проекта с одной формой.

program Project1;

{$mode objfpc}{$H+}

uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, Unit1, LResources
{ you can add units after this };

{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}

begin
{$I project1.lrs}
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

Этим вы можете сэкономить до нескольких мегабайтов если вы используете большие пакеты, такие как GLScene.

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

Как можно конвертировать Делфи > Lazarus так:

  1. Убедиться в том, что в файлах .dfm текстовые константы (кириллица) представлены символами, а не кодами (т.е. не так: Caption = #1055#1088#1080#1074#1077#1090', '#1087#1088#1080#1074#1077#1090' !', а так: Caption = 'Привет, привет !'). Для раскодирования могут помочь такие действия в среде Делфи 7:
    • Меню | Project | Add to project - добавить соответствующий файл .pas
    • Меню | Project | Add to project - добавить соответствующий файл .dfm
    • В файле .dfm русские тексты должны читаться нормально
    • В этом файле удалить какой-нибудь пробел и вставить снова (т е симулировать изменение файла)
    • Сохранить файл .
    • Просмотром в блокноте убедиться, что числа типа #1055 раскодированы в русские буквы .
  2. Копируйте в отдельную папку файлы .dpr, *.pas, *.dfm (остальные не нужны).
  3. Переименуйте .dpr файл в *.lpr.
  4. Сделайте необходимые изменения в .dpr файле (который теперь .lpr) (используйте любой текстовый редактор, например Блокнот):
    1. Добавьте {$mode delphi} {$H+} или (предпочтительнее:) {$mode objfpc} {$H+} директивы компилятора (поставьте это второй строкой)
    2. Добавьте 'Interfaces' в предложение uses
    3. Удалите {$R *.res}. Сохраните этот файл
  5. Запустите Лазарус, закройте проекты и файлы (если есть открытые, т е в меню Файл щелкните пункты Закрыть и Закрыть все файлы редактора. В итоге они должны быть недоступны (серые такие))
  6. В меню выберите: Меню-Проект-Создать проект из файла
  7. В окошке "Выберите исходник..." откройте Ваш .lpr-файл. На вопрос "Сохранить изменения? (в прежнем проекте)" - Нет
  8. В окошке "Создать новый проект" выберите "Приложение", щелкните кнопку "Создать"
  9. Сохраните всё (или кнопкой "Сохранить всё" или меню-файл-сохранить всё или Shift-Ctrl-S). Это обязательно, иначе следующий пункт не работает.
  10. Преобразуйте модули. Для каждого модуля:
    • Меню-Инструменты-Преобразовать модуль Делфи в Лазарус. Выберите и откройте .pas файл.
    • Когда текст файла .pas появится в окне редактора - добавить Buttons в предложение uses (если на форме есть buttons)
    • Правый щелчок в окне редактора, выбрать: Open .lfm
    • В тексте .lfm удалить строку OldCreateOrder = False
    • Перейти в окне редактора на закладку где файл модуля (.pas)
    • Меню-Проект-Добавить файл редактора к проекту. Подтвердить (Да)
  11. Собрать проект (Ctrl-F9 или Меню-Запуск-Сборка) (этот пункт можно пропустить)
  12. Запустить проект (F9 или Меню-Запуск-Запуск)
  13. Полезно заглядывать в окошко сообщений: там могут быть предупреждения и сообщения об ошибках и об излишних модулях в предложениях uses
  14. Возможно, придется подправить внешний вид форм. Это делается как и в Делфи
  15. Как и в Делфи, проект можно (и нужно) сохранять
  16. Можно уменьшить размер исполняемого (.exe) файла.

Рекомендуем в повседневной деятельности:

Скачать - инструкцию по созданию загрузочной флешки = 50,02мин. 20.04.2014г.
Скачать - правила получение аттестата Webmoney  (30.61 MB) = 7. 5 мин. 11.01.2013г.
Скачать ссылки на каталоги - для регистрации сайта (69.5 MB) = 9. 7 мин. 01.10.2013г.
Скачать - wifi router настройка модема (41.72 MB) = 7 мин. 46 сек. 26.01.2013г.
Скачать - TDSSKiller диагностика, лечение систем (24,71 MB) = 6,02 мин. 01.12.2012г.
Скачать - пример готового проэкта в Lazarus (91,59 MB) = 1,31мин. 08.04.2013г.
Скачать - правила установки MySQL в Lazarus (20,17 MB) = 4,55 мин. 25.02.2013г.
Класс!
Яндекс.Метрика
Копирование возможно при указании прямой индексируемой гиперссылки
п»ї