Текущее состояние DropBox

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8031
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Текущее состояние DropBox

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

kreator писал(а): Понял. Положи на дроплист регион. Колёсико мышки перестанет работать.
Спасибо, да ! Таким ходом колесико мыши можно обездвижить на DropBox, можно даже по MouseUp сделать Select(?MyDropBox).
Но здесь другая старая засада: нельзя принудительно открыть DropBox для выбора ... :( Недавно обсуждали тему.
Admin писал(а): На NewSelection постоянно запоминаем время. На таймере смотрим, прошло к примеру 200ms -> выполняем какой то код (который тормозит).
Почему бы и нет, особенно если других вариантов-то особо и нет. Спасибо, сейчас попробуемс ... :)
Make Clarion Great Again ! 😎
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8031
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Текущее состояние DropBox

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

Вроде бы нашел решение данного казуса.

1. Заводим флаг DropSelect Byte(False)
2. На событие Selected DropBox вешаем DropSelect = True, а на событие Accepted вешаем DropSelect = False.
3. Теперь можно на событии NewSelection выполнять пересчет, если крутится колесо мыши без открытия: If ~DropSelect ...

В результате: при традиционной работе с открытием списка DropBox - бодро бегаем по списку и выполняем расчет
только при выборе значения, а при прокрутке колёсиком мышкой без открытия - всегда (т.к. выбранная запись меняется).
И все работает корректно. :)
Make Clarion Great Again ! 😎
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Текущее состояние DropBox

Сообщение kreator »

Игорь Столяров писал(а):2. На событие Selected DropBox вешаем DropSelect = True, а на событие Accepted вешаем DropSelect = False.
А что при событии Accepted пользователь уходит с этого контрола? Кажется, выбор мышкой позиции списка провоцирует EVENT:Accepted. Или я ошибаюсь?
Кстати, в десятой Винде в окне "Выполнить" действительно колёсико работает. Хотя там и Комбо. Ох уж этот Майкрософт. Я помнится недавно выносил тему - в выпадающих списках при при перемещении курсора мыши провоцируется событие NewSelection (один пользователь обратил на это внимание). А я вот думаю - зачем делать расчёт/пересчёт при этом? Пользователь ведь ещё ничего не выбрал. Типа такой же случай. Моё мнение - не должен дроплист реагировать на колесо. Ведь обычный лист не реагирует, комбо, по-моему, тоже не реагирует.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8031
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Текущее состояние DropBox

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

kreator писал(а): А что при событии Accepted пользователь уходит с этого контрола?
Да, нажал Enter или щелкнул мышкой на записи (оба действия дают Event:Accepted) - расчет и уход с контрола, выбор сделан. :)
kreator писал(а): Моё мнение - не должен дроплист реагировать на колесо.
Согласен, не должен. Но здесь AS IS. Что интересно, курсор ввода находится совсем на другом поле ввода, например ENTRY.
Наводим мышь на DropBox и вращаем колесо - по событию NewSelection видим, что текущий контрол ? = ?DropBox,
что не соответствует визуальному отображению. Совсем-совсем не соответствует, абсолютно. Как еще культурно это описать ? ;)
kreator писал(а): Пользователь ведь ещё ничего не выбрал.
Такова реальность. Наведя курсор мыши на DropBox и вращая колесо - пользователь "меняет и выбирает" значение.
По крайне мере - таков результат этого действия. Конечно лучше бы этого не было, но если оно есть - надо это обработать,
что и сделано. :)
Make Clarion Great Again ! 😎
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Текущее состояние DropBox

Сообщение kreator »

Сейчас посмотрел в Win10 повнимательней. Оказывается, такое поведение и в Комбо и на обычном листе. Получается, выбор поля ни о чём не говорит. Колесо работает везде. Типа как в Web-интерфейсе. Игорь, руками всё не обработаешь. Нужен другой подход какой-то.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8031
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Текущее состояние DropBox

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

kreator писал(а): Сейчас посмотрел в Win10 повнимательней. Оказывается, такое поведение и в Комбо и на обычном листе.
Есть подозрение, что в Microsoft тоже лобают на Clarion ? ;)
А какие здесь могут быть подходы ? Поведение структуры LIST прошито в Runtime и нам дано в юзанье как есть ...
Я думал, что может быть я чего-то не понял ... Ан, нет !
Make Clarion Great Again ! 😎
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Текущее состояние DropBox

Сообщение kreator »

Пока не понятно чем это может нам грозить. Но чисто теоретически - событие NewSelection есть, а события Selected нет. Я, например, использую событие Selected, и не редко. При массовом переходе наших клиентов на десятку, боюсь, появятся много вопросов. У меня есть подозрение, что такое поведение в Винде появилось из-за сенсорного ввода. Я ещё раньше заметил на планшете, что можно спокойно пролистывать списки пальцем без "select"а". Но особо не заморачивался, поскольку планшеты не активно пользуют. Да уж, новая реальность...
We are hard at work… for you. :)
Ответить