Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.09;
Скачать: CL | DM;

Вниз

Определение правильного Charset   Найти похожие ветки 

 
Andrey Fomin   (2002-07-18 10:44) [0]

Как можно определить какой Charset задавать шрифту для корректного отображения текста? Необходимо сделать, чтобы программа на основе установок Windows определяла какой charset использовать. Как это можно сделать?


 
Dimka Maslov ©   (2002-07-18 13:15) [1]

LangID - индентификатор языка (0419 для русского), определить его можно с помощью функций
GetSystemDefaultLangId
GetUserDefaultLangId
GetThreadLocale


function LangIDToCharset(LangID: Integer): Byte;

type
TLangIDItem = packed record
LangID: Byte;
Charset: Byte;
end;

LangCount = 33;
LangIDToCharsetInfo : array [0..LangCount] of TLangIDItem = (
(LangID: $01; Charset: ARABIC_CHARSET),
(LangID: $02; Charset: RUSSIAN_CHARSET),
(LangID: $04; Charset: CHINESEBIG5_CHARSET),
(LangID: $05; Charset: EASTEUROPE_CHARSET),
(LangID: $06; Charset: ANSI_CHARSET),
(LangID: $07; Charset: ANSI_CHARSET),
(LangID: $08; Charset: GREEK_CHARSET),
(LangID: $09; Charset: ANSI_CHARSET),
(LangID: $0A; Charset: ANSI_CHARSET),
(LangID: $0B; Charset: ANSI_CHARSET),
(LangID: $0C; Charset: ANSI_CHARSET),
(LangID: $0D; Charset: HEBREW_CHARSET),
(LangID: $0E; Charset: EASTEUROPE_CHARSET),
(LangID: $0F; Charset: ANSI_CHARSET),
(LangID: $10; Charset: ANSI_CHARSET),
(LangID: $13; Charset: ANSI_CHARSET),
(LangID: $14; Charset: ANSI_CHARSET),
(LangID: $15; Charset: EASTEUROPE_CHARSET),
(LangID: $16; Charset: ANSI_CHARSET),
(LangID: $18; Charset: EASTEUROPE_CHARSET),
(LangID: $19; Charset: RUSSIAN_CHARSET),
(LangID: $1A; Charset: EASTEUROPE_CHARSET),
(LangID: $1B; Charset: EASTEUROPE_CHARSET),
(LangID: $1C; Charset: EASTEUROPE_CHARSET),
(LangID: $1D; Charset: ANSI_CHARSET),
(LangID: $1E; Charset: THAI_CHARSET),
(LangID: $1F; Charset: TURKISH_CHARSET),
(LangID: $22; Charset: RUSSIAN_CHARSET),
(LangID: $23; Charset: RUSSIAN_CHARSET),
(LangID: $24; Charset: EASTEUROPE_CHARSET),
(LangID: $25; Charset: BALTIC_CHARSET),
(LangID: $26; Charset: BALTIC_CHARSET),
(LangID: $27; Charset: BALTIC_CHARSET),
(LangID: $2a; Charset: VIETNAMESE_CHARSET));

var I: byte;
begin
Result:=DEFAULT_CHARSET;
if LangID = 0 then LangID:=_GetLocale;
for i:=0 to LangCount do if Lo(LangID) = LangIDToCharsetInfo[i].LangID then begin
Result:=LangIDToCharsetInfo[i].Charset;
Break;
end;
if LangID = $0C1A then Result:=RUSSIAN_CHARSET;
end;


 
Andrey Fomin   (2002-07-19 11:42) [2]

Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2002.09.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
3-26858
Igr
2002-08-19 11:12
2002.09.09
Sql и независимость от регистра символов


4-27263
Rumrunner
2002-04-19 01:54
2002.09.09
Email Attachment


8-27122
Doom
2002-05-10 19:10
2002.09.09
КАК скопировать прямогольную облясть ЭКРАНА в Bitmap? Очень срочн


4-27266
Lex_!
2002-06-23 04:23
2002.09.09
Объясните как отловить сообщение чужой программы


4-27256
asmer
2002-07-07 15:26
2002.09.09
Accelerators в модальном диалоговом окне