Перевод проекта с Delphi на Lazarus (под Linux)

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение DrSoft » 18.11.2011 18:09:09

Доброго времени суток!!!
Существует задача в переводе достаточо крупного проекта написанного на Borland Delphi на платформу Linux. В проекте задействованы следующие компоненты:

EhLib(dbGridEh, MemTableEh) - весьма критично,
FastReport - не кретично
GLScene, Graphics32 - критично,
HTMLViewer (PBear), RichView - критично,
ZipForge - или любой иной, умеющий шустро работать с большими архивами

Т.к. Lazarus + FPC достаточно близок к Delphi, выбор пал на него.
1. В Lazarus-е под Win32 практически невозможно откомпилить проект под Linux (о чем задавал вопрос в предыдущей своей теме) компиляция проекта в IDE установленном на Linux Ubuntu тоже не подходит, т.к. существует проблемма с компонентами ( на примере Graphics32, я узнал что он не поддерживается Lazarus-ом под Linux, только Win32 и OS X Carbon ).
2. За время так сказать своих тестов, наблюдались проблемы не стабильной работы самой IDE.
Вопрос заключаеться в следующем, есть ли смысл заморачиваться с Lazarus-ом, перерисовывать компоненты, и т.д под Linux? Просто есть сомнения в его стабильности. Или может имеет смысл выбрать другую среду разработки для Linux? ( желательно наличие таких же или подобных компонент ).
3. Если все таки выбрать Lazarus, можно ли будет установить компоненты перечисленные выше или найти их аналоги под Lazarus (ОС Linux x32-64)?
Заранее спасибо.
DrSoft
незнакомец
 
Сообщения: 3
Зарегистрирован: 17.11.2011 10:21:53

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение dunin » 18.11.2011 19:14:19

dbGridEh = RxDBGrid
MemTableEh - не знаю что такое, посмотрите Rx компоненты, может тоже что-то есть.
FastReport - ... (не кретично)
GLScene - можно вкрячить. Пробовал. Получалось.
Graphics32 - ...
HTMLViewer (PBear), RichView - никогда не пользовался, не знаю. Вроде что-то есть...
ZipForge = tZipper
DrSoft писал(а):Доброго времени суток!!!
...Просто есть сомнения в его стабильности.
...
Заранее спасибо.

У меня нет "сомнений в его стабильности". Нормально все. Проект развивается.
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение Nik » 18.11.2011 19:45:20

FastReport - не кретично
GLScene, Graphics32 - критично,
HTMLViewer (PBear), RichView - критично,
ZipForge - или любой иной, умеющий шустро работать с большими архивами


Аналоги всего перечисленного есть. Более того, для половины есть не просто аналоги, а порты под Lazarus.

Что касается стабильности, то официальные релизы вполне стабильны. Плюс никто не запрещает сообщать об ошибках разработчикам - критические ошибки они стараются исправлять быстро.

Других IDE с визуальными компонентами и Pascal-синтаксисом под Linux нет. Ну, кроме других IDE на базе FPC :)
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение Odyssey » 19.11.2011 00:24:20

DrSoft писал(а):Вопрос заключаеться в следующем, есть ли смысл заморачиваться с Lazarus-ом, перерисовывать компоненты, и т.д под Linux?

Если стоит задача сделать нативный порт приложения под Linux - то смысл, наверное, есть. Если заморачиваться не хочется, можно пускать Windows-версию под Wine, но там свои заморочки.
DrSoft писал(а):Просто есть сомнения в его стабильности.

Проблемы со стабильностью иногда бывают. Проект быстро развивается, старые ошибки исправляются, иногда добавляются новые. В отличие от Delphi, в Lazarus можно исправлять ошибки самому, а не ждать по несколько лет новой версии.
DrSoft писал(а):Или может имеет смысл выбрать другую среду разработки для Linux? ( желательно наличие таких же или подобных компонент ).

С такими же или подобными компонентами сред разработки для Linux нет. Даже в Lazarus придётся часть компонентов заменять на другие или портировать самому. И кстати, кроме Lazarus, есть только одно более-менее готовое к использованию кроссплатформенное средство разработки на Object Pascal с компонентами - MSEgui. Но там тоже свои заморочки.
DrSoft писал(а):Если все таки выбрать Lazarus, можно ли будет установить компоненты перечисленные выше или найти их аналоги под Lazarus (ОС Linux x32-64)?

