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

Clarion, Clarion 7

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

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

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

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

Привет всем ! :)

Подскажите пожалуйста, можно ли как-то определить текущее состояние DropBox (свернут или открыт) ?

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

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

Сообщение kreator »

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

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

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

kreator писал(а): Не DropBox, а, видимо, DropCombo.
Нет. Именно LIST с опцией DROP(). После выбора нового значения в DropBox нужно выполнить некоторые расчеты (медленно).
Если их выполнять при простом перемещении засветки в списке - то получается не best.
Именно поэтому дается возможность выбрать пролистать список, а при выборе значения (Accepted) - выполняем расчет показателей.
Make Clarion Great Again ! 😎
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

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

Сообщение Yufil »

Можно попробовать в свёрнутом дроплисте поменять Prop:From на текстовую константу-значение,
?Droplist{Prop:From} = 'CurrentValue'
а по событию развёртывания (Event:Dropdown) - обратно на список.

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

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

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

Спасибо ... Я тоже как-то прихожу к мысли, что лучший способ - это вырубить (как-то) скроллинг при наведении
курсора мыши, без разворачивания списка ....
Надо полазить LibSrc, ну не может же такого быть, что бы не было флага разворачивание списка ... :(
Make Clarion Great Again ! 😎
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Admin »

Для расчетов легко реализуется тайм-аут таймерами. Крутишь - не считает. Притормозил чутка - расчиталось. Не раз так делал.
P.S. Со времен Topspeed так делал. MEMO прочитать, картинку из инета загрузить и т.д.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

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

Сообщение kreator »

Понял. Положи на дроплист регион. Колёсико мышки перестанет работать. Только регион, наверно, не должен на кнопку открытия заходить.
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Admin »

kreator писал(а):Колёсико мышки перестанет работать.
Я как пользователь буду не рад.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

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

Сообщение kreator »

Admin писал(а):
kreator писал(а):Колёсико мышки перестанет работать.
Я как пользователь буду не рад.
Дроплист неправильно работает. Дроплист не выбран, а только мышка над ним. Какого художественного смысла (©) он (дроплист) реагирует на колёсико? Давайте посмотрим как у других. Вот в IBExpert'е (написан на Дельфях) такого поведения нет, проверил.
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Admin »

Вот скриншот.
2016-10-21_23-23-01.png
2016-10-21_23-23-01.png (8.89 КБ) 3532 просмотра
Выбрана кнопка OK. Мышка над списком работает!
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Admin »

IBExpert'е
Не авторитет.
Контролы родные виндовые? Зная Delphi, ответ - нет.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

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

Сообщение kreator »

В седьмой Винде в экране "Выполнить" колесо не работает. Дома проверю в десятой.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 5160
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

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

Сообщение kreator »

В Экселе 2010 в настройках тоже колесо не работает. Надо включить здравый смысл, которого, правда, нет. В чём смысл прокрутки невыбранного дроплиста. Смысл, похоже один - запутать пользователя и создать проблемы разработчику.
We are hard at work… for you. :)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

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

Сообщение Yufil »

В FreeABC для старых версий (не знаю, как сейчас) есть модуль vsa_mwhl, обрабатывающий колесо.

Просматриваются все контролы на экране. Если контрол видимый и при этом находится под курсором мыши,

IF INRANGE(MOUSEX(),FEQ{Prop:XPos},FEQ{Prop:XPos}+FEQ{Prop:Width}) |
AND INRANGE(MOUSEY(),FEQ{Prop:YPos},FEQ{Prop:YPos}+FEQ{Prop:Height})

этому контролу отправляются несколько раз Upkey или DownKey, независимо от того, выбран он или нет.
А вот если под курсором подходящего контрола нет, брался другой, лишь бы List или Text, это убирал.

Возможно, и сейчас так - ищется контрол под курсором мыши, невзирая на...
Аватара пользователя
Admin
Администратор
Сообщения: 4010
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 53 раза
Поблагодарили: 33 раза
Контактная информация:

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

Сообщение Admin »

Проблемс в следующем: нужно выполнить некоторые действия при выборе нового значения в DropBox при ACCEPTED.
Мое мнение. Не нужно лезть в дебри со мышиным скроллом.
На NewSelection постоянно запоминаем время. На таймере смотрим, прошло к примеру 200ms -> выполняем какой то код (который тормозит).
Все. И тогда можно забыть про прокрутку мышью.
Будет работать на всех версия Windows, не зависимо от того крутят мышью или бегают кнопками по контролу.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Ответить