Такая незадача. Кликнул мышкой на картинке, передвинул куда надо и отпустил клавишу. Должно произойти событие отпускания кнопки мышки. Но почему-то не работает. С точки onMouseMove, без сдвига, работает. Но после движения нужен второй щелчок. С точек onClick и onMouseDown только двойной щелчок. Вопрос: как отловить отпускание клавиши? code_11160.txt
Этот топик читают: Гость
Ответов: 875
Рейтинг: 322
|
|||
карма: 1 |
| ||
файлы: 1 | code_11160.txt [536B] [266] |
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
kamakama, ну, вот так, вроде, работает
|
|||
карма: 22 |
|
Ответов: 875
Рейтинг: 322
|
|||
nesco, действительно работает! Спасибо! И ещё одна просьба, если не трудно можно в двух словах объяснить как это работает. Просто хочется понять принцип а не тупо запомнить соединение элементов.
|
|||
карма: 1 |
|
Разработчик
Ответов: 26151
Рейтинг: 2127
|
|||
kamakama писал(а): Просто хочется понять принципЭтот принцип мне самому не до конца понятен, но MouseUp не везде и не всегда срабытывет (вот в таблице он точно нормально не работает). Я всегда использую для этих целей MouseMove |
|||
карма: 22 |
|
Ответов: 899
Рейтинг: 43
|
|||
kamakama, а как тебе такой интересный вариант?
code_2323.txt Получается что точка onClick в данной схеме работает как onMouseUp kamakama писал(а): Просто хочется понять принципмне тоже интересно, почему не срабатывает onMouseUp, но зато срабатывает onMouseMove даже при неподвижной мышке. Наверное MoveWindow что-то непонятное творит с точками окна, которое перемещает |
|||
карма: 0 |
| ||
файлы: 1 | code_2323.txt [496B] [237] |
Ответов: 2267
Рейтинг: 676
|
|||
карма: 11 |
| ||
файлы: 1 | code_11162.txt [560B] [416] |
Ответов: 875
Рейтинг: 322
|
|||
Спасибо всем. "Не было ни гроша а тут алтын."
|
|||
карма: 1 |
|
Ответов: 3851
Рейтинг: 159
|
|||
да - круто, осталось только понять - если оно так просто (да ещё и несколькими способами) реализуется схемно, то почему оно не может быть реализовано внутрикомпонентно?
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Андрей. писал(а): осталось только понять - если оно так просто (да ещё и несколькими способами) реализуется схемно, то почему оно не может быть реализовано внутрикомпонентно?понять очень просто - никто не делает программы с перетаскиванием элементов интерфейса по форме и тем более с использованием подмены сообщений в очереди, которую и производит элемент MoveWindow |
|||
карма: 27 |
|
Ответов: 3851
Рейтинг: 159
|
|||
Dilma писал(а): никто не делает программы с перетаскиванием элементов интерфейса по форме |
|||
карма: 0 |
|
Ответов: 899
Рейтинг: 43
|
|||
Dilma писал(а): никто не делает программы с перетаскиванием элементов интерфейса по формеэто почему же, по моему все программы-редакторы электронных схем работают подобным образом. Производится перемещение спрайтов(электронного компонента по листу схемы), правда не знаю можно ли назвать их элементами интерфейса |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
unalex, в нормальных редакторах это не элементы интерфейса, а
1) иконка курсора 2) отрисовка поверх контекста среды(см. редактор форм в hiasm) 3) перемещение формы с заданным Transparent и AlphaBlend Помню мне пару раз приходили письма с просьбой уточнить сделаны ли элементы схемы из панелей или еще из каких визуальных контролов... Это распространенное решение среди новичков потому, что самое простое. В свое время делал игру змейка с использованием панелей, после чего больше никогда не рассматривал решений с перетаскиванием визуальных элементов. Вот простой пример: code_11179.txt предлагаю после запуска подвигать какую-нибудь программу поверх формы этого примера и посмотреть на загрузку CPU(причем двигать можно не только над панелями, но над пустой областью). Если после этого все еще не отпадет желание делать такие программы, то могу только пожелать терпеливых пользователей с хорошими рабочими станциями |
|||
карма: 27 |
| ||
файлы: 2 | cpu_usage.png [19.1KB] [305], code_11179.txt [1.1KB] [251] |
Ответов: 3851
Рейтинг: 159
|
|||
Dilma, а как "правильно" сделать, ну например регулятор громкости, как в проигрывателе Windows?
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Андрей., правильно это взять PaintBox и нарисовать его на нем. А как рисовать - это уже дело вкуса, можно картинками, можно и из примитивов все сделать, но в любом случае такое решение хоть и сложнее, но зато эффективнее.
|
|||
карма: 27 |
|
14