Собственно сегодня прошел ровно месяц с того дня как я установил на свой компьютер 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
| Делись! | Загружай! | Плюсуй! |
| | |









10 Дек 2009 в 11:00 дп
html?
10 Дек 2009 в 1:43 пп
Есть Synapse, который как уверяет Лукас работает с Lazarus.
Что с TRegExpr? Или она только под винду?
Согласен с Сергеем. Что у Лазаруса с PDF?
10 Дек 2009 в 4:58 пп
Синапс скачал, надо будет проверить его. Судя по отзывам вещь стоящая, вроде бы даже круче Indy. С TRegExpr…есть этот тип в Лазаре, но вот сам механизм работы с регулярными выражениями построен по другому. Благо в модуле есть внятный комментарий со ссылкой на литературу :) Буду изучать книжки.
По поводу PDF и HTML. Дело в том, что чисто технически обеспечить составление отчётов в этих форматах можно и даже довольно просто, НО необходимо дать возможность тому кто работает с программой в составленный отчёт вносить коррективы (если это необходимо), например, давать пояснение почему использовался какой-нибудь коэффициент, добавлять описание какого-либо оборудования и т.д. потому что как бы я не старался сделать программу универсальной, учитывающей все тонкости методик, регламентов — такого к сожалению не сделать никогда. К сожалению в экологии нормативная база имеет свойство меняться по 3 раза на дню :) Вот и получается, что рыть надо в сторону документов офиса я же не заставлю 50-ти летнего инженера в срочном порядке изучать HTML :) Мне ещё предстоит его приучать к программе
11 Дек 2009 в 11:17 дп
Для отчётов с чистыми таблицами — csv
Для форматированных документов — rtf
А вообще очень помогает в этом деле FastReport, он правда платный и я не знаю на сколько дружит и Lasarus, но мы сейчас реализовали на нем систему, когда нет нужды разрабатывать отчет в Delphi, а любой пользователь может создать свой в уже запущенном приложении, при условии знания sql. Если Пользователя чем-то не устраивает отчет, то может спокойно выгрузить в rtf и открыть в Word или OpenOffice
11 Дек 2009 в 11:33 дп
У Lazarusа есть LazReport — аналог Fast Report, а вот знания sql у пользователей точно нет. Некоторые даже Excel толком не знают — отсюда- то вся проблема и идёт. А отчёт должен содержать: описательную часть (что считается, по какой методике, кем и т.д.), далее расчётные формулы (здесь кстати OpenOffice очень удобен — формулы в XML хранятся) и далее туча таблиц, включая сводные. И всё это в одном файле. Видимо придётся досконально изучать формат OpenOffice.
12 Дек 2009 в 1:35 дп
А стандарт Ecma Office Open XML (ECMA-376) для генерации *.docx и *.xlsx можно применить? OpenOffice с ними работает с 3-й версии, и для MS Office они как родные.
Описание форматов на сайте Майкрософт еще не закончено и датировано 5.11.2009:
Формат Word — (81 страница в PDF)
Excel — (186 страниц)
На русском читаю книгу Воутер Ван Вугта «Open XML кратко и доступно» в которой очень много примеров.
12 Дек 2009 в 7:48 дп
Что касается XML, то не важно чей он — от OpenOffice или от M$ — Lazarus вполне сносно работает с XML. Другое дело, что не хотелось бы ручками весь документ составлять, прописывать каждый тэг и т.д., а использовать OLE в Linux по определению невозможно. Судя по тому, что сейчас есть в наличии по работе с OpenOffice — придётся делать всё вручную. По поводу удобства работы с форматами, могу сказать, что формат OpenOffice выглядит более читабельным и понятным, чем Word 2003, а docx надо глянуть. Спасибо за ссылки
15 Дек 2009 в 2:47 пп
— прекрасно работает с Lazarus
15 Дек 2009 в 4:43 пп
Хм..может и работает, только сайт почему-то не грузится. Адрес точно такой?
15 Дек 2009 в 6:09 пп
Сайт судя по всему в дауне
17 Дек 2009 в 6:51 пп
>>В Lazarus работа с таблицами организована, можно сказать, на высоте. Хочешь – заполняй в дизайнтайме, хочешь – задавай свойства каждого столбца в отдельности. Надо сделать, чтоб в ячейке был CheckBox – не проблема.
Хм… Я от стандартных StringGrid/DrawGrid отказался, как только узнал о VirtualTreeView. Последний в самой Delphi используется ;).
20 Дек 2009 в 10:56 дп
+1 для Synapse.
После того как я только один раз просмотрел список юнитов и функций в файле справке, я перестал использовать Indy вообще. (впрочем, я и до этого с ним работал нечасто :D).
StringGrid в Delphi — тьфу-тьфу-тьфу — намучался с ним когда только учил Delphi. С тех пор как стал писать DB-приложения, использую только DbGrid-ы. Даже если необходимо работать с локальными данными беру ClientDataset + DbGrid.
20 Дек 2009 в 11:02 дп
Посмотрел LazReport (nice prefix, btw:D ) и первое что бросилось в глаза — лицензия LGPL. И тут я вспомнил в чём засада компонентов для Lazarus-а. Они в большинстве своём либо GPL либо LGPL. :(
20 Дек 2009 в 11:23 дп
По лицензиям да, есть такая заморочка. Но с другой стороны я особо ни от кого исходники никогда не прятал. Надо будет умыкнуть чего — так Delphi всегда под рукой :)
А в Lazarus’e кстати по функциональности DBGrid и StringGrid одинаковы, поэтому никаких ClientDataset не требуется.
17 Янв 2011 в 10:52 пп
Скажите пожалуйста как в лазарусе можно прикреплять документы,такие например как презентации,потому что я выполняла проект в делфи и прикрепляла при помощи оле контейнера.А здесь я не могу найти аналог оле,пожалуйста помогите очень нужно
18 Янв 2011 в 9:40 дп
В принципе, если работа программы подразумевается только под Windows, то можно попробовать использовать модуль ComObj.pas, но как работать с презентациями — тут не подскажу, т.к. никогда этим не занимался…думаю принцип будет тот же, что и с любым приложением офиса