Пример реализации прокрутки для тач-интерфейса.

12.04.13

Разработка - Работа с интерфейсом

Обработка + внешняя компонента, которые позволяют добиться того, что так нужно любому тач-интерфейсу: прокрутки списков пальцем!

Скачать исходный код

Наименование Файл Версия Размер
Обработка + ВК
.epf 17,25Kb
114
.epf 17,25Kb 114 Скачать

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

    1С 8.2 и управляемые формы достаточно гибки (особенно вспоминая ужас работы с интерфейсом 7.7). В принципе, почти все, что нужно, они сделать позволяют. Можно и кнопки большие реализовать, и шрифт. Остается одна принципиальная задача, я бы даже сказал, вызов - это прокрутка пальцем. Как пользователь планшета, я не понимаю, зачем существует тач интерфейс, если нет возможности пользоваться руками. Однако, проблема в том, что в 1С нельзя подписаться на события "MouseDown" и "MouseUp", а так же нельзя получить координаты курсора мыши. Палец же с точки зрения тач-интерфейса - это мышь. Поэтому, чтобы получить возможность прокручивать список, данные задачи стоит передать внешней компоненте. 

Ок, данные от мыши получили. Встает следующая проблема :) 1С очень неловко (с точки зрения вмешательства) работает с табличным полем, которое привязано к динамическому списку. Нельзя ни получить общее количество строк, ни (в определенных случаях) получить номер текущей строки и увеличить его. Можно, конечно, пытаться как-нибудь выйти из положения с помощью скрытых колонок. Мне показалось, что лучшим вариантом будет "превратить" движения мыши вверх-вниз с зажатой кнопкой (= то есть движения пальца по экрану) в сообщения о прокрутке колеса мыши. 1С замечательно обрабатывает такие события без каких-либо ухищрений.

Итак, что представляет собой внешняя компонента?

Это dll по технологии NativeAPI, у которой есть 2 метода и 2 свойства.

Методы донельзя простые, это Включить() и Выключить()

Свойства тоже очевидны: Включен (чтение) и Активирован (чтение и запись).

Второе свойство служит для активации режима превращения MouseMove в MouseScroll.

С точки зрения Windows, компонента ставит глобальный хук на WH_MOUSE_LL. В случае активации блокирует сообщение WM_MOVE и шлет вместо него WM_MOUSEWHEEL.

Работа протестирована на УТ11 в средах Win7, WinXP, Win2003. Обработка умеет подключаться как дополнительная.

Компонента находится в макете обработки, приложенной к этой заметке. Сама обработка ничего толкового не делает - просто выводит список из 200 строк для тестирования прокрутки. 

Для работы компоненты могут понадобиться C++ Redistributable.

12.04.2013

Добавлено свойство "Чувствительность". Параметр влияет на скорость прокрутки (то есть на скорость посыла сообщения для скролла). При Ч. = 1 скролл работает "по умолчанию" с "обычной" скоростью. При увеличении Ч. скролл замедляется. Тип параметра = целое число.

P.S. Для корректной работы прокрутки необходимо у таблицы формы выставить следующие свойства:

Разрешить начало перетаскивания - Истина

Разрешить перетаскивание - Ложь

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61971    43    59    

81

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54599    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    16849    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    11037    757    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

2 стартмани

10.04.2023    9809    153    acces969    31    

119

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3867    kalyaka    4    

29

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12228    1    5    

10
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Sholl 105 28.03.13 11:04 Сейчас в теме
Классная штука.
+1
Вопрос: можно ли убрать предупреждение: внешняя компонента успешно установлена?
+
2. stanru1 91 28.03.13 23:50 Сейчас в теме
(1) обновил обработку, теперь почем зря предупреждение не выскакивает.
+
3. yuraos 991 29.03.13 06:21 Сейчас в теме
(2)

1С 8.2 и управляемые формы достаточно гибки (особенно вспоминая ужас работы с интерфейсом 7.7).


