Подписка

добавить на Яндекс

Наши проекты

Delphi+Google

Google API

Google API в Delphi - проект с открытым исходным кодом.

Chrono

Chrono

Хронометр - программа для ведения списка задач.

ODFProc

ODFProc

ODFProc - работа с документами OpenOffice в Lazarus и FreePascal.

Поддержка блога

А тут я коплю на лицензию Delphi XE на iPad =).
Сумма пожертвования не фиксирована.

Публикации

Год назад

Случайный пост

Последние

Сообщения форума

Комментарии

Свежие комментарии

Социальные сети

Google

Facebook

Twitter

Опрос

Вы сейчас или в ближайшем обозримом будущем планируете разрабатывать кроссплатформенное приложение с использованием Firemonkey?



Loading ... Loading ...

Блоги и сообщества

Статьи по Delphi DelphiFeeds.ru - Все Delphi-блоги Рунета Сообщество умных людей VR-Online.RU Бесплатный журнал для программистов и всех, кто интересуется IT Статьи и уроки по Delphi Новостной блог о высоких технологиях
Система Orphus
Опубликовал Vlad 9 декабря 2009 в 05:48.
Категории: Без категории, Моя работа.


Собственно сегодня прошел ровно месяц с того дня как я установил на свой компьютер Ubuntu и Lazarus. В принципе, могу сказать, что в целом я вполне доволен как новой ОС, так и Lazarus'ом. По крайней мере не было "ломок" по поводу отсутствия какого-либо софта, "незаменимых" функций Windows, игрушек  и т.д. Всего хватает и, можно даже сказать, жалею теперь, что не перешел под Ubuntu раньше.

Но всё-таки, иногда приходится "работать напильником". В начале, немного фактов о Lazarus, которые меня приятно удивили.

Во-первых, что касается удобства работы с VCL. К примеру, StringGrid. Не знаю, в чем были проблемы у Borland, CodeGear, а теперь и у Embarcadero, но по-моему до сих пор  стандартный StringGrid в Delphi заполняется только в рантайме. Жутко неудобно.

В Lazarus работа с таблицами организована, можно сказать, на высоте. Хочешь - заполняй в дизайнтайме, хочешь - задавай свойства каждого столбца в отдельности. Надо сделать, чтоб в ячейке был CheckBox - не проблема.

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

Во-вторых, работа с базами данных. В состав Lazarus уже включены все необходимые компоненты для работы с MySQL. Не надо рыскать по Интернету в поисках необходимых компонент,  что-то настраивать, налаживать, отлаживать - все готово к использованию. Опять же экономит время, силы и нервы.

Есть ещё кучи мелочей, которые представляют Lazarus с наилучшей стороны.

Но есть и моменты, когда ностальгия по Delphi просто дикая. В частности на текущий момент есть три вопроса, которые очень сильно напрягают.

1. В плане работы с Интернет. Не скажу, что в Lazarus отсутствуют компоненты для работы с Интернет. Они, конечно же есть и, как и полагается, абсолютно бесплатны, но на текущий момент пока не нашел компонентов или библиотек для работы с Сетью, удовлетворяющих двум простым условиям:

  1. Простота в установке и использовании.
  2. Функциональность на уровне 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

Понравилась статья? Тогда:
Делись! Загружай! Плюсуй!
   Отправить PDF на   
Читай ещё статьи на WebDelphi.ru

Комментарии (16)