Если у компонента нет официально поддерживаемой версии под Lazarus -- установить не получится. С аналогами тоже сложно. Например порт HTMLViewer (PBear) под Lazarus ещё в разработке, поэтому весьма нестабилен. RichView для Lazarus -- это открытая автором много лет назад упрощённая версия, до текущей коммерческой версии RichView ей как до луны. С Graphics32 тоже всё сложно.

С GLScene должно быть проще. На замену ZipForge можно попробовать TZipper/TUnzipper из стандартной библиотеки FreePascal.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение Konung » 19.11.2011 03:09:14

Поддержу вопрос (+/- и вроде схожая задача)
2 dunin
dunin писал(а):dbGridEh = RxDBGrid
dbGridEh = RxDBGridMemTableEh - не знаю что такое, посмотрите Rx компоненты, может тоже что-то есть.

нет. эхлибовский и эРИксовский гриды совсем не одно и то же. не говоря уж о таблице в памяти кою юзает эхлиб.
dunin писал(а):GLScene - можно вкрячить. Пробовал. Получалось...ZipForge = tZipper

угу... попробую.

2 Nik
а можно примеры. бо далеко не все что хотел бы смог найти. возможно есть де нить подборка толковая с описанием? (офф. лазаря не предлагать - далеко не все там живое, и мало что реально работает в линухе)

2 Odyssey
вайн - не вариант. во всяком случае у меня.
Odyssey писал(а):MSEgui
- это, как я понял еще одна IDE для fpc. но если не ошибаюсь - еще более сырая и мало проработанная. и тем паче - не могущая похвастаться наличием обширного кол-ва стабильных компонент. или я ошибаюсь?
Odyssey писал(а):Если у компонента нет официально поддерживаемой версии под Lazarus -- установить не получится

сорри за илиотский вопрос - а как то иная я не могу их использовать в лазаре (причем непременно в линухе)?

2 all
и все же повторюсь с вопросам автора темы - есть ли смысл допиливать компоненты нужные мне, искать аналоги и допиливать их под требуемые задачи, возможно - рисовать свой Graphics32 (это к примеру) и что бы все шуршало под Linux, или стоит определиться с иной платформой (Qt, ...Mono, и т.п.) где я смогу найти подобный функционал с меньшими (уж сорри, но после Delphi - стабильность лазаря удручает) глюками IDE?

прошу не "пинать ногами", но первое впечатление от попыток перехода на лазарь с делфи - комом. возможно сказывается "наследие" Delphi и малое знание Lazarus.
Konung
новенький
 
Сообщения: 16
Зарегистрирован: 19.11.2011 02:46:24

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение Vadim » 19.11.2011 06:46:29

Konung писал(а):офф. лазаря не предлагать - далеко не все там живое, и мало что реально работает в линухе

Это что ещё за выдумки? Конкретные примеры - в студию!
Konung писал(а):и малое знание Lazarus.

И, видимо, малое знание Linux. Вот это ближе к истине. ;)
Konung писал(а):возможно - рисовать свой Graphics32 (это к примеру)

Пример неудачный. Graphic32 - есть пакет для Lazarus.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение Konung » 19.11.2011 09:26:01

2 Vadim

давайте не дуть холивар. я сюда не полажать проект пришел, а спросить совета людей знающих больше моего. лазарь и линух я бесспорно знаю меньше чем винду. не было необходимости - не разбирался. теперь есть - изучаю. но не линуховый нюанс когда вылетает ИДЕ лазаря на диалоге открытия файла, например. не находятся классы, не совпадают типы или языковые нюансы.

Vadim писал(а):Это что ещё за выдумки? Конкретные примеры - в студию!

что до примеров. берем http://wiki.lazarus.freepascal.org/Components_and_Code_examples. берем там тот же HtmlPort, LazRichView. Первый не ставится совсем. Второй - ставтся но откомпиленный проект вешает в ноль ИДЕ, и сам проект - в "подвисонах".

Vadim писал(а):Пример неудачный. Graphic32 - есть пакет для Lazarus.

Собственно изначально проект под делфю. так что говорить что он лазарусовский в полном смысле - не приходится. кой какие моменты в нем - приходится допиливать руками, что бы откомпилился хотя бы в лазарь+вин. но весь топик о том, что интересует связка лазарь+линух (собственно о косяках указанных мной до этого - речь так же идет про лазарь+линух). на офф сайте графикса - четко сказано что он только для вин и мак. допиливание на скорую руку - пока дало скомпилить и пересобрать с графиксом лазарь. далее - при помещении контрола на форму в десигн-тайме - лазарь крашится и ребутится в предыдущую конфигурацию (без графикса).

