Форум: "WinAPI";
Текущий архив: 2010.01.24;
Скачать: [xml.tar.bz2];
ВнизКак получить русское название кодировки. mlang? Найти похожие ветки
← →
StriderMan (2008-11-18 18:16) [0]Есть номера кодировок, требуется получить для каждой нормальное название как в настройках "Язык и региональные стандарты".
Копал MSDN в сторону IMultiLanguage, но так и не понял как малой кровью выцепить функции этого интерфейса в Делфях. по просторам инета бродят разные заголовочные файлы, но ради одной функции цеплять к проекту пару модулей по несколько КБ не готов. Подскажите, может есть еще какой легкий способ?
Пытался импортировать IMultiLanguage как ActiveX-контрол - не нашел его в списке. DLL-ка напрямую не импортируется, ошибок не выдает.
В идеале надо что-то типа
var
ml: olevariant;
...
ml := CreateOleObject("че-то типа MultiLanguage");
ml.GetCodePageInfo ....
помогите плиз
← →
Eraser © (2008-11-18 22:00) [1]> Есть номера кодировок, требуется получить для каждой нормальное
> название как в настройках "Язык и региональные стандарты".
вот это уточните, не понятно что требуется. в "Язык и региональные стандарты" туева куча настроек и параметров.
скорее всего тут можно обойтись без всяких ActiveX, стандартными функциями.
← →
StriderMan (2008-11-19 10:28) [2]Панель управления/Язык и региональные стандарты/Дополнительно
например есть у меня список кодировок:866, 855, 857
надо получить расширенный список типа
866 - (OEM русская)
855 - (OEM - кириллица традиционная)
857 - (OEM - турецкая)
← →
clickmaker © (2008-11-19 11:19) [3]EnumSystemCodePages
GetCPInfoEx
← →
StriderMan (2008-11-19 12:56) [4]
> GetCPInfoEx
видимо то что нужно, но почему-то на любую таблицу ругается "Неверный параметр"type
TCPInfoEx = record
MaxCharSize: UINT;
DefaultChar: array [0..MAX_DEFAULTCHAR - 1] of byte;
LeadByte: array[0..MAX_LEADBYTES - 1] of byte;
UnicodeDefaultChar: Char;
CodePage: UINT;
CodePageName: array[0..MAX_PATH - 1] of Char;
end;
function GetCPInfoEx(CodePage: UINT; Flags: DWord; var CPInfo: TCPInfoEx): boolean; external "kernel32.dll" name "GetCPInfoExA";
procedure TForm1.Button1Click(Sender: TObject);
var
cpiex: TCPInfoEx;
begin
if not GetCPInfoEx(866, 0, cpiex) then
RaiseLastOSError;
ShowMessage(cpiex.CodePageName);
end;
← →
clickmaker © (2008-11-19 13:01) [5]попробуй packed record и stdcall у функции
← →
StriderMan (2008-11-19 13:09) [6]
> stdcall у функции
Ну точно, как я забыл!! работает, большое спасибо!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2010.01.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c