Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите разобраться с RichEdit! [D7]


DimaK ©   (2005-03-04 12:13:00) 

Привет всем, вот возникла такая проблемка:

procedure TForm1.Button1Click(Sender: TObject);
 var s1: String;
     s2: Char;
begin
 s1:='г';
 s2:=s1[1];
 SendMessage(RichEdit1.Handle, WM_CHAR, Integer(s2), 0);
 SendMessage(Memo1.Handle, WM_CHAR, Integer(s2), 0);
end;

Почему Memo1 выводит все нормально, а RichEdit1 не понимает русскую кодировку?

Вывод типа RichEdit1.Text:=s2; не устраивает, так как сейчас именно так и работает, а надо выводить именно через SendMessage.

Это как-нибуть можно вылечить?

Заранее большое всем спасибо!


DimaK   (2005-03-04 15:45:00) [1]

Вот что в итоге получилось:

procedure TForm1.Button2Click(Sender: TObject);
 var s1: String;
     s2: Char;
begin
 s1:=Edit1.Text;
 AnsiToOEM(PChar(s1), PChar(s1));
 s2:=s1[1];
 RichEdit2.Font.Name:='Terminal';
 RichEdit2.Font.Charset:=OEM_CHARSET;
 RichEdit2.Font.Size:=12;
 SendMessage(RichEdit2.Handle, WM_CHAR, Integer(s2), 0);
 SendMessage(Memo1.Handle, WM_CHAR, Integer(s2), 0);
 Edit1.Clear;
end;

Только шрифт Terminal какой-то глюковатый, может кто знает аналог получше?


DimaK   (2005-03-04 13:21:00) [2]

В том-то и дело, я забыл написать что при включенной русской раскладке клавиатуры работает, но постоянно переключать раскладку как-то тупо, вот и хочу разобраться в чем дело.
Спасибо всем за участие, может есть еще какие-нибуть предложения.
Я так понимаю что проблема именно в кодировке, вчера целый день провозился, но так и не понял, в какой кодировке это выводится и почему.


clickmaker   (2005-03-04 12:43:00) [3]


> BlackTr   (04.03.05 12:29) [5]

при включенной русской раскладке клавиатуры работает


BlackTr   (2005-03-04 12:29:00) [4]


>[3] clickmaker ©   (04.03.05 12:22)
> CharSet := RUSSIAN_CHARSET

Не помогает :)
Блин а какой код у WM_UNICHAR ?


begin...end   (2005-03-04 12:25:00) [5]

> Virgo_Style ©   (04.03.05 12:19) [2]

Вы видите существенную разницу?


clickmaker   (2005-03-04 12:22:00) [6]


>  RichEdit1 не понимает русскую кодировку?

CharSet := RUSSIAN_CHARSET


Virgo_Style   (2005-03-04 12:19:00) [7]

Даже представить боюсь, что такое Integer(s2)...
Может, Integer(s1[1])?


BlackTr   (2005-03-04 12:15:00) [8]

А если попробовать в Unicode WM_UNICHAR ?
Может поможет ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо