Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.01 c
7-27239
Kr_Alex
2002-06-22 13:26
2002.09.09
Hint в System Tray


6-27134
Ocean
2002-07-03 14:11
2002.09.09
Как декодировать Base-64?


14-27230
keymaster
2002-08-15 22:32
2002.09.09
ТЕОРИЯ ОТНОСИТЕЛЬНОСТИ БЕССМЕРТНА!


1-26977
VZ-KZ
2002-08-29 15:34
2002.09.09
E-mail


1-27099
Yaro
2002-08-24 23:00
2002.09.09
Run-Time Packages or ActiveX




   Наверх