Всем привет!
Кто-нибудь знает почему вставляя символ русской буквы "Н" обратно я получаю английскую букву "I"?
Ниже приведен код который демонстрирует это?
...
RichEdit1.SelText:='Н';
RichEdit1.SelStart:=RichEdit1.SelStart-1;
RichEdit1.SelLength:=1;
RichEdit1.SelAttributes.Name:='symbol';
ShowMessage(RichEdit1.SelText);
...
в сообщение увидим "I".
Трабла с RichEdit
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Какие то сплошные проблемы с этим RichEdit'ом, нужно было сделать отображение спец символов в тексте из таких шрифтов как Symbol, Wingdings и т.д. Сначала не получалось сделать так? чтобы выводимые символы с 20 по 255 были такими же как мы видим их в "таблице cимволов" (Пуск->программы->стандартные->служебные->таблица символов), причем если сформировать строчку из этих символов вставить ее в RichEdit и задать для нее шрифт Symbol, то все нормально, а если добавлять посимвольно и для каждого символа задавать шрифт Symbol, то символы выводятся совершенно отличные от символов отображаемых в таблице символов которую показывает винда для данного шрифта. Только поборол этот глюк как сразу появился обратный, теперь не удается получить правильный ansi текст отображаемого текста в RichEdit.
Подозреваю я, что эта проблема связана с тем что RichEdit используется ANSI(ный), а внутри RichEdit(а) работа идет с Unicode и когда я прошу обратно ANSI текст то он обрезает первый байт Unicode и передает мне полученый ANSI текст.
Подозреваю я, что эта проблема связана с тем что RichEdit используется ANSI(ный), а внутри RichEdit(а) работа идет с Unicode и когда я прошу обратно ANSI текст то он обрезает первый байт Unicode и передает мне полученый ANSI текст.
Вообщем то трабла была в том, что как-то криво идет конвертация символов из ANSI в Unicode и обратно при работе с ANSI(шным) RichEdit. Поэтому для вставки и получения текста использовал сообщения EM_SETTEXTEX и EM_GETTEXTEX. С помощью них можно записывать и получать из RichEdit Unicode(ные) строки и конвертацию проводить уже самому.
Сплошная трабла с кривыми руками