Страница 2 из 2
Текущее состояние DropBox
Добавлено: 21 Октябрь 2016, 17:13
Игорь Столяров
kreator писал(а): Понял. Положи на дроплист регион. Колёсико мышки перестанет работать.
Спасибо, да ! Таким ходом колесико мыши можно обездвижить на DropBox, можно даже по MouseUp сделать Select(?MyDropBox).
Но здесь другая старая засада: нельзя принудительно открыть DropBox для выбора ...

Недавно обсуждали тему.
Admin писал(а): На NewSelection постоянно запоминаем время. На таймере смотрим, прошло к примеру 200ms -> выполняем какой то код (который тормозит).
Почему бы и нет, особенно если других вариантов-то особо и нет. Спасибо, сейчас попробуемс ...

Текущее состояние DropBox
Добавлено: 21 Октябрь 2016, 18:26
Игорь Столяров
Вроде бы нашел решение данного казуса.
1. Заводим флаг DropSelect Byte(False)
2. На событие Selected DropBox вешаем DropSelect = True, а на событие Accepted вешаем DropSelect = False.
3. Теперь можно на событии NewSelection выполнять пересчет, если крутится колесо мыши без открытия: If ~DropSelect ...
В результате: при традиционной работе с открытием списка DropBox - бодро бегаем по списку и выполняем расчет
только при выборе значения, а при прокрутке колёсиком мышкой без открытия - всегда (т.к. выбранная запись меняется).
И все работает корректно.

Текущее состояние DropBox
Добавлено: 21 Октябрь 2016, 19:20
kreator
Игорь Столяров писал(а):2. На событие Selected DropBox вешаем DropSelect = True, а на событие Accepted вешаем DropSelect = False.
А что при событии Accepted пользователь уходит с этого контрола? Кажется, выбор мышкой позиции списка провоцирует EVENT:Accepted. Или я ошибаюсь?
Кстати, в десятой Винде в окне "Выполнить" действительно колёсико работает. Хотя там и Комбо. Ох уж этот Майкрософт. Я помнится недавно выносил тему - в выпадающих списках при при перемещении курсора мыши провоцируется событие NewSelection (один пользователь обратил на это внимание). А я вот думаю - зачем делать расчёт/пересчёт при этом? Пользователь ведь ещё ничего не выбрал. Типа такой же случай. Моё мнение - не должен дроплист реагировать на колесо. Ведь обычный лист не реагирует, комбо, по-моему, тоже не реагирует.
Текущее состояние DropBox
Добавлено: 21 Октябрь 2016, 20:14
Игорь Столяров
kreator писал(а): А что при событии Accepted пользователь уходит с этого контрола?
Да, нажал Enter или щелкнул мышкой на записи (оба действия дают Event:Accepted) - расчет и уход с контрола, выбор сделан.
kreator писал(а): Моё мнение - не должен дроплист реагировать на колесо.
Согласен, не должен. Но здесь AS IS. Что интересно, курсор ввода находится совсем на другом поле ввода, например ENTRY.
Наводим мышь на DropBox и вращаем колесо - по событию NewSelection видим, что текущий контрол ? = ?DropBox,
что не соответствует визуальному отображению. Совсем-совсем не соответствует, абсолютно. Как еще культурно это описать ?
kreator писал(а): Пользователь ведь ещё ничего не выбрал.
Такова реальность. Наведя курсор мыши на DropBox и вращая колесо - пользователь "меняет и выбирает" значение.
По крайне мере - таков результат этого действия. Конечно лучше бы этого не было, но если оно есть - надо это обработать,
что и сделано.

Текущее состояние DropBox
Добавлено: 21 Октябрь 2016, 22:45
kreator
Сейчас посмотрел в Win10 повнимательней. Оказывается, такое поведение и в Комбо и на обычном листе. Получается, выбор поля ни о чём не говорит. Колесо работает везде. Типа как в Web-интерфейсе. Игорь, руками всё не обработаешь. Нужен другой подход какой-то.
Текущее состояние DropBox
Добавлено: 21 Октябрь 2016, 22:51
Игорь Столяров
kreator писал(а): Сейчас посмотрел в Win10 повнимательней. Оказывается, такое поведение и в Комбо и на обычном листе.
Есть подозрение, что в Microsoft тоже лобают на Clarion ?

А какие здесь могут быть подходы ? Поведение структуры LIST прошито в Runtime и нам дано в юзанье как есть ...
Я думал, что может быть я чего-то не понял ... Ан, нет !
Текущее состояние DropBox
Добавлено: 22 Октябрь 2016, 13:20
kreator
Пока не понятно чем это может нам грозить. Но чисто теоретически - событие NewSelection есть, а события Selected нет. Я, например, использую событие Selected, и не редко. При массовом переходе наших клиентов на десятку, боюсь, появятся много вопросов. У меня есть подозрение, что такое поведение в Винде появилось из-за сенсорного ввода. Я ещё раньше заметил на планшете, что можно спокойно пролистывать списки пальцем без "select"а". Но особо не заморачивался, поскольку планшеты не активно пользуют. Да уж, новая реальность...