Перейти к содержанию
Fire Monkey от А до Я
  • 0

OnClick срабатывает не всегда!


Sergiy_83

Вопрос

Всем привет.

OnClick событие которое отлично подходит в моем случае. Но если палец хотя бы немножко увести ниже иил выше трекбара - OnClick при отпускании пальца не наступает.

Как быть? 

Android.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
5 минут назад, Alex7wrt сказал:

Попробуйте OnTap или OnMouseUp.

И то и другое не работает при перетаскивании ползунка с одного места в другое. Что уже неприемлемо. К сожалению.

 

Ссылка на комментарий
  • 0

Если вы имеете ввиду, что событие OnClick (точнее говоря OnMouseUp) не наступает, когда палец находится за пределами контрола, то попробуте установить для контрола свойтсво AutoCapture:=True, чтобы он мог реагировать на события за его пределами.

Ссылка на комментарий
  • 0
9 часов назад, Sergiy_83 сказал:

Всем привет.

OnClick событие которое отлично подходит в моем случае. Но если палец хотя бы немножко увести ниже иил выше трекбара - OnClick при отпускании пальца не наступает.

Как быть? 

Android.

Это еще одна кривизна огнеобезьяны. дело в том что событие OnClick происходит не при отпускании пальца а при нажатии пальца. то есть через зад. поэтому если нажать на что либо и сдвинуть палец, событие отпускания уже не произойдет. 

что делать? да хз ) извращаться. 

Ссылка на комментарий
  • 0
49 минут назад, haword сказал:

если нажать на что либо и сдвинуть палец, событие отпускания уже не произойдет

что-то не помню такого дефекта

я строил скролл по down-move-up

и все работало

 

Изменено пользователем krapotkin
Ссылка на комментарий
  • 0
5 часов назад, krapotkin сказал:

что-то не помню такого дефекта

я строил скролл по down-move-up

и все работало

 

андроид, листвью, зажимаем итем, не отпускаем, тадам, сработал онитемклик. 

Ссылка на комментарий
  • 0

В случае кнопки я еще понять могу. Типа я нажал, пожалел об этом, увел в сторону и отменил нажатие тем самым. Но трек бар узкий и это уже проблемы. Кстати когда происходит захват ползунка, он увеличивается в размерах,  двигается даже если палец за пределами и когда отпускаеш, ползунок опять уменьшается! А событие - фигушки.

Ссылка на комментарий
  • 0

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

Ссылка на комментарий
  • 0
2 минуты назад, Akad сказал:

MouseUp контролла естественно не будет.  И я не о нём, а о форме.

Ну почему не будет. Он и куча других событий есть если клацнуть пальцем справа или слева от ползунка. Толку от этого только мало.

Не понимаю причем здесь форма. Форма большая мало ли когда я по ней клацну.

Ссылка на комментарий
  • 0
16 часов назад, Sergiy_83 сказал:

В случае кнопки я еще понять могу. Типа я нажал, пожалел об этом, увел в сторону и отменил нажатие тем самым. Но трек бар узкий и это уже проблемы. Кстати когда происходит захват ползунка, он увеличивается в размерах,  двигается даже если палец за пределами и когда отпускаеш, ползунок опять уменьшается! А событие - фигушки.

в принципе это верный подход. ибо это тач интерфейс. сдвиг нажатого пальца всегда будет обозначать действие над интерфейсом типа попытки скрола всего контрола или тот же свайп элемента. то есть после сдвига не должно происходить онклика. 

 

 

Ссылка на комментарий
  • 0

Сделал то что надо на основе progressbar, получилось еще красивее.

Основа – rectangle, на ней progressbar у него HitTest = false и выравнивание по горизонтали. На rectangle повесил три события OnMouseDown, OnMouseMove и OnMouseLeave. У первых двух код устанавливает Value прогресбара в соответствии координатой пальца по оси X.  OnMouseLeave это основное действие которое выполняется после того как палец ушел за пределы или отрыв в любом месте. В моем случае это перемотка по файлу. Rectangle полезен когда progressbar узкий, для удобства использования. Цвет ему прозрачный, закруглить углы и получается довольно симпатичный контрЛ.

 

time.png

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...