Lazarus: Преобразование проектов Delhi и Kilix в проекты Lazarus
Описание для версии Лазарус 09.22 бета.
( Говорят, в новых версиях преобразовывать проще :-)
Описаны (http://wiki.lazarus.freepascal.org/Code_Conversion_Guide) 2 метода
конвертирования Делфи7-проектов для использования в Lazarus - Free Pascal.
Похоже, что проще всего конвертировать Делфи->Lazarus так:
- Убедиться в том, что в файлах .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 раскодированы в русские буквы .
- Копируйте в отдельную папку файлы .dpr, *.pas, *.dfm, .res (остальные не нужны).
- Переименуйте .dpr файл в *.lpr.
- Сделайте необходимые изменения в .dpr файле (который теперь .lpr) (используйте любой текстовый редактор, например Блокнот):
- Добавьте {$mode delphi} {$H+} или (предпочтительнее:) {$mode objfpc} {$H+} директивы компилятора
(поставьте это второй строкой)
- Добавьте 'Interfaces' в предложение uses
- Удалите {$R *.res}. Сохраните этот файл
- Запустите Лазарус, закройте проекты и файлы (если есть открытые, т е в меню Файл щелкните пункты Закрыть и Закрыть все файлы редактора. В итоге они должны быть недоступны (серые такие))
- В меню выберите: Меню-Проект-Создать проект из файла
- В окошке "Выберите исходник..." откройте Ваш .lpr-файл.
На вопрос "Сохранить изменения? (в прежнем проекте)" - Нет
- В окошке "Создать новый проект" выберите "Приложение", щелкните кнопку "Создать"
- Сохраните всё (или кнопкой "Сохранить всё" или меню-файл-сохранить всё или Shift-Ctrl-S).
Это обязательно, иначе следующий пункт не работает. На предложение добавить Interfaces
отвечайте Да.
- Преобразуйте модули. Для каждого модуля:
- Меню-Инструменты-Преобразовать модуль Делфи в Лазарус. Выберите и откройте .pas файл.
- Когда текст файла .pas появится в окне редактора - добавить Buttons в предложение uses
(если на форме есть buttons)
- Правый щелчок в окне редактора, выбрать: Open .lfm (Если у модуля есть форма => .lfm )
- В тексте .lfm удалить строку OldCreateOrder = False
- Перейти в окне редактора на закладку где файл модуля (.pas)
- Меню-Проект-Добавить файл редактора к проекту. Подтвердить (Да)
- Собрать проект (Ctrl-F9 или Меню-Запуск-Сборка) (этот пункт можно пропустить)
- Запустить проект (F9 или Меню-Запуск-Запуск)
- Полезно заглядывать в окошко сообщений: там могут быть предупреждения и сообщения об ошибках и об излишних модулях в предложениях uses
- Возможно, придется подправить внешний вид форм. Это делается как и в Делфи
- Как и в Делфи, проект можно (и нужно) сохранять
- Можно уменьшить размер исполняемого (.exe) файла - как описано
здесь.
Можно действовать немного иначе:
- Выполните пункты 1,2 предыдущего плана
- Далее выполните пункт 5
- В меню: Инструменты | Преобразовать проект Делфи в проект Лазарус -
открыть Ваш файл .dpr (На запрос: Прежний проект сохранить - не сохранять)
- Выполните пункты 6-10
- Выполните пункты: 4, а затем 11-16 предыдущего плана
К сожалению, при сообщениях об ошибках иногда приходится редактировать текст файла .lfm
а этого не должно быть.
На рисунке сравнивается вид проекта, полученного из Делфи-7 проекта описанным преобразованием и проекта, полученного в среде Lazarus 0.9.28.2 непосредственно сборкой из палитры компонентов.