Собственно сегодня прошел ровно месяц с того дня как я установил на свой компьютер Ubuntu и Lazarus. В принципе, могу сказать, что в целом я вполне доволен как новой ОС, так и Lazarus’ом. По крайней мере не было «ломок» по поводу отсутствия какого-либо софта, «незаменимых» функций Windows, игрушек и т.д. Всего хватает и, можно даже сказать, жалею теперь, что не перешел под Ubuntu раньше.
Но всё-таки, иногда приходится «работать напильником». В начале, немного фактов о Lazarus, которые меня приятно удивили.
Во-первых, что касается удобства работы с VCL. К примеру, StringGrid. Не знаю, в чем были проблемы у Borland, CodeGear, а теперь и у Embarcadero, но по-моему до сих пор стандартный StringGrid в Delphi заполняется только в рантайме. Жутко неудобно.
В Lazarus работа с таблицами организована, можно сказать, на высоте. Хочешь — заполняй в дизайнтайме, хочешь — задавай свойства каждого столбца в отдельности. Надо сделать, чтоб в ячейке был CheckBox — не проблема.
И подобные мелкие удобства при работе с компонентами очень сильно помогают избежать лишней писанины, использования сторонних компонент и т.д.
Во-вторых, работа с базами данных. В состав Lazarus уже включены все необходимые компоненты для работы с MySQL. Не надо рыскать по Интернету в поисках необходимых компонент, что-то настраивать, налаживать, отлаживать — все готово к использованию. Опять же экономит время, силы и нервы.
Есть ещё кучи мелочей, которые представляют Lazarus с наилучшей стороны.
Но есть и моменты, когда ностальгия по Delphi просто дикая. В частности на текущий момент есть три вопроса, которые очень сильно напрягают.
1. В плане работы с Интернет. Не скажу, что в Lazarus отсутствуют компоненты для работы с Интернет. Они, конечно же есть и, как и полагается, абсолютно бесплатны, но на текущий момент пока не нашел компонентов или библиотек для работы с Сетью, удовлетворяющих двум простым условиям:
- Простота в установке и использовании.
- Функциональность на уровне WinInet.
Нашел даже Indy под Лазарус, но почитав отзывы пользователей, решил повременить с установкой.
Ну, а для разбора содержимого web-страниц препятствий вроде бы нет — DOM поддерживается полностью.
2. Работа с регулярными выражениями. Собственно пока здесь глубоко не влезал в исходники, но, судя по тому, что нашел Lazarus поддерживает работу с регулярными выражениями. А вот КАК и на каком уровне поддерживается работа — пока загадка. Думаю, что найду время разобраться по-подробнее. Хотя сейчас есть проблема №3….
3. Работа с офисными приложениями. Что касается Lazarus для Win32, то тут проблем нет. В Windows для Лазаруса можно подцепить тот же модуль для работы с OLE и спокойно работать хоть с PowerPoint’ом….Но мне-то нужна работа и под Linux.
Первое, что огорчило — это отсутствие какой-либо внятной документации по работе с OpenOffice из приложений на Pascal/Delphi/Lazarus. Есть один пример и тот под Win32 м тот оказался глючным. Обидно, блин.
Попробовал порыться в области UNO bridge для Lazarus — в русскоязычном сообществе Lazarus ребята решили самостоятельно разработать мост для управления OpenOffice из своих приложений, но опять же основной упор делается на Win32, под Linux нужен гигантских размеров напильник….
Вот теперь и думаю: не сегодня так завтра надо уже вплотную приступать к разработке модуля по составлению отчётной документации, времени работать напильником совершенно не остается. Как быть? Что использовать, чтобы и под Win32 и под Linux модуль работал как часы и составлял отчётность? Как вариант, конечно можно писать файл OpenOffice самому…но, что-то мне подсказывает должен быть какой-то вариант ещё. Более простой вариант.
Поэтому, уважаемые читатели блога Webdelphi.ru, если у Вас есть идеи, варианты, примеры по работе с OpenOffice в Lazarus (под Linux) очень прошу — поделитесь полезной информацией. Не хотелось бы вручную собирать файл *.odf