WP_Cloudy
  • Sergey пишет:

    html?

  • Kirill Krasnov пишет:

    Есть Synapse, который как уверяет Лукас работает с Lazarus.
    Что с TRegExpr? Или она только под винду?
    Согласен с Сергеем. Что у Лазаруса с PDF?

  • Vlad пишет:

    Синапс скачал, надо будет проверить его. Судя по отзывам вещь стоящая, вроде бы даже круче Indy. С TRegExpr…есть этот тип в Лазаре, но вот сам механизм работы с регулярными выражениями построен по другому. Благо в модуле есть внятный комментарий со ссылкой на литературу :) Буду изучать книжки.
    По поводу PDF и HTML. Дело в том, что чисто технически обеспечить составление отчётов в этих форматах можно и даже довольно просто, НО необходимо дать возможность тому кто работает с программой в составленный отчёт вносить коррективы (если это необходимо), например, давать пояснение почему использовался какой-нибудь коэффициент, добавлять описание какого-либо оборудования и т.д. потому что как бы я не старался сделать программу универсальной, учитывающей все тонкости методик, регламентов — такого к сожалению не сделать никогда. К сожалению в экологии нормативная база имеет свойство меняться по 3 раза на дню :) Вот и получается, что рыть надо в сторону документов офиса я же не заставлю 50-ти летнего инженера в срочном порядке изучать HTML :) Мне ещё предстоит его приучать к программе

  • Sergey пишет:

    Для отчётов с чистыми таблицами — csv
    Для форматированных документов — rtf
    А вообще очень помогает в этом деле FastReport, он правда платный и я не знаю на сколько дружит и Lasarus, но мы сейчас реализовали на нем систему, когда нет нужды разрабатывать отчет в  Delphi, а любой пользователь может создать свой в уже запущенном приложении, при условии знания sql. Если Пользователя чем-то не устраивает отчет, то может спокойно выгрузить в rtf и открыть в Word или OpenOffice

  • Vlad пишет:

    У Lazarusа есть LazReport — аналог Fast Report, а вот знания sql у пользователей точно нет. Некоторые даже Excel толком не знают — отсюда- то вся проблема и идёт. А отчёт должен содержать: описательную часть (что считается, по какой методике, кем и т.д.), далее расчётные формулы (здесь кстати OpenOffice очень удобен — формулы в XML хранятся) и далее туча таблиц, включая сводные. И всё это в одном файле. Видимо придётся досконально изучать формат OpenOffice.

  • IL пишет:

    А стандарт Ecma Office Open XML (ECMA-376) для генерации *.docx и *.xlsx можно применить? OpenOffice с ними работает с 3-й версии, и для MS Office они как родные.
    Описание форматов на сайте Майкрософт еще не закончено и датировано 5.11.2009:
    Формат Word — http://msdn.microsoft.com/en-us/library/dd773189.aspx (81 страница в PDF)
    Excel — http://msdn.microsoft.com/en-us/library/dd922181.aspx (186 страниц)
    На  русском читаю книгу Воутер Ван Вугта «Open XML кратко и доступно» в которой очень много примеров.

  • Vlad пишет:

    Что касается XML, то не важно чей он — от OpenOffice или от M$ — Lazarus вполне сносно работает с XML. Другое дело, что не хотелось бы ручками весь документ составлять, прописывать каждый тэг и т.д., а использовать OLE в Linux по определению невозможно. Судя по тому, что сейчас есть в наличии по работе с OpenOffice — придётся делать всё вручную. По поводу удобства работы с форматами, могу сказать, что формат OpenOffice выглядит более читабельным и понятным, чем Word 2003, а docx надо глянуть. Спасибо за ссылки

  • Виктор пишет:

    http://regexpstudio.com/ — прекрасно работает с Lazarus

  • Vlad пишет:

    Хм..может и работает, только сайт почему-то не грузится. Адрес точно такой?

  • Kirill Krasnov пишет:

    Сайт судя по всему в дауне

  • aktuba пишет:

    >>В Lazarus работа с таблицами организована, можно сказать, на высоте. Хочешь – заполняй в дизайнтайме, хочешь – задавай свойства каждого столбца в отдельности. Надо сделать, чтоб в ячейке был CheckBox – не проблема.
    Хм… Я от стандартных StringGrid/DrawGrid отказался, как только узнал о VirtualTreeView. Последний в самой Delphi используется ;).

  • Алексей Тимохин пишет:

    +1 для Synapse.
    После того как я только один раз просмотрел список юнитов и функций в файле справке, я перестал использовать Indy вообще. (впрочем, я и до этого с ним работал нечасто :D).
    StringGrid в Delphi — тьфу-тьфу-тьфу — намучался с ним когда только учил Delphi. С тех пор как стал писать DB-приложения, использую только DbGrid-ы. Даже если необходимо работать с локальными данными беру ClientDataset + DbGrid.

  • Алексей Тимохин пишет:

    Посмотрел LazReport (nice prefix, btw:D ) и первое что бросилось в глаза — лицензия LGPL. И тут я вспомнил в чём засада компонентов для Lazarus-а. Они в большинстве своём либо GPL либо LGPL. :(

  • Vlad пишет:

    По лицензиям да, есть такая заморочка. Но с другой стороны я особо ни от кого исходники никогда не прятал. Надо будет умыкнуть чего — так Delphi всегда под рукой :)
    А в Lazarus’e кстати по функциональности DBGrid и StringGrid одинаковы, поэтому никаких ClientDataset не требуется.

  • Зулька пишет:

    Скажите пожалуйста как в лазарусе можно прикреплять документы,такие например как презентации,потому что я выполняла проект в делфи и прикрепляла при помощи оле контейнера.А здесь я не могу найти аналог оле,пожалуйста помогите очень нужно

  • Vlad пишет:

    В принципе, если работа программы подразумевается только под Windows, то можно попробовать использовать модуль ComObj.pas, но как работать с презентациями — тут не подскажу, т.к. никогда этим не занимался…думаю принцип будет тот же, что и с любым приложением офиса

Ваш ответ

Внимание: Все комментарии модерируются, и это может вызвать задержку их публикации. Отправлять комментарий заново не требуется.

Пожалуйста, заключайте исходный код в тэги [code][/code].
Если код большой, то воспользуйтесь Вставкой кода на отдельной странице и оставьте в комментарии ссылку на исходник

   


Самый лучший питомник посадочного материала - в ассортименте саженцы