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

Событие OnMouseUp у TTrackBar


Вячеслав

Вопрос

Господа, проблемы с сабжем. Не работает и все тут. Может я туплю и в интернетах описаны способы регистрации события у трекбара, но у меня пока не получается. Интересует отлов отпускания мыши у компонента, созданного в Design-Time.

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

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

  • 0

У трекбара есть свойство "Thumb" это как раз та пимпочка на трекбаре. Нужно установить обработчик события на ней, т.е. Trackbar1.Thumb.OnMouseUp.

 

 

P.S.: Вот еще можете эту темку глянуть, думаю будет полезным. Кстати в XE7 свойства Thumb небыло, оно появилось в XE8.

Изменено пользователем xenon54
Ссылка на комментарий
  • 0

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

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

Для XE7 можно сделать так: 

TrackBar1.StylesData['hThumb.OnMouseUp'] := TValue.From<TMouseEvent>(form1.TrackBar1ThumbMouseUp);

И не нужно таскать библиотеки с собой.

Изменено пользователем xenon54
Ссылка на комментарий
  • 0

Отличное решение, спасибо! Только вот один момент смущает: событие срабатывает лишь в тех случаях, когда на трекбаре происходит клик мышью. А если я нажал на каретку, потащил ее в сторону и потом отпустил (как раз MouseUp), то событие не обрабатывается.

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

Вячеслав, можно поподробней, а то у меня аналогичная ситуация с TscrollBar.

PS

О, с TTrackBar получилось, а вот с TscrollBar не получается

 

xenon54, а подобного решения для  TscrollBar нет?

Изменено пользователем GASCHE
Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...