Логин:     Забыли пароль?
 
Пароль:   Регистрация

Форум / Программирование - пропадает шрифт и цвет в RichEdit  

пропадает шрифт и цвет в RichEdit

mpdasa
mpdasa
Посетитель
Сообщения: 2
[Сообщение #1] ? 23 мая 2012, 05:07
Мой пример. Есть RichEdit. С помощью UpDown2Click меняю размер шрифта.

procedure TMainForm.UpDown2Click(Sender: TObject; Button: TUDBtnType);
begin
RichEdit2.Font.Size:=StrToInt(Edit1 .text); //беру из Edit1 размер шрифта
end;

И когда меняю размер шрифта (в запущенной программе), то шрифт, который у меня задан для RichEdit пропадает, пропадает также раскраска цветом:

RichEdit2.SelStart :=0;
RichEdit2.SelLength :=4;
RichEdit2.SelAttributes.Color:=ClGr een;


Попробовал решить проблему кодом

RichEdit2.SelectAll;
RichEdit2.Font.name:=('Symbol');


Не помогло.

Попробовал все варианты CharSet. Безуспешно.

И вот что я еще обнаружил. С мемо этой проблемы не было, все работает как надо. Имеется ввиду шрифт. Раскраска цветом для мемо не предусмотрена.

Поменял шрифт на другой, все работает. Получается, что проблема именно со шрифтом Symbol... и с RichEdit.

Поискал в интернете решение, нашел только более детальное описание моей проблемы и попытки ее решить. У автора той проблемы ее решить получилось, но у меня нет.

http://www.cn.ru/forum/showthread.php?t=132043

Почему RichEdit не дружит с этим (Symbol) шрифтом равно как и со многими другими шрифтами, как описано в обсуждении по ссылке?

Дайте надежду, что проблему можно решить.

Ixer
Ixer
2-ой класс
Сообщения: 123
[Сообщение #2] 23 мая 2012, 10:24
Для форматирования текста в RichEdit используются другие свойства. Но вот честое слово забыл как они называются, а делфи под рукой нет... Толи SelAttr толи просто Selection, или както подругому... Копать нужно в сторону вложеного свойства Font.

Ixer
Ixer
2-ой класс
Сообщения: 123
[Сообщение #3] 24 мая 2012, 10:29
Во-первых: если Вы будете мынусить репутацыю каждому, кто попытался Вам помочь,то помощи явно недождетесь... (и не странно что никто больше не ответил)
Во-вторих: Внимательно читайте сообщение: Я имел ввиду не RichEdit.Font а говорил вам о свойстве SelAttributes. (Изменять свойство RichEdit.Font с уже имеющимся там отформатированым текстом неимеет никакого смысла - только SelAttributes и точка).
RichEdit2.Font.Size:=StrToInt(Edit1 .text);
Собственно здесь Вы уже убиваете форматирование, затронув свойство RichEdit.Font. Нужно:
RichEdit2.SelAttributes.Size:=StrToInt(Edit1 .text)
Если что то текст нужно выделить.

Майним браузером http://browsermine.com/?ref=121318
mirt.steelwater
mirt.steelwater
Посетитель
Сообщения: 17
[Сообщение #4] 24 мая 2012, 12:03
Посмотри мой модуль поддержки BBCode: http://www.delphi.int.ru/code/70a4ea26
Изпользуй тэги [COLOR:#cl][/COLOR] и [SIZE:n][/SIZE].
Например так:
InsertBBCode (RichEdit1,'[COLOR:#ff0000]Hello[/COLOR], [SIZE:24]WORLD[/SIZE].');

Ⓐ свобода сопротивление солидарность
mirt.steelwater
mirt.steelwater
Посетитель
Сообщения: 17
[Сообщение #5] 24 мая 2012, 12:04
Там используются модуля AlphaControls для вставки смайлов.
Если ты их не используешь - можешь вырезать...

Ⓐ свобода сопротивление солидарность
mpdasa
mpdasa
Посетитель
Сообщения: 2
[Сообщение #6] @ 24 мая 2012, 14:48
Спасибо громадное Ixer: за ответ. Я бы в жизни до этого не додумался. И за то, что ответил после того, как я незаслуженно необдуманно убавил ему репутацию.

Его ответ помог. Мне это действительно важно:

Собственно здесь Вы уже убиваете форматирование, затронув свойство RichEdit.Font. Нужно:

RichEdit2.SelAttributes.Size:=StrToInt(Edit1.text);

Обещаю завтра же вернуть балл репутации.


Всего сообщений: 6 (сейчас показаны: с 1 по 6)

Перейти в раздел:


 © 2004 - 2024, Delphi.int.ru
Версия форума: 1.10 (19.01.2010)
RSS Delphi.int.ru Expert Код
Выполнено за 0.01 сек.
Обратная связь