Снова про экранную клавиатуру
Добавлено: 19 Январь 2024, 18:45
Внимания не обращали. Экранная клавиатура вылезает на ReadOnly контролах. Есть в этом какой-то смысл? Или надо лезть в класс, исправлять?
Место общения программистов, форум разработчиков БД на Clarion
https://www.forum.clarionlife.net/
Именно для этого атрибут ReadOnly. Чего-то я не помню, чтобы на экранной клавиатуре была функция копирования. Посмотрю.Игорь Столяров писал(а): 19 Январь 2024, 23:38 А если всё-таки пользователь принудительно устанавливает фокус на поле с ReadOnly -
возможно он хочет сделать копию его содержания, и для этого ему нужна экранная (или сенсорная) клавиатура ...
Тупо последовательно нажать "Ctrl" и "C".kreator писал(а): 20 Январь 2024, 14:27 Чего-то я не помню, чтобы на экранной клавиатуре была функция копирования.
Давайте посмотрим на современный аналог - сенсорную клавиатуру.kreator писал(а): 20 Январь 2024, 14:27 я не помню, чтобы на экранной клавиатуре была функция копирования
Упс! Не всё так хорошо. У меня в десятой Винде по крайней мере две экранные клавиатуры. На той, что вызывается из класса, подсказки не работают. Зато возможностей побольше. Например, рукописный ввод есть. Чего происходит? Где-то вроде обсуждали этот момент.kreator писал(а): 20 Январь 2024, 15:02 Ладно, вопрос снимается. Кстати, подсказки заработали (в десятой Винде).
Экранная клавиатура была всегда. Начиная с Win8 добавилась сенсорная клавиатура.
Код: Выделить всё
Loc:MySpecialFolder SpecialFolder
Loc:Folder CSTRING(File:MaxFilePath)
Code
If ( System{Prop:WindowsVersion,8} and (System{Prop:WindowsVersion,9} > WINVERSION:SRV2008R2)) Or |
(~System{Prop:WindowsVersion,8} and (System{Prop:WindowsVersion,9} > WINVERSION:WINDOWS7 ))
! Сенсорная клавиатура
Loc:Folder = Loc:MySpecialFolder.GetDir(SV:CSIDL_PROGRAM_FILES_COMMON)
If Loc:MySpecialFolder.GetError() = 0 then Run(Loc:Folder & '\Microsoft Shared\Ink\TabTip.exe').
else
! Экранная клавиатура
Loc:Folder = Loc:MySpecialFolder.GetDir(SV:CSIDL_SYSTEM)
If Loc:MySpecialFolder.GetError() = 0 then Run(Loc:Folder & '\osk.exe').
end
Наверно всё-таки наоборот. Та, которая в классе (TabTip.exe), нормально в седьмой Винде вызывается.Игорь Столяров писал(а): 20 Январь 2024, 22:27 Экранная клавиатура была всегда. Начиная с Win8 добавилась сенсорная клавиатура.
Неть. Таки поверьте мне, я долго жил и много видел ...
Я тоже долго жил и много видел. И гарантирую, что у клиента на Win7 TabTip.exe работала. Не суть, спорить сейчас поздновато, да и доказать сложновато. Лучше ответьте на такой вопрос. Из приведённого Вами текста программы на Виндах после семёрки вызывается TabTip. Почему? Считаете она лучше? Стандартно Винда включает osk.exe.Игорь Столяров писал(а): 21 Январь 2024, 18:51 Неть. Таки поверьте мне, я долго жил и много видел ...
Так я уже ответил, вопрос в том - слушали ли Вы ... (C) Шерлок
Да конечно непонятно. На автомате (Win+Ctrl+O) вызывается экранная. Которую Майкрософт не рекомендует. А сенсорная, которую Майкрософт рекомендует, не поддерживает подсказки.Игорь Столяров писал(а): 23 Январь 2024, 0:00 Для Win7 сенсорную клавиатуру добавили в каком-то сервиспаке, в Win10 / 11 экранная поддерживается для совместимости.
Я в коде исхожу из рекомендаций Microsoft API по вызову клавиатур в версиях Windows, и не более того.
Это уже больше похоже на тот анекдот, где компьютер при загрузке выдаёт ошибку: