Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Проблема с кодировкой. WM_CHAR


Автор: superwolf 3.11.2009, 17:29
Проблема в следующем. Посылаю текст стороннему приложению, долго мучался. Функции наподобе sendmessage с параметрами типа wm_settext не работали. Выход нашел только один. Работает! Но стороннее приложение корректно воспринимает только латиницу.

я отправляю текст так:

Код

s:=edit1.Text;
for i:=1 to length(s) do
    PostMessage(WindowHandler,WM_CHAR,ord(s[i]),0);


где

Код

s : String;


в поле Edit1 содержится текст "Edit1 Привет!"

CHARSET у всей формы стоит ANSI_CHARSET и наследуется всеми объектами на ней, как я понимаю.

В стороннее приложение приходит текст "Edit1 Ïðèâåò!" Такой же кстати, как  при компировании сюда в эту HTML форму!!
Что это за проблема и как ее решать, подскажите пожалуйста!

Автор: superwolf 3.11.2009, 17:58
Только что заметил что когда в windows ключена русская раскладка, то программа нормально отправляет текст в нормальной кодировке и точно также нормально выводит его из буфера обмена (или вводит). Что это за баг такой? неужели перед отправкой текста придется программно каждый раз менять раскладку клавиатуры? Oo

Автор: superwolf 9.11.2009, 23:46
Up! Прочитал имеющуюся здесь информацию по изменению charset и проч. Но ни один из способов не подошел, текст из компонентов типа TEdit или TMemo не корректно копируется если стоит EN раскладка. Приходится динамически менять раскладку на русскую перед компрованием в буфер или вставкой русского текста с помощью апи-функций в другое приложение. Неужели у такой серьезной проблемы нет решения в Delphi 7?

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