Форум Программирование пропадает шрифт и цвет в RichEdit |
|
Мой пример. Есть 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) шрифтом равно как и со многими другими шрифтами, как описано в обсуждении по ссылке? Дайте надежду, что проблему можно решить. | |||||||
|
Для форматирования текста в RichEdit используются другие свойства. Но вот честое слово забыл как они называются, а делфи под рукой нет... Толи SelAttr толи просто Selection, или както подругому... Копать нужно в сторону вложеного свойства Font. | |||||||
|
Во-первых: если Вы будете мынусить репутацыю каждому, кто попытался Вам помочь,то помощи явно недождетесь... (и не странно что никто больше не ответил) Во-вторих: Внимательно читайте сообщение: Я имел ввиду не 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 | |||||||
|
Посмотри мой модуль поддержки BBCode: http://www.delphi.int.ru/code/70a4ea26 Изпользуй тэги [COLOR:#cl][/COLOR] и [SIZE:n][/SIZE]. Например так: InsertBBCode (RichEdit1,'[COLOR:#ff0000]Hello[/COLOR], [SIZE:24]WORLD[/SIZE].'); Ⓐ свобода сопротивление солидарность | |||||||
|
Там используются модуля AlphaControls для вставки смайлов. Если ты их не используешь - можешь вырезать... Ⓐ свобода сопротивление солидарность | |||||||
|
Спасибо громадное Ixer: за ответ. Я бы в жизни до этого не додумался. И за то, что ответил после того, как я незаслуженно необдуманно убавил ему репутацию. Его ответ помог. Мне это действительно важно: Собственно здесь Вы уже убиваете форматирование, затронув свойство RichEdit.Font. Нужно: RichEdit2.SelAttributes.Size:=StrToInt(Edit1.text); Обещаю завтра же вернуть балл репутации. | |||||||
Перейти в раздел:
© 2004 - 2024, Delphi.int.ru |
Версия форума: 1.10 (19.01.2010) |
Выполнено за 0.01 сек. |