Принудительно запретить менять раскладку клавиатуры

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Принудительно запретить менять раскладку клавиатуры

Сообщение kreator »

Можно ли при вводе в поле (естественно, String) программно запретить менять раскладку клавиатуры. В поле нужен строго английский язык. Как его выставить - не проблема. Но, вдруг, пользователь раскладку сам поменяет. Или надёжнее проводить анализ строки после ввода?
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Принудительно запретить менять раскладку клавиатуры

Сообщение Игорь Столяров »

Можно попробовать повесить на поле ALERT(192,255) и через Pre-Alert Key забанить ввод русских символов ....
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Принудительно запретить менять раскладку клавиатуры

Сообщение kreator »

Игорь Столяров писал(а): 07 Февраль 2018, 15:47 Можно попробовать повесить на поле ALERT(192,255) и через Pre-Alert Key забанить ввод русских символов ....
Похоже, так не пойдёт. Поле заполняется через считыватель магнитных карт. Могу на что-то среагировать только после получения Enter'а, Enter генерит сам считыватель. А есть доступный (простой) способ хотя кириллицу перевести на латиницу? Уже в ведённой строке. Может функция?
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Принудительно запретить менять раскладку клавиатуры

Сообщение Игорь Столяров »

kreator писал(а): 07 Февраль 2018, 16:01Поле заполняется через считыватель магнитных карт.
Не понял. "Заполняется через считыватель" - это так называется передача через буфер клавиатуры ?
Тогда все клавиатурные события есстественно будут работать ....
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Принудительно запретить менять раскладку клавиатуры

Сообщение Admin »

При выборе поля принудительно выбери английский язык. Что бы при считывании заведомо на английском вывелся текст,
и после ввода, функцией типа простой транслитерации, конвертни русский в английский (на всякий случай)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Принудительно запретить менять раскладку клавиатуры

Сообщение kreator »

Игорь Столяров писал(а): 07 Февраль 2018, 16:05 Тогда все клавиатурные события есстественно будут работать ....
Теперь я уже не понял. Если я в поле ENTRY делаю операцию вставить (Ctrl+V), алерты отработают? С другой стороны, если из 10 символов 4 кириллических, и они не считались, а 6 считалось, делать доп. проверку на количество введённых символов? Не вариант. В общем случае я не знаю этого количества.
Admin писал(а): 07 Февраль 2018, 16:59 При выборе поля принудительно выбери английский язык.
Ну да. Поставил. Написал примечание, на всякий случай, что раскладка должна быть латинской.
Admin писал(а): 07 Февраль 2018, 16:59 функцией типа простой транслитерации, конвертни русский в английский (на всякий случай)
Что за функция? Есть что-то в Кларионе или ВинАПИ? Как раз транслитерация-то и нужна. В принципе мне нужно обработать шесть букв, соответствующих латинским A-B-C-D-E-F (число в том самом виде). Русские буквы перевести в них несложно. Но вдруг на компе ещё какая-нибудь раскладка? Загоняюсь?
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Принудительно запретить менять раскладку клавиатуры

Сообщение Игорь Столяров »

kreator писал(а): 07 Февраль 2018, 17:47Если я в поле ENTRY делаю операцию вставить (Ctrl+V), алерты отработают
Если у Вас данные в поле попадают через ClipBoard Windows, то контроль клавиатурного ввода работать не будет.
А вот если сканер выталкивает код в буфер клавиатуры, то контроль по символам работать будет.
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Принудительно запретить менять раскладку клавиатуры

Сообщение kreator »

Игорь Столяров писал(а): 07 Февраль 2018, 18:12 А вот если сканер выталкивает код в буфер клавиатуры, то контроль по символам работать будет.
К сожалению, сейчас проверить не могу. Считыватель у заказчика. Но интересно было бы знать. Считыватель посылает "1С00В58С3Ф", что на выходе я получу, если забаню кириллицу?
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Принудительно запретить менять раскладку клавиатуры

Сообщение Игорь Столяров »

Тоже самое, что если бы вводили эту строку с клавиатуры: 1С00В58С3 (предполагаю, что "B" и "С" - английские).
Здесь главный вопрос в том, хотите Вы получить только английские символы при считывании XЗ чего, или блокировать
считывание кода с недопустимыми символами (с выдачей сообщения, сбросом считывания и т.д.) ....
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Принудительно запретить менять раскладку клавиатуры

Сообщение kreator »

Игорь Столяров писал(а): 08 Февраль 2018, 10:29 Тоже самое, что если бы вводили эту строку с клавиатуры: 1С00В58С3 (предполагаю, что "B" и "С" - английские).
Здесь буквы все кириллические. Т.е. на выходе я получу "100583". И что мне с этим делать? Если только сообщение какое-то выдавать. Хочется дать пользователю максимально удобный инструмент. Сделал пока ручную "транслитерацию" кириллицы.
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Принудительно запретить менять раскладку клавиатуры

Сообщение Admin »

Вешаем таймер на окно. Неактивный.
По событию выбора вашего поля ввода включаем таймер.
На таймере постоянно, принудительно, часто ставим английскую раскладку!
При выходе из поля таймер отключаем.
Все!
Ваш аппарат, с офигенно большой вероятностью, выведет в поле вашу строку в английской раскладке.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Ответить