Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: CL | DM;

Вниз

Русские буквы и RichEdit 2.0   Найти похожие ветки 

 
vidiv ©   (2006-04-25 21:46) [0]

Вобщем такой эксперемент:
На форме три компонента:
JvRichEdit1 - версии 2.0 из Jedi
RichEdit1 - версии 1 стандатный
и кнопка Button1

Ставим на кнопку следущий обработчик:
var TextRange:TTextRange;  {uses RichEdit}
begin
   TextRange.chrg.cpMin := 0;
   TextRange.chrg.cpMax := 1;
   GetMem(TextRange.lpstrText, 2);
   FillChar(TextRange.lpstrText^, 2, 0);

   SendMessage(RichEdit1.Handle, EM_GETTEXTRANGE, 0, LParam(@TextRange));

   ShowMessage(TextRange.lpstrText);
end;

т.е. Сообщение посылается на обычный RichEdit.

Далее запускаем программу и пробуем напечатать чегонить по русски в RichEdit1, нажимаем кнопку и... программа нормально, по русски, выдает первую букву текста.

Далее запускаем заного программу, открываем WordPad и набираем там текст по русски, копируем в буфер и вставляем в RichEdit1, нажимаем кнопку - первая буква нормальная...

Далее меняем обработчик кнопки:
var TextRange:TTextRange;  {uses RichEdit}
begin
   TextRange.chrg.cpMin := 0;
   TextRange.chrg.cpMax := 1;
   GetMem(TextRange.lpstrText, 2);
   FillChar(TextRange.lpstrText^, 2, 0);

   SendMessage(JvRichEdit1.Handle, EM_GETTEXTRANGE, 0, LParam(@TextRange));

   ShowMessage(TextRange.lpstrText);
end;

Т.е. используем компонет: JvRichEdit1.
Выполняем те же действия и получаем, что в первом случае, где мы сами набирали текст - перва буква нормальная, а в случае когда текст вставлен из буфера - вопросительный знак.

Еще один эксперемент с JvRichEdit1: вставляем текст из WordPad-а, и в любом месте в тексте вручную пишем русскую букву. результат нажатия кнопки будет положительным: русская буква.
Причем, замечаем, что после того как в JvRichEdit1 была поставлена русская буква (в любом месте), то любые действия приводят к положительному результату - первая буква русская...
Собственно вопрос: Как избавить пользователей вводить вручную хотябы одну букву? Как заставить RichEdit2.0 сразу "понимать" русский?

Если в чем то не прав - прошу поправить.


 
vidiv ©   (2006-04-25 22:09) [1]

Запустил программу WinSight, и посмотрел какие сообщения идут на JvRichEdit когда я переключаю раскладку и печатаю букву. Добавил в OnCreate формы следующее:
SendMessage(JvRichEdit1.Handle, WM_INPUTLANGCHANGEREQUEST, RUSSIAN_CHARSET, $04190419);
Вроде работает :)



Страницы: 1 вся ветка

Текущий архив: 2006.06.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.045 c
15-1146930296
Sergey Masloff
2006-05-06 19:44
2006.06.04
Мотивация при смене места работы. Какой % прибавки оклада


4-1142103030
Handle
2006-03-11 21:50
2006.06.04
Процессы,окна


3-1144930044
RomanH
2006-04-13 16:07
2006.06.04
Использование User Defined Functions


15-1147020493
AlexanderMS
2006-05-07 20:48
2006.06.04
Украшение кода


1-1146036679
leonidus
2006-04-26 11:31
2006.06.04
Как в TListView отобразить больше 32000 записей