Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 04.01.2008, 13:11
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Смущение

С цветом текста получилось !!!
ЗЫ: извините за лишние вопросы.
ЗЫЫ: предыдущий вопрос ещё в силе.
Ответить с цитированием
  #17  
Старый 04.01.2008, 13:16
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Лампочка Всё разобрался !!!

Всё разобрался !!! И с предидущим вопросом тоже !
Но есть важный вопрос:
Возможно ли как-то скрывать мои теги(типа [center]... но обработав их, форматировать текст по ним+сохранять текст с тегами)
Ответить с цитированием
  #18  
Старый 04.01.2008, 13:23
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Вопрос

А как применить
Код:
ReichEdit.Paragraph.Alignment :=taLeftJustify;
К определенному выделенному тексту, а то получается, что ко всему..
Можно ли вообще применить это к определенному выделенному тексту, а затем перейти на новую строку с новыми выравниваниями.

Последний раз редактировалось Oleg, 04.01.2008 в 13:43.
Ответить с цитированием
  #19  
Старый 04.01.2008, 13:41
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

RichEdit сам умеет сохранять в RTF:
Код:
RichEdit1.Lines.SaveToFile('c:\file.rtf');
Если же вы хотите внутри XML-тэгов в тексте использовать еще какие-то тэги, то обрабатывать их нужно самостоятельно. Т.е. разбирать строку по элементам, смотреть начало и конец тэгов, контролировать их парность, проверять на допустимость в конкретном контексте и много чего еще делать. Я примерно представляю как это делать, но программировать не буду.
Ответить с цитированием
  #20  
Старый 04.01.2008, 13:44
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Радость

А возможно ли скрыть мои теги, а на самом деле они будут ?
И предидущий вопрос тоже в силе.

Последний раз редактировалось Oleg, 04.01.2008 в 13:47.
Ответить с цитированием
  #21  
Старый 04.01.2008, 14:27
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Цитата:
Сообщение от Oleg
А возможно ли скрыть мои теги, а на самом деле они будут ?
Возможно все, но иногда за бесконечно долгое время

Еще раз попытаюсь объяснить.

Если мы говорим о RichEdit, то он не поддерживает никаких тэгов кроме собственных, о которых вы и я ничего не знаем и не хотим знать. Нам доступно свойство Text, которое представляет собой строку с полным текстом RichEdit`а, свойство Lines, которое представляет собой строки абзацев и ряд свойств для форматирования. Как форматируется, подчеркиваю, мы не знаем. Чорный ящик.

Нужно как-то обеспечить, чтобы этот ящик "понимал" наши тэги, преобразовывая их в свои при чтении и обратно в наши - при сохранении.

Первый путь: на вход этого ящика мы должны подать чистый текст, без тэгов, которые мы не хотим отображать, а форматирование выполнить уже средствами RichEdit. То есть, нужно предварительно разобрать текст с тэгами, запомнить - с какой позиции и какой длины, например, текст красный, а с какой - жирным шрифтом (а тэги могут быть и вложенными). Всю эту работу нужно проделать самостоятельно. Для сохранения делаем то же самое, но в обратном порядке.

Второй вариант: у RichEdit есть свойство DefaultConverter класса TConversion. Насколько я понимаю, от этого TConversion можно создать наследника, переопределить два его виртуальных метода ConvertReadStream и ConvertWriteStream и присвоить экземпляр этого класса свойству DefaultConverter (либо зарегистрировать его через RegisterConversionFormat).

Как видите, оба варианта достаточно трудоемки.

Можно, конечно, написать свой компонент, для отображения форматирования текста на основе собственных тэгов, но вряд ли это будет проще.
Ответить с цитированием
  #22  
Старый 04.01.2008, 14:32
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Цитата:
Сообщение от Oleg
А как применить
Код:
ReichEdit.Paragraph.Alignment :=taLeftJustify;
К определенному выделенному тексту, а то получается, что ко всему..
Можно ли вообще применить это к определенному выделенному тексту, а затем перейти на новую строку с новыми выравниваниями.

Я же написал в первом своем ответе - Paragraf это либо текущий абзац, либо выделенный фрагмент текста. Т.е. выделяете часть текста и форматирование будет применяться именно к этому куску. Я только не понимаю, как можно фрагмет абзаца выровнять влево. По-моему, выравнивание - это аттрибут как раз абзаца целиком.
Ответить с цитированием
  #23  
Старый 04.01.2008, 14:35
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Paragraph - это текущий абзац.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #24  
Старый 04.01.2008, 14:58
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Цитата:
Сообщение от The Shadow
Paragraph - это текущий абзац.
Да, правильно, это я ерунду написал. Текущий абзац, конечно.
Ответить с цитированием
  #25  
Старый 04.01.2008, 17:52
Аватар для Oleg
Oleg Oleg вне форума
Активный
 
Регистрация: 29.11.2007
Адрес: Оренбургская обл., Россия
Сообщения: 261
Репутация: 15
Вопрос Возник вопрос

Вот я нажимаю на кнопку(предварительно выбрав текст) и делаю его цветным, а потом мне нужно, чтобы текст был по умолчанию, т.е. не шел цветным. Как исправить подскажите ?
Проблема решается у меня так:делаю кусок текста цветным, копирую нецветной и вставляю его вперед и т.д.

Последний раз редактировалось Oleg, 04.01.2008 в 18:06.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:04.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025