И в чем именно этот "ужас" заключался ???
+
4. stanru1 91 29.03.13 08:52 Сейчас в теме
(3) эти слова - не огульное обвинение 7.7, а беззлобное подтрунивание
если серьезно, то в 7.7, например, формы надо было рисовать, расставляя элементы управления в нужном порядке. в 8.2 платформа сама их размещает. Не было в 7.7 динамических списков. Не было настоек условного оформления.
Разумеется, владея formex можно было сделать многое, но в 8.2 это делать удобнее.
+
5. yuraos 991 29.03.13 19:12 Сейчас в теме
(4)
а ... это ты про штатные возможности 1с-7.7.

ну да, в 1с-7.7 интерфейсные возможности более чем скромны.
сам использовал formex для их разнообразия.

мне почему-то показалось
что ты сравниваешь обычный интерфейс 1с-8.2 с управляемым

и я сразу изготовился поднять тему
о "кошмариках" управляемого приложения
:)
+
6. yuraos 991 29.03.13 19:14 Сейчас в теме
stanru1,
классный у тебя котяра!
;)
+
7. Hellgga 29.03.13 20:48 Сейчас в теме
(6) yuraos, Это вроде не котяра, а манул...
Вот ещё один :)
Прикрепленные файлы:
yuraos; +1
9. yuraos 991 29.03.13 22:13 Сейчас в теме
8. stanru1 91 29.03.13 21:29 Сейчас в теме
(6) yuraos, спасибо! Этот котяра был в подарках "контакта". Оттуда я его и уволок.

(7) Hellgga, именно манул это и есть.
+
10. Sholl 105 11.04.13 18:48 Сейчас в теме
А можно добавить свойство "Чувствительность"?
Типа на сколько движений мыши будет один скролл.
Или ограничение количества сколлов в секунду.
+
11. stanru1 91 12.04.13 12:17 Сейчас в теме
(10) добавил свойство "Чувствительность". При Ч. = 1 скролл происходит "по умолчанию". При увеличении Ч. - замедляется.
+
12. tdsk 06.02.14 14:52 Сейчас в теме
Выложите пожалуйста dll. Пытаюсь переписать на 8.1 и никак не могу вытащить ВК из обработки, винд 7 не хочет её регистрировать
Прикрепленные файлы:
+
13. dindzilin 26.02.14 19:01 Сейчас в теме
Насколько помню, компоненты по технологии NativeAPI не нуждаются в регистрации в этом их фишка. А вот может ли 8.1 с ними работать - не уверен, по моему нет. Проще переписать на технологию COM.
Виталик; +1
14. dindzilin 03.03.14 16:30 Сейчас в теме
Есть вопрос автору - есть идеи как реализовать то же самое только на табличном документе?
+
15. LeaNaeD 06.04.14 16:25 Сейчас в теме
Присоединяюсь по поводу табличного документа. Но больше всего хотелось бы посмотреть рабочий пример сенсорной прокрутки самой формы или данных панели. Тыцкать пальцем за ползунок и тянуууууть - невеселое занятие это все.
Прикрепленные файлы:
+
16. Edgar70 16.12.14 11:52 Сейчас в теме
Аналогично, вопрос по прокрутке формы... можно ли это реализовать? или хотябы кнопку которая эмулирует прокрутку колесом мышки?
+
17. ParabolParabola 16.12.14 15:03 Сейчас в теме
Вообще не понятно как она работает. На Windows 8, что с этой обработкой, что без нее, ничего не меняется, справочники не листаются.
+
18. Edgar70 17.12.14 07:26 Сейчас в теме
(17) ParabolParabola, Насчет журнала справочников не знаю, а вот динамические списки листает прекрасно и в win 7 и в win 8(.1)
По сути, для прокрутки формы проблема заключается только в том, как активировать захват мышки без выделения какого либо элемента
+
19. ParabolParabola 16.02.15 11:08 Сейчас в теме
На windovs server 2008, не регистрируется MouseEvents.dll, как можно зарегистрировать эту dll?
+
20. Edgar70 25.03.15 09:59 Сейчас в теме
(19) ParabolParabola, Запустить от имени админа 1ску?
(2) Возникла проблема на планшете - при частом пролистывании компонента подвисает :(
и при активном открытии/закрытии форм может вылететь и больше не включиться... автор, подскажи плиз, как можно усовершенствовать? повысить стабильность? сверхнеобходимая штука! :)
+
21. antoklio 23.08.17 15:04 Сейчас в теме
А на Windows 10 будет работать компонента?
+
Оставьте свое сообщение