Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
muk07
0 / 0 / 0
Регистрация: 27.09.2010
Сообщений: 22
#1

В TRichEdit преобразовать SelText к подстрочному - C++ Builder/Builder 6

07.02.2018, 11:53. Просмотров 196. Ответов 9
Метки нет (Все метки)

Как программно преобразовать выделенный текст (SelText) в TRichEdit к подстрочному индексу - вроде Х2
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2018, 11:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Builder 6 В TRichEdit преобразовать SelText к подстрочному (C++ Builder):

Как изменить параметры вставки? Memo1->SelText = ... - C++ Builder
Имеется кнопка и текстовое поле: void __fastcall TForm1::Button7Click(TObject *Sender) { Memo1->SelText = "<b></b>"; } Необходимо...

Изображение в TRichEdit - C++ Builder
Добрый вечер! У меня вопрос. У меня на форме RichEdit1, и как мне там заменять ":)" например на какое то изображение? Как например в аське...

Вставка UnicodeString в TRichEdit - C++ Builder
Вопрос простой: Как сформировать строку UnicodeString так чтобы при вставке её в TRichEdit применилось форматирование, например цвет...

Многопоточная запись в TRichEdit - C++ Builder
Доброго времени суток! Появилась проблема. Есть 2 потока и функция для записи текста в компонент TRichEdit. Все это работает в DLL. При...

Нумерация символов в TRichEdit - C++ Builder
в TRichEdit следующий текст: 12345 67890 после выполнения кода: RE->SelStart=RE->Text.Pos(L"78"); RE->SelLength=4; ...

TRichEdit сохранение форматирования - C++ Builder
Дано: TRichEdit на форме, и список TRichEdit'oв в программе. class TfMain : public TForm { __published: // IDE-managed Components ...

9
Roddog2017
35 / 34 / 8
Регистрация: 15.06.2017
Сообщений: 184
Завершенные тесты: 1
08.02.2018, 01:55 #2
Штатными средствами никак
1
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25529 / 17082 / 5412
Регистрация: 22.10.2011
Сообщений: 30,245
Записей в блоге: 6
08.02.2018, 13:04 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Стесняюсь спросить, а что из вот этого:
C++
1
2
3
4
5
6
7
8
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TCharFormat f;
    f.cbSize = sizeof(f);
    f.dwMask = CFM_OFFSET;
    f.yOffset = -75;
    RichEdit1->Perform(EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&f);
}
является НЕ штатным средством? Этот код, если что, работает в BCB6 на Win2000:
4
Миниатюры
В TRichEdit преобразовать SelText к подстрочному  
Roddog2017
35 / 34 / 8
Регистрация: 15.06.2017
Сообщений: 184
Завершенные тесты: 1
08.02.2018, 13:12 #4
volvo, Согласен! Я о таком и не знал! Спасибо огромное!

Добавлено через 56 секунд
В блокнот себе записал
0
muk07
0 / 0 / 0
Регистрация: 27.09.2010
Сообщений: 22
09.02.2018, 06:49  [ТС] #5
Работает, большое спасибо.
Остаётся проблема:
в rtf текст вставляются упр коды \dn и \up,
а хотелось бы \sub и \nosupersub, как это делает wordpad.
В результате после преобразования текст не редактируем правильно в wordpad.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25529 / 17082 / 5412
Регистрация: 22.10.2011
Сообщений: 30,245
Записей в блоге: 6
10.02.2018, 01:25 #6
Цитата Сообщение от muk07 Посмотреть сообщение
а хотелось бы \sub и \nosupersub
Значит, нужно делать вот так:
C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    TCharFormat2A f2;
    ZeroMemory(&f2, sizeof(f2));
    f2.cbSize = sizeof(f2);
    f2.dwMask = CFM_SUBSCRIPT;
    f2.dwEffects = CFE_SUBSCRIPT;
    RichEdit1->Perform(EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&f2);
}
, но тут смещение будет значительно меньше, едва заметное, зато будут вставляться именно \sub-ы
4
Roddog2017
35 / 34 / 8
Регистрация: 15.06.2017
Сообщений: 184
Завершенные тесты: 1
10.02.2018, 11:57 #7
volvo, это СУПЕР!!!
0
muk07
0 / 0 / 0
Регистрация: 27.09.2010
Сообщений: 22
10.02.2018, 15:48  [ТС] #8
Почему "едва заметное" - нормальное смещение, отлично. Большое спасибо.
Сейчас пороюсь как сделать обратное преобразование.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25529 / 17082 / 5412
Регистрация: 22.10.2011
Сообщений: 30,245
Записей в блоге: 6
10.02.2018, 16:01 #9
Цитата Сообщение от muk07 Посмотреть сообщение
как сделать обратное преобразование
Чтобы отменить подстрочность или надстрочность выделенного текста достаточно поменять две строки:
C++
1
2
    f2.dwMask = (CFM_SUBSCRIPT | CFM_SUPERSCRIPT);
    f2.dwEffects = ~(CFE_SUBSCRIPT | CFE_SUPERSCRIPT);
2
muk07
0 / 0 / 0
Регистрация: 27.09.2010
Сообщений: 22
10.02.2018, 20:16  [ТС] #10
Ещё раз спасибо.
0
10.02.2018, 20:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2018, 20:16
Привет! Вот еще темы с ответами:

Выравнивание текста в TRichEdit - C++ Builder
На форме два компонента. TRichEdit и TSpinEdit. Нужно чтобы при изменении значения в TSpinEdit-е изменялся отступ текста в TRichEdit-е....

TRichEdit и нумерованный список - C++ Builder
Привет всем, помогите розобратса с маркерами, под разными символами (по мимо точки чорной другие символы), и с списками арабскими...

Перерисовка руками TRichEdit/TMemo - C++ Builder
Во многих компонентах есть методы типа Draw, но ни в Memo, ни в RichEdit подобного нет. Если кто знает как можно перерисовывать...

Загрузка и сохранение RTF в TRichEdit - C++ Builder
Доброе утро! Вопрос такой. У меня есть компонент RichEdit1 класса TRichEdit. Так вот. Его содержимое имеет и текст и графические...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru