C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
RichEdit, отображение степени
noname
Отправлено: 05.11.2004, 18:44


Не зарегистрирован







Требуется отобразить степень числа (2^5, чтобы 5 было написано выше 2 — как в алгебре) в RichEdit'е. Как это сделать?

В RichEdit есть свойство — Lines. Как туда записать текст разных шрифтов, размеров?
avc*
Отправлено: 06.11.2004, 14:59


Не зарегистрирован







Командами форматирования.
Напишите в Worde сохраните как rtf вставьте себе.
Если не получится в понеделбник помогу.
Guest
Отправлено: 09.11.2004, 18:46


Не зарегистрирован







Если загружать rtf — все отображается, но проблема в том, что недопустимо таскать с программой rtf файл с текстом.

Опишу проблему подробно.
Необходимо отображать простейшие математические формулы (со степенями, индексами, греческими символами). Для этого создаю RichEdit c необходимым текстом. Причем, если, например, требуется символ "пи", то записываю символ с ASCII кодом символа "пи" в шрифте "Symbol" (в этом случае 112 — "p"). Потом в OnCreate RichEdit'а
заменяю шрифт записанного сивола на "Symbol". (было "p" в TimesNewRoman — стало "пи" в Symbol). Но как отображать степени и индексы? Может быть менять стиль символа?



Rius
Отправлено: 09.11.2004, 19:53


Мастер участка

Группа: Участник
Сообщений: 321



Если ничего не получится, посмотри в инете компонент RichView.
Valdemar
Отправлено: 10.11.2004, 09:34


Мастер участка

Группа: Участник
Сообщений: 433



Или посмотрите HTMLLabel из TMS Component Pack (www.tmssoftware.com), он поддеживает простые html-теги, с помощью которых можно будет отображать надстрочные и подстрочные индексы.
AVC
Отправлено: 10.11.2004, 10:07


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

Если загружать rtf — все отображается, но проблема в том, что недопустимо таскать с программой rtf файл с текстом

Я вообще имел ввиду не таскать rtf, а посмотреть коды форматирования.
Файл создается как строка в памяти и показывается через TRichEdit
Например так
CODE

AnsiString str = "
{\\rtf1\\ansi\\ansicpg1251\\deff0\
{\\fonttbl\
{\\f0\\fnil Arial;\
 \\f1\\fnil Courier New;\
}\
}\
{\\colortbl\
;\
\\red000\\green000\\blue255;\
\\red128\\green000\\blue000;\
\\red255\\green255\\blue255;\
}\
\\lang1049\\viewkind4\\uc1\
\\pard\\qc\
\\f1\\fs48\\cf3\\highlight2\\b\\~A\\~s\\~d\\~\\b0\\highlight0\
\\par \
\\pard\\ql\
\\f0\\fs24\\cf0\
Some text \
\\cf1\\u\l\b\\i link sample\\cf0\\ulnone\\b0\\i0\
Other text\
\\par \
}\
";

REdit1->PlainText = false;
TStringStream *ss = new TStringStream(str);
try { REdit1->Lines->LoadFromStream(ss); }
__finally { delete ss;  }

avc*
Отправлено: 10.11.2004, 11:30


Не зарегистрирован







PS. TRichEdit поддерживает далеко не все теги rtf
noname
Отправлено: 10.11.2004, 18:18


Не зарегистрирован







Всем большое спасибо за информацию!
noname
Отправлено: 11.11.2004, 18:34


Не зарегистрирован







to avc*...

а какой тег отвеяает за степень и индекс?
AVC
Отправлено: 12.11.2004, 09:04


Ветеран

Группа: Модератор
Сообщений: 1583



CODE

{\rtf1\ansi\ansicpg1251\deff0\deflang1049\deflangfe1049{\fonttbl{\f0\fnil\fcharset204 ;}{\f1\fswiss\fcharset0 Arial;}{\f2\fnil\fcharset204  ;}}
{\colortbl;\red255\green255\blue255;\red128\green0\blue0;\red0\green0\blue255;}
\viewkind4\uc1\pard\nowidctlpar\qc\cf1\lang1033\b\f0\fs48  \highlight2\f1  Asd \highlight0\b0\f0\par
\pard\nowidctlpar\cf0\f2\fs24  Some text \cf3\ul\b\i link sample\ulnone\b0\i0  \cf0 Other text\par


\pard\nowidctlpar\cf0\f2\fs24 основание\up12\fs18степень\up0
\fs24продолжение текста
\par
}

Последние три строки — то о чем вы спрашиваете

Вернуться в Вопросы программирования в C++Builder