Компонент Richmemo

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

Re: Компонент Richmemo

Сообщение скалогрыз » 17.04.2016 21:30:24

woodhead писал(а):А есть ли возможность с помощью RichMemo программно добавлять таблицу в документ rtf и редактировать в ней данные?

нет такой возможности.

в крайнем случае можно сделать вставку/редактирование таблиц через winapi. Но работать будет только на последний версиях винды.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Компонент Richmemo

Сообщение woodhead » 18.04.2016 08:57:28

скалогрыз писал(а):нет такой возможности.

Можете прокомментировать, как разработчик этого компонента, почему?
Он там в принципе не нужен, или пока руки не дошли? Может быть добавите в ближайшее (или не столь ближайшее) время?
woodhead
новенький
 
Сообщения: 21
Зарегистрирован: 24.12.2014 12:23:20

Re: Компонент Richmemo

Сообщение скалогрыз » 18.04.2016 16:14:15

когда RichMemo начинался, возможности добавлять таблицы вообще в виндовский RICHEDIT не было.
(RichMemo основан на системном компоненте, и его возможности ограничены возможснотью системы). Таблицы (с бордирчиками) появились только в RICHEDIT Вин 7, если я не ошибаюсь.

Так же, если смотреть на RichMemo, как на кроссплатформенный компонент, то таблицы не будут работать ни под Gtk2, ни под Qt (точно не будут по Carbon, но может быть будут под Cocoa). Т.е. даже если и добавлять таблицы, то только в качестве Виндоус фичи.

В общем и целом, с древних времён для табличного представления рекомендуются использовать "tabs".
Это хоть и убогий, но действенный способ, а главное, что работает на всех платформах.

Кстати, когда запросы превышают возможности RichMemo, я всем рекомендую использовать Kmemo. Сам я им не пользовался, но и жалоб на него не слышал. Это полноценный редактор, и судя по всему очень даже пригодный для задач по вёрстке документов. Поддержка таблиц в нём присутствует.

woodhead писал(а):Он там в принципе не нужен, или пока руки не дошли? Может быть добавите в ближайшее (или не столь ближайшее) время?

а насколько сильно нужно?
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Компонент Richmemo

Сообщение woodhead » 18.04.2016 16:57:30

скалогрыз писал(а):RichMemo основан на системном компоненте, и его возможности ограничены возможснотью системы

Я правильно понимаю, что в Windows есть какой-то стандартный компонент (или API), с помощью которого и работает ваш RichMemo?
Я думал, что вы парсите файл согласно спецификации на формат.
скалогрыз писал(а):В общем и целом, с древних времён для табличного представления рекомендуются использовать "tabs".

То есть это просто форматирование отступами? Без возможности начертить линии ячеек таблицы?
скалогрыз писал(а):Кстати, когда запросы превышают возможности RichMemo, я всем рекомендую использовать Kmemo.

Благодарю, обязательно ознакомлюсь.
скалогрыз писал(а):а насколько сильно нужно?

В данный момент приходится оформлять отчёты через автоматизацию с MS Word. Форматирование в отчётах не очень сложное, но есть таблицы. Хотелось бы обойтись без Word (или оставить просто дополнительной фичей) и сделать приложение самодостаточным. Другого подходящего формата, кроме RTF, в голову не приходит. Я мог бы даже продонатить денежку за доработку компонента, но я частное лицо, поэтому мои финансовые возможности ограничены. Можете в личку черкнуть, за сколько вы бы доработали компонент? Авось, договоримся. Единственное требование - работать должно на Windows, начиная с XP.
woodhead
новенький
 
Сообщения: 21
Зарегистрирован: 24.12.2014 12:23:20

Re: Компонент Richmemo

Сообщение скалогрыз » 18.04.2016 17:02:10

woodhead писал(а):Я правильно понимаю, что в Windows есть какой-то стандартный компонент (или API), с помощью которого и работает ваш RichMemo?
Я думал, что вы парсите файл согласно спецификации на формат.

RICHEDIT (пишу капаслоком, просто чтобы отличать от делфийского TRichEdit).
Файл дейстивтельно парсится для всех других систем (линух) кроме винды, в Маке кстати тоже нативно поддерживается RTF. Но вообще много тонкостей есть с автоматическим парсингом.

woodhead писал(а):То есть это просто форматирование отступами? Без возможности начертить линии ячеек таблицы?

Да, именно так.
woodhead писал(а):Можете в личку черкнуть, за сколько вы бы доработали компонент? Авось, договоримся.

Я очень долго ждал когда такой момент придёт, и мне предложат деньги за доработку (как и подабает истинному Open Source проекту)
Но на данный момент соглашусь компонент доработать просто за услугу его тестирования :)

