![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить русское название кодировки. mlang? [D7, WinXP]
StriderMan © (2008-11-18 18:16:00)Есть номера кодировок, требуется получить для каждой нормальное название как в настройках "Язык и региональные стандарты".
Копал MSDN в сторону IMultiLanguage, но так и не понял как малой кровью выцепить функции этого интерфейса в Делфях. по просторам инета бродят разные заголовочные файлы, но ради одной функции цеплять к проекту пару модулей по несколько КБ не готов. Подскажите, может есть еще какой легкий способ?
Пытался импортировать IMultiLanguage как ActiveX-контрол - не нашел его в списке. DLL-ка напрямую не импортируется, ошибок не выдает.
В идеале надо что-то типа
var
ml: olevariant;
...
ml := CreateOleObject('че-то типа MultiLanguage');
ml.GetCodePageInfo ....
помогите плиз
StriderMan (2008-11-19 13:09:00) [1]
> stdcall у функции
Ну точно, как я забыл!! работает, большое спасибо!
clickmaker (2008-11-19 13:01:00) [2]попробуй packed record и stdcall у функции
StriderMan (2008-11-19 12:56:00) [3]
> 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 11:19:00) [4]EnumSystemCodePages
GetCPInfoEx
StriderMan (2008-11-19 10:28:00) [5]Панель управления/Язык и региональные стандарты/Дополнительно
например есть у меня список кодировок:
866, 855, 857
надо получить расширенный список типа
866 - (OEM русская)
855 - (OEM - кириллица традиционная)
857 - (OEM - турецкая)
Eraser (2008-11-18 22:00:00) [6]> Есть номера кодировок, требуется получить для каждой нормальное
> название как в настройках "Язык и региональные стандарты".
вот это уточните, не понятно что требуется. в "Язык и региональные стандарты" туева куча настроек и параметров.
скорее всего тут можно обойтись без всяких ActiveX, стандартными функциями.