Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Дата: Сб, 03 Сентября 2011, 21:08 | Сообщение # 31
Участник
Проверенные
Сообщений: 277
Offline
Может через присвоение переменной? Изначально klick = 0 При каждом клике klick + 1 Если одинарный, то всё-равно эти 300мс ждать. Но если двойной, то событие произойдет мгновенно, надо лишь таймер выставить на 10мс, например, и проверять не равен ли klick двум. Если в течении 300мс не станет равным двум - выполняем код для одинарного клика, а если при каждой проверке в 10мс у нас klick стал равен двум - тормозим таймер и выполняем действие для даблклика.
Дата: Сб, 03 Сентября 2011, 23:30 | Сообщение # 32
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (Format-X22)
надо лишь таймер выставить на 10мс, например, и проверять не равен ли klick двум. Если в течении 300мс не станет равным двум - выполняем код для одинарного клика
Дата: Сб, 03 Сентября 2011, 23:39 | Сообщение # 34
Генератор идей
Модераторы
Сообщений: 3173
Offline
А не надо ставить на 300, надо включать таймер 30 раз по 10, фиксируя результат в переменной, и все дела. Может и на 200 двойной сработать (кто быстро кликает), да хоть на 20, если мышиный ниндзя. Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Дата: Вс, 04 Сентября 2011, 00:06 | Сообщение # 35
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
таймер в текущем виде это зло. избегайте его где он не нужен. Прием mishem отлично пашет, позволяет быстро детектить любое кол-во щелчков. А задержку можно взять системную из реестра, тогда все будет как должно быть на самом деле. Как задавать вопросы
а если при каждой проверке в 10мс у нас klick стал равен двум
Во первых. Попробуй ка за 10мс сделать дубль клик. Не получается? А за 20? Тоже нет? Во блин незадача. За 30, 40, 100, 150. Не? Не выходит? Тогда зачем такой интервал? Во вторых
Quote (DEMBEL)
таймер в текущем виде это зло.
ИМХО и не только в текущем. Почему? Говорил выше. И на будущее. Для любителей таймера. Создавайте название переменных исключительно для каждого таймера свои. И нигде в проекте не вставляйте эти переменные.
К примеру. Со временем мы привыкаем к переменной [result]. Посылаем команду на проверку файла.
InternetFileExists "http://www." "[result]" ""
Допустим приходит ответ true. И дальше у нас идет код на загрузку файла.
If "[result]" "=" "true" DownloadFile "http://www." "имя файла" "" EndIf
Но после команды
InternetFileExists "http://www." "[result]" ""
Случайно запускается таймер. Где тоже есть переменная [result]. И таймер меняет ее значение. Пока таймер не сработает, Скрипт
If "[result]" "=" "true" DownloadFile "http://www." "имя файла" "" EndIf
не запустится. Он начнет работать только после таймера, или может случайно вклинится в паузы таймера. Но не раньше.
Так как таймер изменил значение переменной [result], то файл мы с сервера уже не получим по любому. Это я привел один из простых вариантов. Но чем больше кода в проекте, тем больше непредсказуемости поведения программы после таймера.
Добавлено (04 Сентябрь 2011, 10:05) --------------------------------------------- Еще хуже, когда одновременно запускается несколько таймеров. Один таймер обрывает код другого. И что может получится в итоге, одному богу известно.
Дата: Вс, 04 Сентября 2011, 15:53 | Сообщение # 43
Генератор идей
Модераторы
Сообщений: 3173
Offline
А почему нет? В скорости нажатия не надо учитывать скорость движения нервного импульса (это же не измерение скорости реакции), импульс посылается заранее, как своего рода программа мышце. А мышечное волокно способно на сокращение со скоростью даже меньше 1 мс, если верить источникам. Тут главное чтобы сопротивление было минимальным и минимальная глубина отжатия клавиши для прерывания контактов клавиши.
Дата: Вс, 04 Сентября 2011, 16:10 | Сообщение # 45
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
даже если не учитывать особенности конструкции кнопок мышки (что здесь определяющее) человек в силу многих факторов физически неспособен произвольно повторить действие 3 раза за 3мсек (разве что в испытаниях, под электростимуляцией)). Во первых, для таких измерений предложенный вариант в виде нб-проекта явно несостоятелен и дающий огромную погрешность. Минимальное время намеренного реагирования здорового человека 100-140мсе, т.е. нажать кнопку дважды менее чем за 200мс это надо очень постараться.
Дата: Вс, 04 Сентября 2011, 16:18 | Сообщение # 46
Генератор идей
Модераторы
Сообщений: 3173
Offline
Quote (DEMBEL)
человек в силу многих факторов физически неспособен произвольно повторить действие 3 раза за 3мсек
Конечно, если иметь в виду произвольное действие. Только я не произвольно нажимаю, а даю команду заранее и просто безучастно наблюдаю за кликами. Еще значение имеет характер внутренней команды (влияет на характер последующей иннервации мышцы) - сделать ДВА клика максимально быстро или сделать ОДИН двойной клик.
Quote (DEMBEL)
Во первых, для таких измерений предложенный вариант в виде нб-проекта явно несостоятелен и дающий огромную погрешность.
Вот это скорее всего и позволяет получить такие результаты...
Мне уже стало интересно, можно ли сделать точный программный измеритель для времени между кликами?
Дата: Вс, 04 Сентября 2011, 16:31 | Сообщение # 47
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Quote (Вадим)
сделать ДВА клика максимально быстро или сделать ОДИН двойной клик.
не имеет значения иннервация, как ты сам указывал из-за скорости импульса ее характером можно пренебречь. дело не столько в ней, а в процессах в мышцах. Если бы мы подключили измеритель непосредственно к нервным окончаниям пальца то разумеется увидели бы пачки импульсов с частотой 2-3мсек, но мы оцениваем время реакции пальца (что гораздо медленнее). А точнее, механизма кнопки мыши (что еще медленнее).
Quote (Вадим)
Мне уже стало интересно, можно ли сделать точный программный измеритель для времени между кликами?
Дата: Вс, 04 Сентября 2011, 16:59 | Сообщение # 56
Админ NeoBook
Администраторы
Сообщений: 7425
Offline
Вот читаешь все это, и так и хочеться воскликнуть: ЛЮДИ! ЧЕЛОВЕКИ! Неужели вам больше заняться нечем, а?!
Даже в самой винде и то случается так, что двойной клик нечетко срабатывет (зависит от изношенности мышки, положения пальцев юзера на мышке, степени нажама на кнопку мышки) при прочих равных условиях.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Дата: Вс, 04 Сентября 2011, 17:32 | Сообщение # 60
Удаленные
Пускай Петр добавит в свой плагин мониторинг двойного клика и будет отлично Я бы конечно сделал плагин, но зачем плодить плагины? А своего универсального у меня нет.