html?
Есть Synapse, который как уверяет Лукас работает с Lazarus.
Что с TRegExpr? Или она только под винду?
Согласен с Сергеем. Что у Лазаруса с PDF?
Синапс скачал, надо будет проверить его. Судя по отзывам вещь стоящая, вроде бы даже круче Indy. С TRegExpr…есть этот тип в Лазаре, но вот сам механизм работы с регулярными выражениями построен по другому. Благо в модуле есть внятный комментарий со ссылкой на литературу :) Буду изучать книжки. По поводу PDF и HTML. Дело в том, что чисто технически обеспечить составление отчётов в этих форматах можно и даже довольно просто, НО необходимо дать возможность тому кто работает с программой в составленный отчёт вносить коррективы (если это необходимо), например, давать пояснение почему использовался какой-нибудь коэффициент, добавлять описание какого-либо оборудования и т.д. потому… Подробнее »
Для отчётов с чистыми таблицами — csv
Для форматированных документов — rtf
А вообще очень помогает в этом деле FastReport, он правда платный и я не знаю на сколько дружит и Lasarus, но мы сейчас реализовали на нем систему, когда нет нужды разрабатывать отчет в Delphi, а любой пользователь может создать свой в уже запущенном приложении, при условии знания sql. Если Пользователя чем-то не устраивает отчет, то может спокойно выгрузить в rtf и открыть в Word или OpenOffice
У Lazarusа есть LazReport — аналог Fast Report, а вот знания sql у пользователей точно нет. Некоторые даже Excel толком не знают — отсюда- то вся проблема и идёт. А отчёт должен содержать: описательную часть (что считается, по какой методике, кем и т.д.), далее расчётные формулы (здесь кстати OpenOffice очень удобен — формулы в XML хранятся) и далее туча таблиц, включая сводные. И всё это в одном файле. Видимо придётся досконально изучать формат OpenOffice.
А стандарт Ecma Office Open XML (ECMA-376) для генерации *.docx и *.xlsx можно применить? OpenOffice с ними работает с 3-й версии, и для MS Office они как родные.
Описание форматов на сайте Майкрософт еще не закончено и датировано 5.11.2009:
Формат Word — (81 страница в PDF)
Excel — (186 страниц)
На русском читаю книгу Воутер Ван Вугта «Open XML кратко и доступно» в которой очень много примеров.
Что касается XML, то не важно чей он — от OpenOffice или от M$ — Lazarus вполне сносно работает с XML. Другое дело, что не хотелось бы ручками весь документ составлять, прописывать каждый тэг и т.д., а использовать OLE в Linux по определению невозможно. Судя по тому, что сейчас есть в наличии по работе с OpenOffice — придётся делать всё вручную. По поводу удобства работы с форматами, могу сказать, что формат OpenOffice выглядит более читабельным и понятным, чем Word 2003, а docx надо глянуть. Спасибо за ссылки
— прекрасно работает с Lazarus
Хм..может и работает, только сайт почему-то не грузится. Адрес точно такой?
Сайт судя по всему в дауне
>>В Lazarus работа с таблицами организована, можно сказать, на высоте. Хочешь – заполняй в дизайнтайме, хочешь – задавай свойства каждого столбца в отдельности. Надо сделать, чтоб в ячейке был CheckBox – не проблема.
Хм… Я от стандартных StringGrid/DrawGrid отказался, как только узнал о VirtualTreeView. Последний в самой Delphi используется ;).
+1 для Synapse.
После того как я только один раз просмотрел список юнитов и функций в файле справке, я перестал использовать Indy вообще. (впрочем, я и до этого с ним работал нечасто :D).
StringGrid в Delphi — тьфу-тьфу-тьфу — намучался с ним когда только учил Delphi. С тех пор как стал писать DB-приложения, использую только DbGrid-ы. Даже если необходимо работать с локальными данными беру ClientDataset + DbGrid.
По лицензиям да, есть такая заморочка. Но с другой стороны я особо ни от кого исходники никогда не прятал. Надо будет умыкнуть чего — так Delphi всегда под рукой :)
А в Lazarus’e кстати по функциональности DBGrid и StringGrid одинаковы, поэтому никаких ClientDataset не требуется.
Посмотрел LazReport (nice prefix, btw:D ) и первое что бросилось в глаза — лицензия LGPL. И тут я вспомнил в чём засада компонентов для Lazarus-а. Они в большинстве своём либо GPL либо LGPL. :(
Скажите пожалуйста как в лазарусе можно прикреплять документы,такие например как презентации,потому что я выполняла проект в делфи и прикрепляла при помощи оле контейнера.А здесь я не могу найти аналог оле,пожалуйста помогите очень нужно
В принципе, если работа программы подразумевается только под Windows, то можно попробовать использовать модуль ComObj.pas, но как работать с презентациями — тут не подскажу, т.к. никогда этим не занимался…думаю принцип будет тот же, что и с любым приложением офиса
[…] lazarus mysql dbgrid checkbox […]
[…] Работа с таблицами OpenOffice в Lazarus Ubuntu и Lazarus. От чего вдруг появляется ностальгия по Delphi и… […]