Вниз
Скачать: CL | DM;

GetKeyboardLayoutList   Найти похожие ветки 

← →
chikavladimir ©   (2003-07-03 13:31) [0]

UINT GetKeyboardLayoutList(

int nBuff , // size of buffer in array element
HKL FAR *lpList // buffer for keyboard layout handles
);


← →
Axis_of_Evil ©   (2003-07-03 13:37) [1]

офигигигигительно, а мы-то не знали :>


← →
Игорь Шевченко ©   (2003-07-03 13:37) [2]

procedure TfMain.MyEnumKeyboardLocales ();
type
THKLArray = array[0..255] of HKL;
PHKLArray = ^THKLArray;
var
I, NLocales, Locale : Cardinal;
Buffer : Pointer;
begin
Buffer := nil;
NLocales := GetKeyboardLayoutList(0, Buffer^);
if NLocales > 0 then begin
GetMem(Buffer, NLocales * SizeOf(HKL));
try
GetKeyboardLayoutList(NLocales, Buffer^);
for I:=0 to Pred(NLocales) do begin
Locale := LOWORD(PHKLArray(Buffer)^[I]);
KeyboardLayoutsListBox.Items.AddObject(
HSGetLocaleLanguageName(Locale), TObject(Locale));
end;
finally
FreeMem(Buffer, NLocales * SizeOf(HKL));
end;
end;
end;



{ Для определения языка в NT-системах предпочтительней вызывать Unicode-версию
GetLocaleInfo }
function HSGetLocaleLanguageName (Locale : Cardinal) : String;
var
tmp : array[0..255] of char;
tmpW : array[0..255] of WideChar;
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then begin
GetLocaleInfoW(Locale, LOCALE_SLANGUAGE, tmpW, SizeOf(tmpW));
Result := WideCharToString(tmpW);
end else begin
( Locale, LOCALE_SLANGUAGE, tmp, SizeOf(tmp)
procedure TfMain.MyEnumKeyboardLocales ();
type
THKLArray = array[0..255] of HKL;
PHKLArray = ^THKLArray;
var
I, NLocales, Locale : Cardinal;
Buffer : Pointer;
begin
Buffer := nil;
NLocales := GetKeyboardLayoutList(0, Buffer^);
if NLocales > 0 then begin
GetMem(Buffer, NLocales * SizeOf(HKL));
try
GetKeyboardLayoutList(NLocales, Buffer^);
for I:=0 to Pred(NLocales) do begin
Locale := LOWORD(PHKLArray(Buffer)^[I]);
KeyboardLayoutsListBox.Items.AddObject(
HSGetLocaleLanguageName(Locale), TObject(Locale));
end;
finally
FreeMem(Buffer, NLocales * SizeOf(HKL));
end;
end;
end;



{ Для определения языка в NT-системах предпочтительней вызывать Unicode-версию
GetLocaleInfo }
function HSGetLocaleLanguageName (Locale : Cardinal) : String;
var
tmp : array[0..255] of char;
tmpW : array[0..255] of WideChar;
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then begin
GetLocaleInfoW(Locale, LOCALE_SLANGUAGE, tmpW, SizeOf(tmpW));
Result := WideCharToString(tmpW);
end else begin
GetLocaleInfo(Locale, LOCALE_SLANGUAGE, tmp, SizeOf(tmp));
Result := tmp;
end;
end;


← →
Игорь Шевченко ©   (2003-07-03 13:38) [3]

Просьба - задавать вопрос нормально, чтобы всем все было понятно. В противном случае вопрос будет удаляться.



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

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



Память: 0.45 MB
Время: 0.019 c
3-1349
kostik78ua
2003-08-06 12:00
2003.09.01
Преобразование типов данных


14-1575
likeanangel
2003-08-11 17:32
2003.09.01
Редактор метафайлов


6-1529
Benedict
2003-06-22 17:56
2003.09.01
Перехват клика по ссылке в браузере?


1-1508
r_zet557
2003-08-17 18:45
2003.09.01
библиотека для вычисление влажности по температурным значениям


14-1623
wl
2003-08-13 14:41
2003.09.01
Опять форум атаковали....




   Наверх