Здравствуйте !
for ii:=1 to 10 do "Спасибо !"
1. Максиму: спасибо! Преобразование проекта Делфи7 -> Lazarus:
* Заменить в Делфи-проекте кириллицу латиницей или перекодировать в UTF-8 (Этот вопрос отложен )
* Копируйте в отдельную папку файлы .dpr, *.pas, *.dfm (остальные не нужны).
* Переименуйте .dpr файл в *.lpr.
* Сделайте необходимые изменения в .dpr файле (который теперь .lpr) (используйте любой текстовый редактор,
например Блокнот):
1. Добавьте {$mode delphi}{$H+} или (предпочтительнее:) {$mode objfpc}{H+} директивы компилятора
(поставьте это второй строкой)
2. Добавьте 'Interfaces' в предложение uses
3. Удалите {$R *.res}. Сохраните этот файл
* Запустите Лазарус, закройте проекты и файлы (если есть открытые, т е в меню Файл щелкните пункты Закрыть
и Закрыть все файлы редактора. В итоге они должны быть недоступны (серые такие))
* В меню выберите: Меню-Проект-Создать проект из файла
* В окошке "Выберите исходник..." откройте Ваш .lpr-файл. На вопрос "Сохранить изменения?" - Нет
* В окошке "Создать новый проект" выберите "Приложение", щелкните кнопку "Создать"
* Сохраните всё (или кнопкой "Сохранить всё" или меню-файл-сохранить всё или Shift-Ctrl-S). Это
обязательно, иначе следующий пункт не работает.
* Преобразуйте модули. Для каждого модуля:
o Меню-Инструменты-Преобразовать модуль Делфи в Лазарус
o Когда текст файла .pas появится в окне редактора - добавить Buttons в предложение uses
o Правый щелчок в окне редактора, выбрать: Open .lfm
o В тексте .lfm удалить строку OldCreateOrder = False
o Перейти в окне редактора на закладку где файл модуля (.pas)
o Меню-Проект-Добавить файл редактора к проекту. Подтвердить (Да)
* Собрать проект (Ctrl-F9 или Меню-Запуск-Сборка)
* Запустить проект (F9 или Меню-Запуск-Запуск)
* Можно уменьшить размер исполняемого (.exe) файла - как описано здесь.
( Это я подробно описал на своем сайте:
http://win-ni.ru/uceb/FPC/preobr.php. Взято из
http://wiki.lazarus.freepascal.org/Code ... sion_Guide, немного уточнил.)
Свойства объектов (.Caption и т п) установлены в инспекторе. Удалось избавиться от сохранения их в виде '
'#1042#1099#1095#1080#1089#1083#1103#1077#1084' Ln(2) '. Вероятно, это было связано с моей привычкой
устанавливать Font.CharSet = RUSSIAN_CHARSET (на случай ненастроенной Windows). Перешел на Font.CharSet =
DEFAULT_CHARSET (для всех установленных на форме компонентов) и получил русский текст
![Smile :-)](./images/smilies/icon_smile.gif)
). Теперь можно
перкодировать *.dfm в UTF-8.
2. To LevelZero: Спасибо! Действительно, забыл про AkelPad. И он действительно, преобразует нормально, хотя
ведет себя странно: преобразует и сохраняет даже когда не просишь, но к этому можно привыкнуть.
3. To v-t-l: Спасибо! Это должно работать, сейчас займусь... Работает, и я для себя причесал это так
(немного удобнее):
program win1251_UTF_8;
var
f1, f2: Text;
s: string;
begin
if paramcount<2 then
begin
writeln('Usage: win1251_UTF_8 infile outfile');
readln; halt(1);
end;
Assign(f1, ParamStr(1));
Reset(f1);
Assign(f2, ParamStr(2));
Rewrite(f2);
while not EOF(f1) do
begin
ReadLn(f1, s);
WriteLn(f2, AnsiToUtf8(s));
end;
Close(f1); Close(f2);
end.
4. Этой программой (win1251_UTF_8 - 15Кб после сжатия) пребразовал .pas .dfm. в UTF-8. После этого проект без
проблем конвертировался в Лазарус. Но теперь он показывает эти крякозябры (ешаем СѓСЂР) , характерные для
юникода. Переключение .Font.Charset в инспекторе объектов не помогают, хотя символы меняются. Похоже, что в
итоге мне и не нужен юникод, т к мой Windows все показывает в Win1251? Правда, блокнот показывает по-русски
(распознает кодировку?) преобразованные .dfm. Теперь я как ёжик в тумане... не знаю куда податься.
Добавлено спустя 1 час 20 минут 58 секунд:Всё ясно. Эту панику я поднял из-за того, что пользовался установкой Font.CharSet = RUSSIAN_CHARSET для формы и компонентов, установленных на ней. Перешел (в среде Делфи7) на Font.CharSet = DEFAULT_CHARSET (для всех установленных на форме компонентов), сохранил, убедился (просмотром *.dfm ) что виден русский текст, а не
' '#1042#1099#1095#1080#1089#1083#1103#1077#1084' Ln(2) '. И после этого Делфи7-проект без проблем преобразуется в Лазарус (как описано:
http://win-ni.ru/uceb/FPC/preobr.php() А преобразование в юникод, наверное, нужно для Unix ?