Sergiy_83 Опубликовано 26 апреля, 2018 Поделиться Опубликовано 26 апреля, 2018 Всем привет. OnClick событие которое отлично подходит в моем случае. Но если палец хотя бы немножко увести ниже иил выше трекбара - OnClick при отпускании пальца не наступает. Как быть? Android. Цитата Ссылка на комментарий
0 Alex7wrt Опубликовано 26 апреля, 2018 Поделиться Опубликовано 26 апреля, 2018 (изменено) Попробуйте OnTap или OnMouseUp. Изменено 26 апреля, 2018 пользователем Alex7wrt Цитата Ссылка на комментарий
0 Sergiy_83 Опубликовано 26 апреля, 2018 Автор Поделиться Опубликовано 26 апреля, 2018 5 минут назад, Alex7wrt сказал: Попробуйте OnTap или OnMouseUp. И то и другое не работает при перетаскивании ползунка с одного места в другое. Что уже неприемлемо. К сожалению. Цитата Ссылка на комментарий
0 Alex7wrt Опубликовано 26 апреля, 2018 Поделиться Опубликовано 26 апреля, 2018 Если вы имеете ввиду, что событие OnClick (точнее говоря OnMouseUp) не наступает, когда палец находится за пределами контрола, то попробуте установить для контрола свойтсво AutoCapture:=True, чтобы он мог реагировать на события за его пределами. Цитата Ссылка на комментарий
0 Sergiy_83 Опубликовано 26 апреля, 2018 Автор Поделиться Опубликовано 26 апреля, 2018 __fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner) { TrackBar1->AutoCapture = True; } Все равно не работает. Цитата Ссылка на комментарий
0 haword Опубликовано 27 апреля, 2018 Поделиться Опубликовано 27 апреля, 2018 9 часов назад, Sergiy_83 сказал: Всем привет. OnClick событие которое отлично подходит в моем случае. Но если палец хотя бы немножко увести ниже иил выше трекбара - OnClick при отпускании пальца не наступает. Как быть? Android. Это еще одна кривизна огнеобезьяны. дело в том что событие OnClick происходит не при отпускании пальца а при нажатии пальца. то есть через зад. поэтому если нажать на что либо и сдвинуть палец, событие отпускания уже не произойдет. что делать? да хз ) извращаться. Цитата Ссылка на комментарий
0 krapotkin Опубликовано 27 апреля, 2018 Поделиться Опубликовано 27 апреля, 2018 (изменено) 49 минут назад, haword сказал: если нажать на что либо и сдвинуть палец, событие отпускания уже не произойдет что-то не помню такого дефекта я строил скролл по down-move-up и все работало Изменено 27 апреля, 2018 пользователем krapotkin Цитата Ссылка на комментарий
0 haword Опубликовано 27 апреля, 2018 Поделиться Опубликовано 27 апреля, 2018 5 часов назад, krapotkin сказал: что-то не помню такого дефекта я строил скролл по down-move-up и все работало андроид, листвью, зажимаем итем, не отпускаем, тадам, сработал онитемклик. Цитата Ссылка на комментарий
0 krapotkin Опубликовано 27 апреля, 2018 Поделиться Опубликовано 27 апреля, 2018 описание-то было другое "если нажать на что либо и сдвинуть палец, событие отпускания уже не произойдет" Цитата Ссылка на комментарий
0 Sergiy_83 Опубликовано 27 апреля, 2018 Автор Поделиться Опубликовано 27 апреля, 2018 В случае кнопки я еще понять могу. Типа я нажал, пожалел об этом, увел в сторону и отменил нажатие тем самым. Но трек бар узкий и это уже проблемы. Кстати когда происходит захват ползунка, он увеличивается в размерах, двигается даже если палец за пределами и когда отпускаеш, ползунок опять уменьшается! А событие - фигушки. Цитата Ссылка на комментарий
0 Akad Опубликовано 27 апреля, 2018 Поделиться Опубликовано 27 апреля, 2018 Имхо правильнее всего отслеживать перемещения "мышки" по форме, и выставляя предварительно флажок, что сейчас таскается этот бар. Под винду выходил в своё время из положения именно так. Под андроид не уверен как ходят события - думаю примерно так же. krapotkin 1 Цитата Ссылка на комментарий
0 Sergiy_83 Опубликовано 27 апреля, 2018 Автор Поделиться Опубликовано 27 апреля, 2018 51 минуту назад, Akad сказал: выставляя предварительно флажок, что сейчас таскается этот бар Вопрос в том, как понять когда он уже не таскается. Цитата Ссылка на комментарий
0 Akad Опубликовано 27 апреля, 2018 Поделиться Опубликовано 27 апреля, 2018 51 минуту назад, Sergiy_83 сказал: Вопрос в том, как понять когда он уже не таскается. MouseUp? Цитата Ссылка на комментарий
0 Sergiy_83 Опубликовано 27 апреля, 2018 Автор Поделиться Опубликовано 27 апреля, 2018 43 минуты назад, Akad сказал: MouseUp? не работает при перетаскивании ползунка с одного места в другое. Что неприемлемо. Писал об этом выше. Цитата Ссылка на комментарий
0 Akad Опубликовано 27 апреля, 2018 Поделиться Опубликовано 27 апреля, 2018 1 час назад, Sergiy_83 сказал: Писал об этом выше. MouseUp контролла естественно не будет. И я не о нём, а о форме. Цитата Ссылка на комментарий
0 Sergiy_83 Опубликовано 27 апреля, 2018 Автор Поделиться Опубликовано 27 апреля, 2018 2 минуты назад, Akad сказал: MouseUp контролла естественно не будет. И я не о нём, а о форме. Ну почему не будет. Он и куча других событий есть если клацнуть пальцем справа или слева от ползунка. Толку от этого только мало. Не понимаю причем здесь форма. Форма большая мало ли когда я по ней клацну. Цитата Ссылка на комментарий
0 Akad Опубликовано 27 апреля, 2018 Поделиться Опубликовано 27 апреля, 2018 44 минуты назад, Sergiy_83 сказал: Не понимаю причем здесь форма. Форма большая мало ли когда я по ней клацну. См. выше. Я всё описал. Цитата Ссылка на комментарий
0 haword Опубликовано 28 апреля, 2018 Поделиться Опубликовано 28 апреля, 2018 16 часов назад, Sergiy_83 сказал: В случае кнопки я еще понять могу. Типа я нажал, пожалел об этом, увел в сторону и отменил нажатие тем самым. Но трек бар узкий и это уже проблемы. Кстати когда происходит захват ползунка, он увеличивается в размерах, двигается даже если палец за пределами и когда отпускаеш, ползунок опять уменьшается! А событие - фигушки. в принципе это верный подход. ибо это тач интерфейс. сдвиг нажатого пальца всегда будет обозначать действие над интерфейсом типа попытки скрола всего контрола или тот же свайп элемента. то есть после сдвига не должно происходить онклика. Цитата Ссылка на комментарий
0 Sergiy_83 Опубликовано 2 мая, 2018 Автор Поделиться Опубликовано 2 мая, 2018 Сделал то что надо на основе progressbar, получилось еще красивее. Основа – rectangle, на ней progressbar у него HitTest = false и выравнивание по горизонтали. На rectangle повесил три события OnMouseDown, OnMouseMove и OnMouseLeave. У первых двух код устанавливает Value прогресбара в соответствии координатой пальца по оси X. OnMouseLeave это основное действие которое выполняется после того как палец ушел за пределы или отрыв в любом месте. В моем случае это перемотка по файлу. Rectangle полезен когда progressbar узкий, для удобства использования. Цвет ему прозрачный, закруглить углы и получается довольно симпатичный контрЛ. krapotkin, Ingalime и Maximus 3 Цитата Ссылка на комментарий
0 krapotkin Опубликовано 2 мая, 2018 Поделиться Опубликовано 2 мая, 2018 вот! это мое решение обычно. прямо по месту запилить нужное количество Trectangle и все сделать ручками )) Цитата Ссылка на комментарий
Вопрос
Sergiy_83
Всем привет.
OnClick событие которое отлично подходит в моем случае. Но если палец хотя бы немножко увести ниже иил выше трекбара - OnClick при отпускании пальца не наступает.
Как быть?
Android.
Ссылка на комментарий
19 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.