Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.01;
Скачать: 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 вся ветка

Текущий архив: 2003.09.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.029 c
4-1731
gRad2003
2003-06-28 12:41
2003.09.01
Помогите с LoadMenu.


14-1578
den74
2003-08-11 14:11
2003.09.01
Delphi & Access


14-1582
Antik
2003-08-13 11:12
2003.09.01
расширения файлов


1-1425
INTAARI
2003-08-19 14:06
2003.09.01
Масивы перекрываются!!!


1-1462
kuchumovkv
2003-08-18 16:12
2003.09.01
Dll и формы