| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Элементы нумерации в RichEdit |
| Автор: Aleks26 15.8.2010, 15:26 |
| Господа!!! Подскажите мне такую вещь: я создаю в Word'е rtf-файл и определяю некоторые абзацы как маркированные или нумерованные списки. В Word после сохранения это форматирование остается. Пытаюсь затем этот файл загрузить в RichEdit с помощью LoadFromFile. Вроде бы свойство RichEdit1.Paragraph.Numering этого абзаца должно быть nsBullet, но оно все время показывает nsNone. Самое интересное, что если я сохраняю этот файл с помощью SaveToFile, этот маркированный список в Word'е тоже не показывается. В чем тут проблема понять не могу никак. |
| Автор: 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. Вот прямая ссылка на 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 кб Т.е., наверно, стоит поставить более новый Delphi для совместимости с 2007-м офисом |
| Автор: AKATAN 17.8.2010, 18:20 |
| Неее... Стоит исследовать разницу этих версий ртф и описать свой опыт для блага потомков Ставить более новую среду явно имеет смысл, ибо на мой взгляд Embarcadero RAD Studio 2010 весьма удобная среда. |