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

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

UNICODE и тип String в национальных версиях Win32 [D7, Win95/98, Win2k, WinXP]


Tack ©   (2004-10-27 19:05:00) 

Занимаюсь сейчас универсальным модулем локализации программы на Delphi.
Текстовые ресурсы программы будут храниться в текстовых файлах в кодировке UNICODE (UCS2).
Считываю я их в память нормально, но потом, чтобы вывести их на экран, нужно присвоить их (тип WideString) свойствам Caption, Text, Hint и др. соответствующих визуальных компонентов (тип String).

Я нашел функцию WideCharLenToString(), которая преобразует WideString в String.

Вопрос: Можно ли напрямую присвоить, например
Label1.Caption := WideCharLenToString(S, Length(S))
где S имеет тип WideString? Правильно ли интерпретирует их, например, китайская Windows при выводе иероглифов?

Вообще, японская и китайская Windows использует тип String = WideString или нет?
Корректно ли будет там работать вызовы:
Label1.Caption := WideCharLenToString(S, Length(S))
или просто
Label1.Caption := S


VMcL   (2004-10-27 20:57:00) [1]

>> Tack  (27.10.04 19:05)

Можно вообще писать
Label1.Caption := S; // где S: WideString
Компилятор Delphi сам вставит вызов WideCharToMultiByte с параметром CP_ACP.


Наверх

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