Страницы: 1
RSS
Переключение языков на форме
 
Добрый вечер, уважаемые форумчане! Помогите, пожалуйста, в таком вопросе:  
По клику в текстбоксе1 английский язык  
По клику в текстбоксе2 украинский язык  
По клику в текстбоксе3 русский язык  
 
Можно ли вместо кликов применить оптионбуттоны или чекбоксы  
для переключения языков, чтобы без клавиатуры  
можно было бы переключать с английского на украинский,  
с украинского на русский для всех текстбоксов?  
С уважением, Сергей.
 
Так у вас, вроде, всё уже сделано. Вы что не смогли OptionButton вынести на форму?  
См. файл
 
Ребята, спасибо большое; ради Бога, извините. Это не я, это жена, пока меня не было дома. Сейчас проведу воспитательную работу. С уважением, Сергей.
 
Что жена - форму не так сделала? :-)
 
)))
 
Жена... Нужно бы проверить, не заходил ли Юрий М, пока хозяина дома не было - во как защищает :)
 
Витя ценю твой юмор!  
Ребята! Поздравляю Вас всех с праздником!!!  
День седьмое ноября –  
Красный день календаря!!!
 
А возможно ли каждому Текстбоксу присвоить язык?  
Например: TextBox1-Eng. TextBox2-Rus?
 
И мне понадобилось.  
Форма на весь экран. Ввод пароля.  
Можно ли не выбирать на форме, а определять текущий язык?  
Т.е. на форме TextBox, буквочки в котором реагируют на переключение языка с клавиатуры.
 
Как вариант  
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)  
If KeyAscii > 127 Then переключаем  
End Sub  
Хотя может лучше по change  
Надо пробовать
 
Const KL_NAMELENGTH As Long = 8                      'length of the keyboardbuffer  
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long  
 
Public Sub www()  
   Dim strLocId As String  
   strLocId = String(KL_NAMELENGTH, 0)  
   GetKeyboardLayoutName strLocId  
   Select Case strLocId  
   Case "00000419": MsgBox "Ru"  
   Case "00000409": MsgBox "En"  
   Case "00000422": MsgBox "Ua"  
   End Select  
End Sub
Я сам - дурнее всякого примера! ...
 
Спасибо, понял.  
Дальше понятно.
 
Открыта форма, в TextBox отображается текущий язык.  
Есть ли возможность вызывать инициализацию формы или изменение значения TextBox изменением языка с клавиатуры?  
Если без примера никак, то только к вечеру...
 
наверное проверять и переустанавливать по таймеру?
Живи и дай жить..
 
Здравствуйте!  
как можно изменить на другие (языки)...(казахский)  
если возможно другие языки...
Excel 2007
 
Даулет, а проблема в чем? С помощью моего кода узнаете strLocId языка Казахский в пошаговом режиме, дальше при пом. LoadKeyboardLayout сможете переключаться на(с) него.
Я сам - дурнее всякого примера! ...
 
Не поленился:-)  
Const KL_NAMELENGTH As Long = 8 'length of the keyboardbuffer  
Const KLF_ACTIVATE  As Long = &H1                     'activate the layout  
 
'the language constants  
Const LANG_ru_STD As String = "00000419"  
Const LANG_EN_US As String = "00000409"  
Const LANG_ua_STD As String = "00000422"  
Const LANG_Kk_STD As String = "0000043F"  
 
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long  
Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long  
 
Public Sub www()  
Dim strLocId As String  
strLocId = String(KL_NAMELENGTH, 0)  
GetKeyboardLayoutName strLocId  
Select Case strLocId  
Case "00000419": MsgBox "Ru"  
Case "00000409": MsgBox "En"  
Case "00000422": MsgBox "Ua"  
Case "0000043F": MsgBox "Kk"  
End Select  
End Sub  
 
' переключаем на казахский  
Public Sub SwitchLang()  
   Call LoadKeyboardLayout(LANG_Kk_STD, KLF_ACTIVATE)  
End Sub  
Кстати, узнал код раскладки, записав макрорекордером формат даты в казахском языке. После выполнения своего кода к моей неописуемой радости в системе появился еще один язык:-) И шо мне с этим счастьем делать... Сейчас полезу его удалять.
Я сам - дурнее всякого примера! ...
 
Огромное спасибо Вам!  
очень полезная тема!!!
Excel 2007
 
KukLP огромное спасибо Вам!!!  
 
нашел на инте  
 
 
Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal flags As Long) As Long  
Sub Язык()  
ActivateKeyboardLayout 0, 0  
End Sub
Excel 2007
 
{quote}{login=слэн}{date=07.03.2012 11:11}{thema=}{post}наверное проверять и переустанавливать по таймеру?{/post}{/quote}  
Спасибо, слэн.  
 
- Не задействовать клавиатуру - переключатели (как в примерах выше);  
- Изменение языка с клавиатуры - постоянный мониторинг (таймер) на протяжении 1-2 минут (пока пользователь надумает ввести пароль);  
- Изменение языка с клавиатуры - изменение значения в TextBox по какому-либо действию на форме.  
 
У каждого варианта недостатки.
Страницы: 1
Читают тему
Наверх