Вниз
Скачать: 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.009 c
3-26899
Art1
2002-08-20 11:04
2002.09.09
Как закрыть парадоксовские базы паролем?


1-27069
Skif
2002-08-28 09:07
2002.09.09
Удаление файлов


4-27275
hovl
2002-07-17 23:16
2002.09.09
WinAPI


1-27102
Clown
2002-08-28 20:24
2002.09.09
Нужно сканировать нажатые клавиши.


14-27206
Вячеслав
2002-08-15 12:27
2002.09.09
FORTRAN чтобы это значило.




   Наверх