Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Вниз

Редактирование   Найти похожие ветки 

 
boalse ©   (2005-12-27 06:35) [0]

Есть простенький формат текста. Если после какой-то конкретной позиции меняется цвет шрифта, то после этой позиции пишется к примеру #C=Red#, весь текст после этой директивы будет отображаться красным, если нужно отображать текст неким цветом по умолчанию, то пишется #C=D#, если цвет "не стандартный" то допускается вместо red и т.п. писать числовое значение цвета (IntToStr(Color)).

Одна программа (игра) занимается только отрисовкой данного текста с учетом всех директив. Требуется создать программу, которая будет предоставлять пользователю удобно этот текст редактировать. Пользователь не должен видеть сами директивы, должен видеть только результат их работы. Если он хочет изменить цвет фрагмента, то просто выделяет текст и вызывает ColorDialog.

Ну, работу с цветным текстом, как известно, можно возложить на RichEdit, но вот как в него загружать и выгружать текст в своём формате, и желательно каким-нибудь не тормозным способом (типа, пробегаем в нём все строки, выделяем нужные фрагменты, назначаем им цвет, ведь при этом будет вызываться перерисовка контрола, а это не к чему)?

Есть весьма заманчивый вариант: перед загрузкой текста в RichEdit программа конвертирует мой формат в формат RTF, записывет результат в файл или поток, затем LoadFromFile или LoadFromStream. При сохранеии текста, наоборот SaveToFile или SaveToStrem, и затем конвертировать эти данные в мой формат и сохранить как мне нужно.

Проблема в том, что нужен парсер для Rtf формата. Он уже встроен в RichEdit, его можно как-нибудь использовать? Или есть другие варианты для разруливания этой ситуации?


 
boalse ©   (2005-12-28 05:07) [1]

up


 
Думкин ©   (2005-12-28 05:51) [2]

Использовать RTF?


 
boalse ©   (2005-12-28 08:20) [3]

Нет, текст нужно хранить именно в моём формате, в нём нет всяких лишних тегов и прочего мусора, только то, что мне нужно. А вот редактировать без разницы в чём. В принципе, проблему уже решил при помощи SelStart, SelLength, но я не считаю это решение оптимальным, хотелось бы что-нибудь поизящней. Самое лучшее - написать свой компонент. Ладно, снимаю вопрос. Помогу себе сам.


 
TUser ©   (2005-12-28 09:36) [4]


>  принципе, проблему уже решил при помощи SelStart, SelLength,
>  но я не считаю это решение оптимальным

Зря не считаешь. Только все-таки хочется в RTF все это делать - там уже все сотворено, а тебе придется на все грабли наступать самому.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.04 c
2-1136187898
Khim
2006-01-02 10:44
2006.01.22
Как можно вставить свою иконку в MessageBox, подробнее


2-1136214464
JEK2
2006-01-02 18:07
2006.01.22
Как узнать путь к каталогу с прогой


14-1135668820
vidiv
2005-12-27 10:33
2006.01.22
модераторам


3-1132831336
Prohodil Mimo
2005-11-24 14:22
2006.01.22
Как подключиться к базу на FB1.5 установленной на Linuxe?


2-1136464753
ArtemESC
2006-01-05 15:39
2006.01.22
Получить иконку...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский