Как по Locale или по CodePage определить Charset для того или иного языка?
т.е. например для
русского $0419 — RUSSIAN_CHARSET;
английский $0409 — DEFAULT_CHARSET;
французский $040C — EASTEUROPE_CHARSET; или другой какой-нибудь
т.е. нужна стандартная функция которая это делает.
Ну или очень классная идея как это сделать.
Нужно это для того, чтобы корректно отображались Hint-ы для контролов в зависимости от выбранного языка.
Спасибо
Re: Как по Locale/CodePage определить Charset для языка?
Спасибо за ответ.
Только вот выдается ошибка:
"A call to an OS function failed"
при выполнении строки
Win32Check(TranslateCharsetInfo(lpSrc, lpCs, TCI_SRCCODEPAGE));
Может быть подскажешь в чем проблема?
var
lpSrc: DWORD;
lpCs: TCharsetInfo;
charset: TFontCharset;
begin
lpSrc := 1251; // или другие
Win32Check(TranslateCharsetInfo(lpSrc, lpCs, TCI_SRCCODEPAGE));
charset := lpCs.ciCharset;
Re[3]: Как по Locale/CodePage определить Charset для языка?
Здравствуйте, aDelphi, Вы писали:
D>Спасибо за ответ. D>Только вот выдается ошибка: D>"A call to an OS function failed" D>при выполнении строки D>Win32Check(TranslateCharsetInfo(lpSrc, lpCs, TCI_SRCCODEPAGE));
D>Может быть подскажешь в чем проблема?
По всей видимости надо поставить апдейт на Delphi. Этот пример из Quality Central на borland.com и он отмечен как "закрыт"
Re[4]: Как по Locale/CodePage определить Charset для языка?
Здравствуйте, Dimonka, Вы писали:
D>По всей видимости надо поставить апдейт на Delphi. Этот пример из Quality Central на borland.com и он отмечен как "закрыт"
Использую Delphi 7 + Update 1, Win2K Pro SP 4
Скажи пожалуйста какой еще апдейт нужен?
Спасибо
Re[3]: Как по Locale/CodePage определить Charset для языка?
Здравствуйте, aDelphi, Вы писали:
D>Спасибо за ответ. D>Только вот выдается ошибка: D>"A call to an OS function failed" D>при выполнении строки D>Win32Check(TranslateCharsetInfo(lpSrc, lpCs, TCI_SRCCODEPAGE));
D>Может быть подскажешь в чем проблема?
Извиняюсь, не дочитал до конца отчёт.. В Delphi неправильно обьявлена функция TranslateCharsetInfo в Windows.pas её надо переобьявить следующим образом:
function TranslateCharsetInfo(lpSrc: DWORD; var lpCs: TCharsetInfo; dwFlags: DWORD): BOOL; stdcall; external'gdi32.dll';
nb. With this workaround you can still pass the address of a FONTSIGNATURE structure to the API — just cast the address to a DWORD.
Re[4]: Как по Locale/CodePage определить Charset для языка?