Добавлено спустя 3 минуты 38 секунд:
woodhead писал(а): Единственное требование - работать должно на Windows, начиная с XP.

Точно не получится. Рекомендую даже протестировать следующим образом.
в MS Word создай документ с полноценной табличкой (достаточно 2x2)
сохрани документ как .rtf. И в ворде же открой - таблички должны быть на месте.

Потом открой этот .rtf с помощью Wordpad-а. Очень большой шанс что на винде 7 и более поздних, таблички будут видны, а вот в Wordpad-е на XP абличек не будет.
Wordpad основан на том же RICHEDIT-е, и все ограничения видимые Wordpad-е будут и в RichMemo.

В теории можно рисовать таблички руками, поверх RichEdit текста. Но это всё-равно не будут таблицы в прямом смысле слова, т.к. в таблицах каждая ячейка действует как самостоятельный контейнер текста. По-этому я бы рекомендовал KMemo, где уже всё вроде бы есть.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Компонент Richmemo

Сообщение woodhead » 18.04.2016 17:36:10

скалогрыз писал(а):Я очень долго ждал когда такой момент придёт, и мне предложат деньги за доработку

И тут я такой, весь в белом :-)
скалогрыз писал(а):Потом открой этот .rtf с помощью Wordpad-а. Очень большой шанс что на винде 7 и более поздних, таблички будут видны, а вот в Wordpad-е на XP абличек не будет.

Мне важно, чтобы в MS Word под XP эти таблички были видны. Я думаю (надеюсь), что в LibreOffice и OpenOffice эти таблички также будут видны.
Но я вас понял, этим табличкам в XP просто неоткуда появиться. Но в Linux вы же всё-таки обошли эту проблему? То есть, там распарсили файл и таблицы есть? Может быть придумаете способ, как создавать таблицы в файле на основе спецификации формата в Windows без участия RICHEDIT?
скалогрыз писал(а):В теории можно рисовать таблички руками, поверх RichEdit текста. Но это всё-равно не будут таблицы в прямом смысле слова, т.к. в таблицах каждая ячейка действует как самостоятельный контейнер текста.

Это с позиции RICHEDIT не будет таблицей в прямом смысле, а для пользователя вашего компонента всё-равно. Лишь бы остальные редакторы, которые понимали RTF, открывали его корректно, с "таблицами". Тем не менее, я понимаю ваше стремление поддерживать работу компонента нативно для системы, не внося "отсебятину". Для такого случая можно предусмотреть два варианта отрисовки таблиц. Но это на мой дилетантский взгляд.
woodhead
новенький
 
Сообщения: 21
Зарегистрирован: 24.12.2014 12:23:20

Re: Компонент Richmemo

Сообщение скалогрыз » 18.04.2016 17:41:46

woodhead писал(а):Мне важно, чтобы в MS Word под XP эти таблички были видны. Я думаю (надеюсь), что в LibreOffice и OpenOffice эти таблички также будут видны.
Но я вас понял, этим табличкам в XP просто неоткуда появиться. Но в Linux вы же всё-таки обошли эту проблему? То есть, там распарсили файл и таблицы есть? Может быть придумаете способ, как создавать таблицы в файле на основе спецификации формата в Windows без участия RICHEDIT?

проблема не в RTF формате, проблема в стандартном RICHEDIT-е (под в WinXP), который таблички не отображает. И что самое плохое, при записе в файл он их может легко потерять.
Ни одно из офисных приложений не использует виндовский RICHEDIT для вёрстки документов. Потому что компонент для этих целей не пригоден. Они все используют свои собственные компоненты, на подобие KMemo.

Добавлено спустя 1 минуту 1 секунду:
woodhead писал(а):Для такого случая можно предусмотреть два варианта отрисовки таблиц. Но это на мой дилетантский взгляд.

если таблицы и будут добавлены в RichMemo, то поддержки таблиц для WinXP точно не будет :)
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Компонент Richmemo

Сообщение woodhead » 18.04.2016 17:58:57

скалогрыз писал(а):Они все используют свои собственные компоненты, на подобие KMemo.

Возможно, я не понимаю ваших целей. Почему разработчики KMemo считают, что можно нарисовать таблицу в RTF, и она везде будет отображаться нормально, а вы выбрали другой путь? Почему они не боятся, что файл RTF с таблицей в WordPad под Windows XP будет отображаться неправильно?
скалогрыз писал(а):если таблицы и будут добавлены в RichMemo, то поддержки таблиц для WinXP точно не будет

Жаль, процент машин с этой ОС ещё достаточно велик.
woodhead
новенький
 
Сообщения: 21
Зарегистрирован: 24.12.2014 12:23:20

Re: Компонент Richmemo

Сообщение скалогрыз » 18.04.2016 18:14:06

woodhead писал(а):Возможно, я не понимаю ваших целей. Почему разработчики KMemo считают, что можно нарисовать таблицу в RTF, и она везде будет отображаться нормально, а вы выбрали другой путь? Почему они не боятся, что файл RTF с таблицей в WordPad под Windows XP будет отображаться неправильно?

Потому что это проблемы Wordpad-а и его пользователей.
Хотите нормально отображающийся документ?! - используйте нормальный софт ;)

Формат RTF предоставляет намного больше возможностей, чем поддерживается RICHEDIT-ом (в частности Wordpad-ом или RichMemo).
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Компонент Richmemo

Сообщение woodhead » 18.04.2016 19:09:54

KMemo выглядит многообещающе, но не всё гладко. В приложении в компоненте на форме, например, текст вставлен перед таблицей (так отображается). После сохранения в файл RTF и просмотра его в Word 2010 (Win7) текст оказывается в первой ячейке таблицы.
А в WordPad вообще форматирование съезжает и линии ячеек пропадают.
Кстати, форматирование съезжает в WordPad даже если загрузить в KMemo а потом из него сохранить родной RTF файл.
Специально сравнил с RichMemo - в нём все после открытия и сохранения файл RTF отображается корректно, без изменений, и в Word, и в WordPad (в том числе и существующие таблицы).

Добавлено спустя 23 минуты 21 секунду:
скалогрыз писал(а):в таблицах каждая ячейка действует как самостоятельный контейнер текста

Только сейчас дошло, что вы имели ввиду. Этот документ нельзя будет редактировать нормально в других редакторах, так как "таблица" и текст в её ячейках будут несвязанными объектами.
woodhead
новенький
 
Сообщения: 21
Зарегистрирован: 24.12.2014 12:23:20

Re: Компонент Richmemo

Сообщение скалогрыз » 18.04.2016 19:37:02

woodhead писал(а):Специально сравнил с RichMemo - в нём все после открытия и сохранения файл RTF отображается корректно, без изменений, и в Word, и в WordPad (в том числе и существующие таблицы

так что если не тербовать "да обязательно работать должна под XP" то можно использовать RichMemo :D

woodhead писал(а):После сохранения в файл RTF и просмотра его в Word 2010 (Win7) текст оказывается в первой ячейке таблицы.
А в WordPad вообще форматирование съезжает и линии ячеек пропадают.
Кстати, форматирование съезжает в WordPad даже если загрузить в KMemo а потом из него сохранить родной RTF файл.

а вот тут, возможно, имеет смысл связаться с автором KMemo и попросить его починить этот баг с записью таблиц в RTF файл.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Компонент Richmemo

Сообщение kazalex » 18.04.2016 19:39:03

скалогрыз писал(а):Точно не получится

table_in_wordpad_w2k.png
WordPad c таблицей на Windows 2000
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: Компонент Richmemo

Сообщение скалогрыз » 18.04.2016 19:42:42

kazalex писал(а):WordPad c таблицей на Windows 2000

интересно. интересно. А нежели RichMemo такое же сделать?
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Компонент Richmemo

Сообщение woodhead » 18.04.2016 19:44:03

скалогрыз писал(а):интересно. интересно. А нежели RichMemo такое же сделать?

Я только ЗА! Руки у вас, похоже, прямее, чем у разработчика KMemo.
woodhead
новенький
 
Сообщения: 21
Зарегистрирован: 24.12.2014 12:23:20

Re: Компонент Richmemo

Сообщение скалогрыз » 18.04.2016 19:52:01

woodhead писал(а):Я только ЗА!

зависит от системного компонента. Мне вот помнится что в XP таблички не грузились.
Но скриншот 2000 убеждает меня в обратном. Нужен тест!

woodhead писал(а):Руки у вас, похоже, прямее, чем у разработчика KMemo.

Закажем так, у автора КМемо руки очень даже прямые.
1) я просто предоставляю обёртку вокруг системных функций, тогда как он пишет компонент с нуля. А это не самая простая задача, я должен заметить.
2) проблема с записью в RTF может достаточно легко исправлятся. Но она не исправится, если автор КМемо о ней не узнает.
Авторы компонентов очень серьёзно зависят от тестировщиков!

Добавлено спустя 5 минут 55 секунд:
2 kazalex, есть ли что-нить с RM на это 2000й?
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Пред.След.

Вернуться в Компоненты

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

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

Рейтинг@Mail.ru