Kylix > Lazarus
Модератор: Модераторы
Kylix > Lazarus
Доброго времени суток!
Поставил на Linux FPC 2.0.4 + Lazarus 0.9.22 - под мои задачи ОЧЕНЬ нравится.
Поскольку Kylih помер, приложения, написанные на нем надо бы портировать в Lazarus.
Сейчас делаю это тупо в лоб:
1. Создаю проект, набрасываю компоненты, муторно редактирую их имена.
2. Подсовываю .pas из Kylih-проекта.
3. Редактирую раздел uses
4. Для визуальных комп. имитирую обработку событий.
Может, кто подскажет более легкий способ?
Поставил на Linux FPC 2.0.4 + Lazarus 0.9.22 - под мои задачи ОЧЕНЬ нравится.
Поскольку Kylih помер, приложения, написанные на нем надо бы портировать в Lazarus.
Сейчас делаю это тупо в лоб:
1. Создаю проект, набрасываю компоненты, муторно редактирую их имена.
2. Подсовываю .pas из Kylih-проекта.
3. Редактирую раздел uses
4. Для визуальных комп. имитирую обработку событий.
Может, кто подскажет более легкий способ?
- Alexx2000
- постоялец
- Сообщения: 490
- Зарегистрирован: 25.10.2006 00:22:07
- Откуда: Мытищи
- Контактная информация:
Можно попробовать сделать проще.
Открываете ваши модули.
В главном меню пункт "Инструменты -> Преобразовать модуль Delphi в Lazarus", скармливаете ему все модули. После этого все формы будут преобразованы в формат Lazarus.
Конечно могут быть проблемы, однако думаю их будет проще решить чем заново проектировать интерфейс.
Открываете ваши модули.
В главном меню пункт "Инструменты -> Преобразовать модуль Delphi в Lazarus", скармливаете ему все модули. После этого все формы будут преобразованы в формат Lazarus.
Конечно могут быть проблемы, однако думаю их будет проще решить чем заново проектировать интерфейс.
Спасибо, попробую.
При старте Lasar идет ругань на неверные данные файла .lfm - типа свойства TLabel какие-то не те, свойства SpeedButton не те и т.д.
Свойства формы Scaled, проблемные Label и SpeedButon в .lfm убил - без толку...
Вываливает целиком .lfm и предлагает удалить неверные строки - после удаления в файле не остается практически ничего.
Вопрос 1 - утилита lazres откуда запускается и с какими параметрами?
Вопрос 2 - при попытке преобразовать файл .dpr следует сразу Сохранить и вываливаюсь из проекта. Так должно быть?
Вопрос 3 - при разработке меню в Kylix указание в свойстве Caption символа дефис приводило к созданию горизонтального разделителя между пунктами меню - в Лазаре я этого не нашел - должны быть проблемы с формированием .lfm и .lrs?
Вопрос 4 - есть ли в Лазаре проблема запуска приложения с различным разрешением экрана? В Kylix это решалось просто - в процедуре FormCreate свойство формы Scaled устанавливалось в True.
Уважаемый Постоялец, если можно, напишите схему преобразования для чайника - у меня ощущение, что 10-летний стаж писания софта под Pascal/Delphi/Kylix ни чему меня не научил???
При старте Lasar идет ругань на неверные данные файла .lfm - типа свойства TLabel какие-то не те, свойства SpeedButton не те и т.д.
Свойства формы Scaled, проблемные Label и SpeedButon в .lfm убил - без толку...
Вываливает целиком .lfm и предлагает удалить неверные строки - после удаления в файле не остается практически ничего.
Вопрос 1 - утилита lazres откуда запускается и с какими параметрами?
Вопрос 2 - при попытке преобразовать файл .dpr следует сразу Сохранить и вываливаюсь из проекта. Так должно быть?
Вопрос 3 - при разработке меню в Kylix указание в свойстве Caption символа дефис приводило к созданию горизонтального разделителя между пунктами меню - в Лазаре я этого не нашел - должны быть проблемы с формированием .lfm и .lrs?
Вопрос 4 - есть ли в Лазаре проблема запуска приложения с различным разрешением экрана? В Kylix это решалось просто - в процедуре FormCreate свойство формы Scaled устанавливалось в True.
Уважаемый Постоялец, если можно, напишите схему преобразования для чайника - у меня ощущение, что 10-летний стаж писания софта под Pascal/Delphi/Kylix ни чему меня не научил???
По поводу конвертации форм некоторая информация имеется здесь: http://wiki.lazarus.freepascal.org/Code_Conversion_Guide#Converting_Delphi_projects.2Fforms.2Funits_to_Lazarus
У FPC 2.0.4 имеются проблемы с интерпретацией юникодовых строк, поэтому Lazarus при импортировании будет ругаться на каждое свойство с ними, например, такое, как Caption. Все эти свойства надо удалить.
С FPC 2.1.4 Lazarus уже не будет ругаться на такие свойства, но их содержимое превратится в мусор.
Поэтому, если русские надписи на форме сохранены в файле DFM в юникоде, вы их потеряете, и придётся вводить их заново.
У FPC 2.0.4 имеются проблемы с интерпретацией юникодовых строк, поэтому Lazarus при импортировании будет ругаться на каждое свойство с ними, например, такое, как Caption. Все эти свойства надо удалить.
С FPC 2.1.4 Lazarus уже не будет ругаться на такие свойства, но их содержимое превратится в мусор.
Поэтому, если русские надписи на форме сохранены в файле DFM в юникоде, вы их потеряете, и придётся вводить их заново.
Максим писал(а):С FPC 2.1.4 Lazarus уже не будет ругаться на такие свойства, но их содержимое превратится в мусор.
Поэтому, если русские надписи на форме сохранены в файле DFM в юникоде, вы их потеряете, и придётся вводить их заново.
Потратил пол-часа и Replace -ом восстановил криллицу в .xfm файле.
Кому интересно, могу выложить таблицу соответствия
v-t-l писал(а):Это было бы неплохо.
А в какую кодировку?
Кодировка CP-1251
Кириллица заглавные от А (#1040) до Я (#1071) - по порядку, исключая Ё
Строчные от а (#1072) до я (#1103), также исключая ё
Придется вспомнить алфавит...
Похоже, это какая-то внутренняя кодировка Kylix - ему так удобно.
При портировании столкнулся с небольшой проблемой - некоторые Label.GroupBox-Caption-ы рисуют абракадабру - по свойству CharSet= DefaultCharSet
и требуют явного указания Russian_CharSet - тогда все Ок, в то время как на кнопках все Ок, только шрифт мелкий
Если разберусь - отпишу.
p.s. Такое ощущение, что Инструменты-Преоbразовать-.dfm в .lfm сводится к замене расширения имени файла - странно! - или я не прав?
Похоже, это какая-то внутренняя кодировка Kylix - ему так удобно.
Если я правильно понимаю, это UTF-8. Подробнее здесь:
http://www.freepascal.org/mantis/view.php?id=1402
Такое ощущение, что Инструменты-Преоbразовать-.dfm в .lfm сводится к замене расширения имени файла - странно! - или я не прав?
Насколько я помню, вы правы. Но ничего удивительного в этом нет. Lazarus очень прилично совместим с Дельфями, и эта поддержка постоянно улучшается. Форматы форм у них одинаковые. А свойства на корректность проверяются в любом случае при открытии.
- Brainenjii
- энтузиаст
- Сообщения: 1351
- Зарегистрирован: 10.05.2007 00:04:46
Владимир писал(а):Господа-граждане, похоже, функция msg(string,mtConfirm,[mbOk] и т.д.) корректно работпет только на главной форме - на других формах вываливается в ошитбку.
Еще вопрос - как "подсунуть" портированную форму в качестве гланой - редактировать HTML-файл?
Разобрался - ф-ю MessageDLG следует использовать только в рамках одного окна/панели - иначе она не понимает, куда возвращать фокус.
Господа-граждане, не понятно поведение BitBtn по Enter и Esc.
1. Если Kind=bkOk, то не отрабатывается Enter на доп.клавиатуре.
2. Если Kind=bkCancel и ModalResult=mrCancel(могу ошибаться - точно не помню), то по Esc програма закрывается!!?
3. Если на панели 2 BitBtn, одна с bk=bkOk, а другая с bkCancel, то работает только одна, у которой Default=True.
Конечно, не смертельно, но неприятно...
p.s. Подскажите, куда отправлять обнаруженные глюки? Дело-то общее!
