![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить язык Windows [D6, WinXP]
leonidus © (2005-01-11 08:19:00)Проблема в следующем, нужно при запуске программы определить язык ОС, и сразу переключить интерфейс в тот который у юзера по умолчанию установлен, как его определить?
REA (2005-01-11 11:59:00) [1]А Delphi кстати сама подцепит нужные package (например .rus), если их сделать в зависимости от настройки языка.
KSergey (2005-01-11 11:10:00) [2]> [15] leonidus (11.01.05 11:02)
> т.е. читаются настройки из панели управления?
Настроенные через панель управления.
leonidus (2005-01-11 11:02:00) [3]ну понятно что это не функция GPS :)
т.е. читаются настройки из панели управления?
KSergey (2005-01-11 10:41:00) [4]> [13] leonidus (11.01.05 10:38)
> system's default user locale - это что? чтение текущего
> региона в котором проживаетюзер из реестра,
Нет, всего лишь то, что он установил в настройках.
leonidus (2005-01-11 10:38:00) [5]Спасибо большое, сработало. Но все таки грызут сомнения как она работает, у меня показала русский, но это как потестить...
system's default user locale - это что? чтение текущего региона в котором проживает юзер из реестра, я правильно понял?
Семен Сорокин (2005-01-11 09:59:00) [6]var
_locale: integer;
_locale := GetThreadLocale;
if _locale = $419 then
// русская
else if _locale = $409 then
// английская
The GetThreadLocale function retrieves the calling thread's current locale.
LCID GetThreadLocale(void);
Parameters
This function has no parameters.
Return Values
The function returns the system's default user locale.
Remarks
When a thread is created, it uses the system default user locale. The system reads the system default user locale from the registry when the system boots. This system default can be modified for future process and thread creation using Control Panel's International application.
leonidus (2005-01-11 09:40:00) [7]Да раскладка клавы это не совем то:)
>Семен Сорокин а можно подробнее?
Семен Сорокин (2005-01-11 09:19:00) [8]GetThreadLocale,
GetSystemDefaultLCID
Sash (2005-01-11 08:55:00) [9]затупил :) дошло, сразу как то не подумал толком
Kerk (2005-01-11 08:55:00) [10]Sash © (11.01.05 8:52) [7]
ты вопрос перечитай. где там раскладка упоминается?
Sash (2005-01-11 08:52:00) [11]ну так!
begin...end (2005-01-11 08:45:00) [12]> [5] Sash © (11.01.05 08:43)
Переключать язык интерфейса программы в зависимости от текущей раскладки клавиатуры? Оригинально...
Sash (2005-01-11 08:43:00) [13]ну ему же нужно переключитьязык
Kerk (2005-01-11 08:37:00) [14]а причем тут раскладка клавиатуры?
REP (2005-01-11 08:35:00) [15]
> переключить интерфейс в тот который у юзера по умолчанию
> установлен
Дык если он по умолчанию, то сам должен установиться при запуске
Sash (2005-01-11 08:31:00) [16]или сие:
procedure SetRU;
var
Layout: array[0.. KL_NAMELENGTH] of char;
begin
LoadKeyboardLayout( StrCopy(Layout,'00000419'),KLF_ACTIVATE);
end;
procedure SetEN;
var
Layout: array[0.. KL_NAMELENGTH] of char;
begin
LoadKeyboardLayout(StrCopy(Layout,'00000409'),KLF_ACTIVATE);
end;
Sash (2005-01-11 08:29:00) [17]Попробуй сие:
var russian, latin: HKL;
russian:=LoadKeyboardLayout('00000419', 0);
latin:=LoadKeyboardLayout('00000409', 0);
-- -- -- -- -- где то в программе --- --- ---
SetActiveKeyboardLayout(russian);