быть может вы приведете примеры (в студию ;) ) где сии, например, компоненты работают (ссылки где взять тот или иной? версия лазаря? какой линух?)
Konung
новенький
 
Сообщения: 16
Зарегистрирован: 19.11.2011 02:46:24

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение Nik » 19.11.2011 09:49:26

Вот вполне работающий пример порта THTML - thtmlviewer: http://code.google.com/p/thtmlviewer/

Graphic32 под Lazarus лежит в одном архиве с Delphi-версиями. Устанавливается не без танцев с бубном, но вполне себе работает. Под Linux, правда не проверял.

FastReport и RichView здесь на форуме обсуждались десятки раз, поиск поможет.

Вместо Zip, если формат не критичен (читай - используется только вашей программой), можно взять zlib - для него компоненты есть и в составе FPC и сторонние.


PS. Можно узнать, какую версию Lazarus вы пробуете в деле?
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение alexs » 19.11.2011 10:08:18

Konung писал(а):не говоря уж о таблице в памяти кою юзает эхлиб.

Давно туда не глядел. А чего там принципиально нового, чего нет в RxMemTable?
Я в свое время использовал EhGrid. Сначал было вменяемый компонент. Но когда он пошёл по пути DevGrid-а - это стало грустно.
В RxDBGrid - есть то, что реально нужно для работы пользователю.

Лишний функционал - это лишние печали сопровожденцу софта.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение DrSoft » 19.11.2011 12:05:29

В общем, как я вижу, Вы все рекомендуете вести разрабоку в Lazarus-е, тогда следующие вопросы:
1. Был ли вообще у кого-нибудь реальный опыт в установке Graphics32 под Lazarus (ОС Linux)? Могу строго заверить что в последнем релизе этого компонента поддержки Linux-а нет. При компиляции и установке компонента возникает много ошибок, которые при помощи бубна удается одолеть, но даже откомпилинный и установленный компонент при помещении его на форму "крашится".
2. Компонент RichView компилируется и устанавливается без проблем, располагается на форме в design-time, но при компиляции и запуске всего проекта, где он содержится, IDE виснет напрочь. Пользовал ли кто-нибудь этот компонент в связке Lazarus + Linux? Потому как в связке Lazarus+ Windows данный компонент работает без проблем.
3. До GlScene руки еще не дошли, не пробовал устанавливать, надеюсь что хоть он меня порадует.
4. Самое срашное это Ehlib. Поддержки под Лазарь у него вовсе нет и не было. Искать что-то подобное - даже незнаю в какую сторону смотреть... Самый необходимый компонент в Ehlib - это MemTableEh. Может кто еще что-нибудь предложит... Буду признателен.
DrSoft
незнакомец
 
Сообщения: 3
Зарегистрирован: 17.11.2011 10:21:53

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение dunin » 19.11.2011 12:58:15

DrSoft писал(а):...
4. Самое срашное это Ehlib. Поддержки под Лазарь у него вовсе нет и не было. Искать что-то подобное - даже незнаю в какую сторону смотреть... Самый необходимый компонент в Ehlib - это MemTableEh. Может кто еще что-нибудь предложит... Буду признателен.

Посмотрите Rx компоненты от alexs. Они лучше и функциональней, чем кажутся на первый взгляд.
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение xcod » 19.11.2011 13:15:51

Есть проект CodeTyphon
вся сборка проекта из последних svn lazarus+fpc+куча пакетов все обновляется периодически, есть в том числе Graphics32, правда тока под Win32/64/CE
посмотрите мжт это чем то поможет, или найдете замену
xcod
постоялец
 
Сообщения: 108
Зарегистрирован: 07.08.2009 12:37:23

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение Vadim » 19.11.2011 16:48:07

Konung писал(а):берем http://wiki.lazarus.freepascal.org/Comp ... e_examples. берем там тот же HtmlPort, LazRichView.

