![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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.