Вниз
Скачать: 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
14-1623
wl
2003-08-13 14:41
2003.09.01
Опять форум атаковали....


3-1276
New laymer
2003-08-11 10:10
2003.09.01
SqlQuery


14-1621
Zoloto
2003-08-13 15:55
2003.09.01
Выход на сайт


3-1345
Buka
2003-08-05 13:24
2003.09.01
Перенос данных из Excel в Table


3-1326
BigError
2003-08-07 20:49
2003.09.01
MySQL - вопрос по libmySQL.dll (+)




   Наверх