Простите, Вы говорили про официальный релиз Lazarus'а. Эти компоненты туда входят?
Про Graphic32 - отчасти согласен. Однако хочу заметить, что раз есть рабочая версия для MacOS, то допилить его до использования в Linux куда проще, чем если бы компонент работал только под Win. У создателя темы ведь альтернатив всё равно нет, не так ли, раз он принципиально настаивает на использование Graphic32? Это возможно, надо только определиться с необходимостью этих тркдозатрат относительно создаваемого проекта. Однако согласитесь, при использовании Graphic32, другой альтернативы, кроме использования Freepascal, нет в принципе. Таким образом мы получаем дилемму - или потратить некоторое время на допиливание Graphic32 под Linux, что реально, либо полностью отказаться от переделки проекта под Linux. Вы бы что выбрали? ;)

Добавлено спустя 5 минут 17 секунд:
DrSoft писал(а):Самый необходимый компонент в Ehlib - это MemTableEh. Может кто еще что-нибудь предложит...

Вам предложили RxMemTable. Этот компонент Вас чем-то не утсраивает?
Конечно, замена компонентов при модификации программы - дело не очень хорошее, однако у Вас изначально была ошибка в проектировании, за что Вы сейчас и расплачиваетесь. ;) Однако, перейдя на Lazarus, у Вас есть уникальная возможность создать мультплатформенную программу, что резко повышает её конкурентность с аналогичными продуктами, но рассчитанными только на одну платформу.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение Odyssey » 19.11.2011 18:16:31

Konung писал(а):- это, как я понял еще одна IDE для fpc. но если не ошибаюсь - еще более сырая и мало проработанная. и тем паче - не могущая похвастаться наличием обширного кол-ва стабильных компонент. или я ошибаюсь?

Про проработанность сказать не могу, не пробовал. Могу сказать только, что:
- внешний вид получаемых приложений довольно специфический, отличается от того, что принят в ОС.
- багов теоретически должно быть меньше, чем в Lazarus, из-за отсутствия завязок на GTK/Qt.
Konung писал(а):сорри за илиотский вопрос - а как то иная я не могу их использовать в лазаре (причем непременно в линухе)?

На правах капитана Очевидность: Если разработчик компонентов не рассчитывал, что его компоненты будут использоваться в Lazarus+Linux, то использовать их "как они есть" не получится. Вне зависимости от того, установятся они или не установятся, скомпилируются или нет. Сделать что-то всегда можно:
1) Если компоненты не очень сильно завязаны на Windows/Mac, и если позволяет лицензия компонентов (напр. BSD, MIT, MPL, LGPL, GPL) то компоненты можно допилить самому, заменив в них Windows-специфичный код на кроссплатформенный.
2) Можно взять другие компоненты с тем же назначением и адаптировать свой проект под их использование. При необходимости и подходящей лицензии эти другие компоненты тоже можно допилить под свои задачи.
3) Можно написать свои собственные компоненты с нуля.
Обычно из этих вариантов выбирают тот, что проще. В любом случае, при портировании Delphi-приложений под другие ОС про принцип "кинул компонент на форму и порядок" можно забыть, если это не helloworld с одной кнопкой.
Konung писал(а):и все же повторюсь с вопросам автора темы - есть ли смысл допиливать компоненты нужные мне, искать аналоги и допиливать их под требуемые задачи, возможно - рисовать свой Graphics32 (это к примеру) и что бы все шуршало под Linux, или стоит определиться с иной платформой (Qt, ...Mono, и т.п.) ...

Не стоит рассматривать Lazarus как волшебную таблетку, которая поможет вам нажать кнопку и получить рабочее приложение под Linux. Я бы в указанной ситуации рассматривал Lazarus как одну из "иных платформ" по отношению к Delphi (наряду с Qt, Mono и что там ещё). В этом случае Lazarus+FPC дают следующие бонусы:
- не нужно переписывать основную логику программы на другом языке;
- можно использовать стандартные компоненты VCL/LCL - TButton, TMemo, TPanel и т.д.;
- можно использовать имеющиеся знания Delphi.

Для остальных компонентов придётся искать варианты их замены. Например, на том же Graphics32 свет клином не сошёлся, для Laarus есть кроссплатформенный BGRABitmap, возможно имеет смысл попробовать его и при необходимости допилить под свои задачи. Причём поиск вариантов замены нужен при переходе не только на Lazarus, но и на остальные "иные платформы".

Konung писал(а):где я смогу найти подобный функционал с меньшими (уж сорри, но после Delphi - стабильность лазаря удручает) глюками IDE?

