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

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

RichEdit и Unicode. [D5, D7, Win2k]


Юрий К ©   (2005-01-28 20:46:00) 

Через Copy-Paste в RichEdit заношу Unicode текст (арабский). PlainText := true; Показывает текст RichEdit нормально, вижу арабские каракули в RichEdit окошке.

RichEdit имеет свойства Lines и Text. Можно ли получить доступ к каждой паре байт Unicode символов через них? Кто работал с Unicode текстами в RichEdit? Как смотреть содержимое отображаемого текста? Что-то не понятно пока.

К примеру:
После RichEdit.Lines.SaveToFile получается файл. Если загрузить его по RichEdit.Lines.LoadFromFile, получается полная ерунда.


Юрий К   (2005-01-30 15:48:00) [1]

"s типа string, а на текущий момент это ANSI, RE.Lines это также string."

А что мешает в RE.Lines хранить данные вида "1F 04  40 04  38 04  32 04  35 04   42 04", где каждые 2 байта будут заменять один юникод символ. RE.Lines показывает не понятно что. Как же получить доступ к юникод тексту в RichEdit. Только по SendMessage (и как кстати) или есть иной путь, через VCL свойства/методы?


Anatoly Podgoretsky   (2005-01-29 17:53:00) [2]

s типа string, а на текущий момент это ANSI, RE.Lines это также string.


Юрий К   (2005-01-29 16:49:00) [3]

Anatoly Podgoretsky [4]
"TМемо <> TRichEdit"

Задача для теста (Как раз ветка тут длинная есть по тестированию, вот и навеяло) :

В RichEdit загружен/скопирован юникод текст.
В Мемо нужно распечатать шестнадцатиричное представление данных, которые в RichEdit. Один юникод символ представляется двумя шестнадцатеричными числами, как к примеру по F3 мы видим в WinCmd32, если выбрать в опциях "Hex". То есть примерно выглядеть в Мемо будет так:  1F 04  40 04  38 04  32 04  35 04   42 04, что есть представление слова "Привет".


Anatoly Podgoretsky   (2005-01-29 15:59:00) [4]

TМемо <> TRichEdit
Особенно если учесть, что первый ни в коей мере не поддерживает Юникод, а второй поддерживает.


Юрий К   (2005-01-29 15:54:00) [5]

Наверное нужно использовать TNTRichEdit - который только для юникод текстов.


Юрий К   (2005-01-28 21:20:00) [6]

"Anatoly Podgoretsky"

Мне интересно, каким образом получить доступ к символам?


procedure TForm1.Button1Click(Sender: TObject);
var i, j: Integer; s, sm: String;
begin
 for i := 0 to RE.Lines.Count - 1 do
 begin
   s := RE.Lines[i];
   sm := '';
   for j := 1 to Length(s) do
   begin
     sm := sm + IntToStr(Ord(RE.Lines[i][j])) + ' ';
   end;
   Memo.Lines.Add(sm);
 end;
end;


Получаю в Memo следующее:

32 63 63 63 63 63 63 63 63 46

63 63 63 32 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 32 50 48 48 48 32 63 63 63 63 63 32 63 63 32 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 32
63 63 63 63 63 63 63 32 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 32 63 63 63 46 32 63 63 63 63 63 63 32 63 63 63 32 63 63 63 32 63 63 63 32 63 63 63 63 63 63 63 32
63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 32 63 63 63 63 32 63 63 63 32 63 63 32 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 32
63 63 63 63 63 32 63 63 63 63 63 63 58

63 63 63 63 63 63 63 32 58 32 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 32
63 63 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 46 32
63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 58 32 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 32
63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 45 32 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32
63 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 32 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 63 32 63 63 32
63 63 63 63 32 63 63 63 63 63 63 63 63 32
63 63 63 63 63 63 63 63 32 58 32 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 63 32
63 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32
63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 46 32 63 63 63 32 63 63 63 63 32
63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 63 46 32 63 63 63 63 63 63 32 63 63 63 63 63 32
63 63 32 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 46 32
63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 63 63 32 58 32 63 63 32 63 63 32 63 63 32 63 63 63 63 32 63 63 63 63 63 63 63 32
63 63 63 63 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 32 63 63 63 63 32 63 63 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 32
63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 63 32 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 32 63 63 32
63 63 63 63 63 63 63 63 63 46 32 63 63 32 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 63 32
63 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 32 63 63 63 32 63 63 63 63 63 32 63 63 63 32 63 63 63 32 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32
63 63 63 63 63 63 32 63 63 63 63 63 63 63 63 32 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 46 32 63 63 63 32 63 63 63 63 63 63 32
63 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 32 63 63 63 63 63 32 63 63 63 32 63 63 63 32 63 63 63 63 32 63 63 63 63 63 63 32 63 63 63 63 63 63 32
63 63 63 63 63 63 63 32 63 63 63 46 32 63 63 63 63 63 32 63 63 63 63 63 63 63 32 63 63 63 63 63 63 32 63 63 32 63 63 63 63 32 63 63 63 63 63 32 63 63 63 63 63 63 63 63 63 32 63 63 32 63 63 63 32
63 63 63 63 63 63

В RichEdit наблюдаю арабский тект при этом.


Anatoly Podgoretsky   (2005-01-28 20:58:00) [7]

Ерунда наверно потому что ты делаешь что то неправильно. Или другими словами у тебя ошибка в программе. Нормально сохраняется и загружается.


Наверх

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