Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Элементы нумерации в RichEdit


Автор: Aleks26 15.8.2010, 15:26
Господа!!! Подскажите мне такую вещь: я создаю в Word'е rtf-файл и определяю некоторые абзацы как маркированные или нумерованные списки. В Word после сохранения это форматирование остается. Пытаюсь затем этот файл загрузить в RichEdit с помощью LoadFromFile. Вроде бы свойство RichEdit1.Paragraph.Numering этого абзаца должно быть nsBullet, но оно все время показывает nsNone. Самое интересное, что если я сохраняю этот файл с помощью SaveToFile, этот маркированный список в Word'е тоже не показывается. В чем тут проблема понять не могу никак. smile 

Автор: AKATAN 15.8.2010, 18:04
Aleks26, у меня все более чем работает.
офис - 2003, Delphi 2010.
вот пример:

Автор: Aleks26 17.8.2010, 14:14
Я  не совсем точно описал проблему: я сейчас создавал новый rtf-файл в компоненте RichEdit и у текущего абзаца выполняю оператор
 RichEdit1.Paragraph.Numbering := nsBullet,
а потом сохраняю созданный файл. Все проходит без проблем.
Но если я делаю наоборот: в Word-файле помечаю текст как маркированный список, то в проекте Delphi свойство Numbering имеет значение nsNone. Т.е., значение nsBullet наблюдается только когда я присваиваю его явно в Delphi, а, помечая в Word'е и считывая LoadFromFile все время получаю nsNone. smile 
Вот прямая ссылка на SFX-архив моего простейшего проекта: http://openfile.ru/671599/
[ у меня Delphi 7 и MS Office 2007]

Автор: AKATAN 17.8.2010, 14:49
MS Office 2007 думаю проблема в нем
А нет старого офиса?
Давай так. Промаркируй пару элементов текста в офисе и залей сюда этот ртф. Я гляну разницу.
Ибо проделал вышеописанное действие - все весьма удачно.

Автор: Aleks26 17.8.2010, 15:15
Цитата

Давай так. Промаркируй пару элементов текста в офисе и залей сюда этот ртф. Я гляну разницу.

Вот ссылка: http://openfile.ru/671660/     (второй абзац там маркирован)
А вот другая ссылка, где второй абзац маркирован Word'ом, а третий в проекте Delphi : http://openfile.ru/671693/

Автор: AKATAN 17.8.2010, 16:38
Глянул я на файлики.
Итого:
RichEdit в Delphi 7 создает rtf файл версии 1.8 (или даже 1.6)
http://www.microsoft.com/downloads/details.aspx?FamilyID=ac57de32-17f0-4b46-9e4e-467ef9bc5540&displaylang=en

А ворд 2007 создает rtf файл версии 1.9.1
http://www.microsoft.com/downloads/details.aspx?familyid=DD422B8D-FF06-4207-B476-6B5396A18A2B&displaylang=en

Но!
У меня установлены Delphi 2010 и Delphi 7
Офис лишь 2003
Создав rtf файл в Delphi 2010 (rtf 1.9.1), поставив маркер и проверив его присутствие в RichEdit'е Delphi 7 (rtf 1.8), то все работало на ура.

Сам файл я не парсил, нету сегодня сил. 
Но ты можешь этим заняться. Создай два одинаковых по содержимому rtf-а в Delphi 7 и Ворде 2007. Сравни их отрыв блокнотом, либо любым нормальным вьювером данных (есть в тоталкомандере).
Если не выйдет - отпиши, завтра сделаю сравнение.

Автор: Aleks26 17.8.2010, 17:51
Разница в этих файлах очевидна даже по размеру: 
delphi-файл : 2 кб, а вордовский - 36 кб smile 
Т.е., наверно, стоит поставить более новый Delphi для совместимости с 2007-м офисом

Автор: AKATAN 17.8.2010, 18:20
Неее... Стоит исследовать разницу этих версий ртф и описать свой опыт для блага потомков  smile 

Ставить более новую среду явно имеет смысл, ибо на мой взгляд  Embarcadero RAD Studio 2010 весьма удобная среда.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)