Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Верхний регистр текста в формах


Автор: maxi91m 23.3.2010, 22:42
Как сделать что бы некоторые символы в строке выводились(не важно куда listBox, textBox, или еще куда) в верхнем регистре?
Если привязаться к моей задаче то надо вывести полином и я хочу что бы было как должно быть а не  в таком(xy^2+x^5+4)
Возможно ли такое, и что для этого надо?
 smile 

Автор: Earnest 24.3.2010, 09:49
strupr

Автор: xvr 24.3.2010, 09:55
Цитата(Earnest @ 24.3.2010,  09:49)
strupr

Сдается мне, что автору нужен надстрочный текст (superscript), а не верхний регистр smile 
2 maxi91m: Из обычных контролов это можно сделать в RichEdit'е

Автор: maxi91m 24.3.2010, 10:20
Извиняюсь, я не правильно выразился, мне нужен надстрочный текст. Сейчас буду крутить с richTextBox1


Сразу же встал новый вопрос, а как сразу хранить и надстрочный текст и обычный, что бы это все было в одной строке на вывод или как еще там можно?
 smile 

Автор: xvr 24.3.2010, 10:46
Цитата(maxi91m @ 24.3.2010,  10:20)
Сразу же встал новый вопрос, а как сразу хранить и надстрочный текст и обычный, что бы это все было в одной строке на вывод 
 smile

Отформатировать все в RTF и загрузить через RichEdit->Lines->LoadFromStream (для BCB)

Цитата

или как еще там можно?
Можно загрузить обычный текст и потом его редактировать через методы RichEdit для переведения нужных кусков в superscript

Автор: maxi91m 24.3.2010, 11:19
Вот у мен есть строка String^ str = "xy^2+x^5+4"  
Значит мне надо пробежатся по всей строке и где я встречаю "^" все следующие цифры до первого буквенного символа поднять над строкой.
Все эти изменения пишутся в саму же строку или куда то еще?
Или же надо загрузить уже в richTextBox1 и в нем пробегать и изменять нужные символы? 
 

Автор: xvr 24.3.2010, 17:51
Цитата(maxi91m @ 24.3.2010,  11:19)
Вот у мен есть строка String^ str = "xy^2+x^5+4"  
Значит мне надо пробежатся по всей строке и где я встречаю "^" все следующие цифры до первого буквенного символа поднять над строкой.

Надо перевести текст в RTF. Где то так:
Цитата

{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 MS Sans Serif}}xy{\super 2}+x{\super 5}+4}
(Выделенная часть фиксированная, остаток строки - переведенная формула)
Цитата

Все эти изменения пишутся в саму же строку или куда то еще?
Куда угодно. Главное, что бы они потом были загружены в RichEdit именно как RTF текст

Цитата

Или же надо загрузить уже в richTextBox1 и в нем пробегать и изменять нужные символы?
То же можно, по желанию  smile 

Автор: 586 24.3.2010, 21:24
Как вариант, можно использовать Юникод. И печатать будет можно где угодно - и в listBox и в textBox и т.д. Главное - чтобы эту кодировку поддерживал шрифт.

(xy²+x⁵+4)

http://en.wikipedia.org/wiki/Unicode_subscripts_and_superscripts

Автор: maxi91m 24.3.2010, 23:35
Цитата(586 @  24.3.2010,  21:24 Найти цитируемый пост)
Как вариант, можно использовать Юникод. И печатать будет можно где угодно - и в listBox и в textBox и т.д. Главное - чтобы эту кодировку поддерживал шрифт.(xy²+x⁵+4)http://en.wikipedia.org/wiki/Unicode_subsc...nd_superscripts


А как это все затолкать туда? я пишу 
richTextBox1->Text = '&#8304'; не компилится
richTextBox1->Text = "&#8304"; выводит то что я подаю тоесть &#8304 а не нолик
Как можно еще?

Автор: 586 25.3.2010, 00:01
Код
richTextBox1->Text = L"\x2075";    // символ ⁵
// буква L означает, что это строка Unicode

Автор: maxi91m 25.3.2010, 00:04
А он у меня отобразился квадратиком smile 
С квадратиком разобрался почему, это шрифт не подходящий был.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)