Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > КИС Lack & УС Land

Программа вывода из оборота маркированной молочной продукции : КИС Lack & УС Land

20.04.2024 7:29


30.12.2022 15:52
student
 
Тебе м.б. и нет :) просто тогда ограниченный вариант предлагать не стоит без комментариев...
30.12.2022 16:07
FinSoft
 
Я же для Саратова...
30.12.2022 16:22
FinSoft
 
Это очень проблематично включать в приложение функционал, вероятность использования которого стремится к нулю, так как гарантировано протестировать не на чем. Какой процент пользователей, у которых 3 раскладки, и какая вероятность, что они вообще будут? Если вдруг кому-то потребуется, он сообщит, внести соответствующие изменения недолго.

Вспомнился недавний случай по обсуждению работы с юникодом. Кто-то из англосаксов написал, надо обязательно, таким ребятам, как русские или латиносы, это необходимо. Другие англосаксы с важным видом, как обычно, ез, ез. Я чуть под стол не сполз. Специалисты нашлись. Русским это точно не вперлось, а латиносам тем более, они на испанском, в основном, все лопочат.
30.12.2022 18:12
AndreyZh
 
student, FinSoft, да, сейчас пользователи маркировка молочки (мои в реале) имеют всего две раскладки. Однако я остался у лишь одного ключевого клиента, которому вскоре грозит этот гемор... и у его на нескольких ПК по 3 раскладки, одна из которых используется для переписки с роднёй на исторической родине, т.ч. замечания student для меня или Саратова весьма актуальны
30.12.2022 18:21
student
 
Цитата:
AndreyZh весьма актуальны
закон Мерфи в действии :)
30.12.2022 18:59
FinSoft
 
На рабочем месте переписывается с родней, которая ни по русски, ни по англицки не понимает. Повезло с клиентом. Тогда следуем совету студента и считываем сначала список раскладок.
30.12.2022 19:03
AndreyZh
 
Цитата:
FinSoft На рабочем месте переписывается с родней
Не имею привычки осуждать владельцев бизнеса и его топ менеджеров...
31.12.2022 01:06
FinSoft
 
Проверил, вот такой код работает для нескольких раскладок клавиатуры. В параметре KBDLayout передается кодовое значение раскладки (например, "00000409" для английской). Спасибо студенту, что обратил внимание.

Код:
SwitchKBD            PROCEDURE (STRING KBDLayout)
NewKL  UNSIGNED
CurKL  CSTRING(20)

  CODE 
         Err# = GetKeyboardLayoutNameA(CurKL)
         IF Err#<>0 and CurKL <> KBDLayout
            CurKL = KBDLayout
            LoadKeyboardLayoutA(CurKL,1)
            NewKL = ActivateKeyBoardLayout(CurKL,0)            
         END
Прототипы функций win api.

Код:
   MODULE('Windows.lib')
      ActivateKeyboardLayout(UNSIGNED,UNSIGNED),UNSIGNED,PASCAL
      GetKeyboardLayoutNameA(*CSTRING),SIGNED,PASCAL,RAW
      LoadKeyboardLayoutA(*CSTRING,SIGNED),PASCAL,RAW
   end
31.12.2022 10:09
student
 
Единственный момент - на мой взгляд нет смысла постоянно дёргать получение раскладки - проще запомнить если используется а если нет то просто принудительно ставить что надо

Конечно все эти вызовы и проверки это мелочь как с точки зрения времени так и ресурсов но обвал довольно часто с мелкого начинается :)
31.12.2022 16:11
FinSoft
 
Не понял, что имеется ввиду.
GetKeyboardLayoutNameA - получить текущую раскладку, если она отличается от нужной, то изменяем. Что предлагается в качестве альтернативы? Лучше на примере кода.
Часовой пояс GMT +3, время: 07:29.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.