Стабильность Lazarus изменяется со временем, и в целом эта проблема решаемая. Если так сильно достало - попробуйте другие варианты. Поставьте QtCreator, MonoDevelop, NetBeans, что там ещё? Поищите в интернете, что используется в Qt/Mono/Java/... вместо ваших компонентов. Попробуйте, наконец, написать простенькие приложения. В результате вы либо найдёте среду, которая не глючит, которая вам понятна, и с которой удобно работать, либо вернётесь на Lazarus и будете ценить его достоинства (и исправлять недостатки).
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Перевод проекта с Delphi на Lazarus (под Linux)

Сообщение Konung » 19.11.2011 23:03:06

2 Nik
Nik писал(а):Вот вполне работающий пример порта THTML - thtmlviewer: http://code.google.com/p/thtmlviewer/

сенкс. пороюсь что там да как ноне. возможно юзал устаревшую шибко версию.
Nik писал(а):Graphic32 под Lazarus лежит в одном архиве с Delphi-версиями

не совсем так. есть в т.ч. и отдельный исходник на офф сайте для линуха. по сути - поубрали иф_анд_дэфы, но легче не становится. для винды я собрал его вполне работает. для линуха - пока никак...
Nik писал(а):FastReport и RichView здесь на форуме обсуждались десятки раз, поиск поможет.
Вместо Zip, если формат не критичен (читай - используется только вашей программой), можно взять zlib - для него компоненты есть и в составе FPC и сторонние.

ок. поискаю.

Nik писал(а):PS. Можно узнать, какую версию Lazarus вы пробуете в деле?

последнюю стабильную что была на офф сайте (0.9.30.2) 32 и 64-х битную.

2 alexs & dunin
спасибо за инфу - погляжу (пока - не смой открыть сайт автора... не отзывается). может пропустил что то важное для себя ;)
что до ehlib-a. кроме некоторых моментиков связанных с интерфесом (имхо - идеи как включить фильтр, "итоги", грид-меню, объединение заголовков и т.п. я лучше не видел), основное - то что авторам крайне удачно удалось связать датасет и древовидную структуру. а так же - более чем удобная работа со статусами записей. не сочтите за рекламу, но или я не так сильно искал, или просто аналогичного нет (есть разные варианты и иные решения подобных задач. но у них, имхо, это оптимально по удобству. + некоторые допилы под себя - вызодит более чем бодро).

xcod
мерси, но - именно... толком в линух нужное мне там отсутствует. так же - ощущение что сборка сыровата. тот же "дефолтный" графикс32 там уже в винде крашит форму при ресайзе.

2 Vadim
я изначально говорил что мне требуются ряд компонентов коих нет в оф. лазаре. и взяв их порты/аналоги в оф. вики лазаря - вижу что они не работают толком в линухе. чуда не ждал. но надеялся что будет болрее ;).

в том то и дело. что на очередном этапе разработки стоит проблема выбора. то ли попробовать доработать то что есть стараясь остаться по максисмуму в исходном коде. то ли - определиться и альтернативной средой разработки. очень хочется избежать "тыканий и мыканий" - сроки заете ли ;)

Vadim писал(а):Вам предложили RxMemTable. Этот компонент Вас чем-то не утсраивает?

не в курсе потребностей автора темы - но в ном есть работа с деревьями?

2 Odyssey
Odyssey писал(а):...внешний вид получаемых приложений довольно специфический, отличается от того, что принят в ОС.

уже это не пройдет... есть определеныне требования ТЗ :(.

Odyssey писал(а):...Очевидность... Волшебная таблетка...

:) уж не имею сих радужных мыслей. знал что будет много возни и был к ней готов. пока - все даже грустнее чем думалось.
и с учетом ниже в вашем посте сказанного - пока - да. пробую что выйдет в рамках лазаря. чуть позже - пороюсь и попробую то что есть еще.

Odyssey писал(а):есть кроссплатформенный BGRABitmap

мерси. погляжу. в графиксе не столько дело в альфе (хотя это тоже не мало ;) ) - у него недурной движок для работы со слоями. на них у меня наследованы объекты и выходит простенький но вполне вменяемы и достаточный для моих целей и векторный редактор, и просмотрщик растра+векторных объектов.
Есть слои в BGRABitmap?
Konung
новенький
 
Сообщения: 16
Зарегистрирован: 19.11.2011 02:46:24

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 238

Рейтинг@Mail.ru
cron