16 / 16 / 3
Регистрация: 01.03.2013
Сообщений: 130
|
|
1 | |
OnMouseMove18.03.2013, 18:14. Показов 6196. Ответов 17
Метки нет Все метки)
(
такой вопрос событие OnMouseMove возникает в момент движения мышки, x и y которые передаются в параметрах запоминают координаты где была мышка до перемещения? или где стала находится после?
0
|
|
18.03.2013, 18:14 | |
Ответы с готовыми решениями:
17
OnMouseMove
Событие onMouseMove Tchart и событие OnMouseMove |
1852 / 1174 / 190
Регистрация: 27.03.2009
Сообщений: 4,514
|
|
18.03.2013, 18:16 | 2 |
на тек момент
0
|
16 / 16 / 3
Регистрация: 01.03.2013
Сообщений: 130
|
|
18.03.2013, 18:32 [ТС] | 3 |
т.е. после перемещения или до? конкретно сложно было ответить?
Добавлено через 5 минут п.с. просто мне очень нужно что то типа OnMouseLeave только срабатывающее при покидании заданной области (Rect)
0
|
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,971
|
|
18.03.2013, 18:43 | 4 |
Можно PtInRect использовать с флагом.
0
|
16 / 16 / 3
Регистрация: 01.03.2013
Сообщений: 130
|
|
18.03.2013, 19:11 [ТС] | 5 |
так я его и использую... надо типа при покидании Rect запомнить его и что нибудь с ним сделать (ТЕМНУЮ !
![]() Добавлено через 16 минут сейчас сделал так: создал 2 глобальные переменные для x и y соответственно, и проверяю PtInRect, должно получаться так чтобы при движении мыши тот квадратик где мышь была закрашивался одним цветом, а куда перевелась другим, а вместо этого я получаю змейку какую то... т.е. за мышью остается постепенно исчезающий след - цвет меняется, но почему так долго? да и еще к тому же все что было на канве стирается ![]() Добавлено через 8 минут да также еще есть вариант что я как то не так юзаю GetKeyState, мне нужно чтобы то что я описывал выше происходило только при зажатой левой клавише мыши, поэтому я пишу if GetKeyState(vk_LButton)>0 .... правильно? а то в факах с гугла не понятно что значит старший\младший байт
0
|
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,971
|
||||||
18.03.2013, 19:16 | 6 | |||||
Вот небольшой набросок:
0
|
16 / 16 / 3
Регистрация: 01.03.2013
Сообщений: 130
|
|
18.03.2013, 19:23 [ТС] | 7 |
gorfil, даже если опустить что вы забыли объявить переменную InRect, не понятно что вы хотели сказать этим: "and not InRect" и "and InRect ",
ни я ни компилятор этого не поняли ![]() п.с. могу проект скинуть если надо
0
|
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,971
|
||||||
18.03.2013, 19:27 | 8 | |||||
InRect - глобальная переменная типа boolean
0
|
16 / 16 / 3
Регистрация: 01.03.2013
Сообщений: 130
|
|
18.03.2013, 19:43 [ТС] | 9 |
заработало, прикольно, но пока очень сильно помогло только "if not (ssLeft in Shift) then Exit;", а то GetKeyState какая то багнутая
![]() почитайте, все таки хочется более применимо к моему случаю ![]() Добавлено через 5 минут п.с. чтобы вам долго не мучиться в поисках аналога скажу что делаю сапера ![]() нажать на поле и переводить мышку -> клетка будет выглядеть нажатой пока мышка на нее давит, когда мышка ушла клетка отжалась, этого я и добиваюсь ![]()
0
|
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,971
|
|
18.03.2013, 19:46 | 10 |
Мой код отслеживает вход в заданную область и выход из нее при нажатой левой кнопке мыши. А тебе что надо?
0
|
16 / 16 / 3
Регистрация: 01.03.2013
Сообщений: 130
|
|
18.03.2013, 19:47 [ТС] | 11 |
0
|
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,971
|
||||||
18.03.2013, 21:24 | 12 | |||||
Надо было сразу писАть, что области - это компоненты (кнопки), а не пустая форма с мнимыми квадратами.
У большенства компонентов есть события MouseEnter и MouseLeave. И у кнопко в том числе. Вот набросал пример, который работает с нажатием правой кнопки мыши, т.к. нажатая левая блокирует некоторые события (как с этим бороться - не знаю).
0
|
16 / 16 / 3
Регистрация: 01.03.2013
Сообщений: 130
|
|
18.03.2013, 21:29 [ТС] | 13 |
я говорил что области это кнопки?
![]() ![]()
0
|
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,971
|
|
18.03.2013, 21:35 | 14 |
Змейки какие-то получаются, когда мышкой по полю водишь...
С кнопками-то оно все гораздо проще.
0
|
16 / 16 / 3
Регистрация: 01.03.2013
Сообщений: 130
|
|
18.03.2013, 21:36 [ТС] | 15 |
о змейках речь, как их убрать?
с кнопками не проще... с кнопками хуже смотрится... пробовал вначале...
0
|
Модератор
3488 / 2611 / 741
Регистрация: 19.09.2012
Сообщений: 7,971
|
|
18.03.2013, 21:51 | 16 |
В БитБатоны можно любые картинки грузить, хоть белые квадраты, хоть что угодно.
А в твоем нынешнем варианте мне так просто не разобраться.
0
|
Супер-модератор
![]() ![]() |
||||||
19.03.2013, 00:33 | 17 | |||||
GetMeHelp, берем твой вариант, делаем так:
1
|
16 / 16 / 3
Регистрация: 01.03.2013
Сообщений: 130
|
|
19.03.2013, 21:54 [ТС] | 18 |
UI, спасибо огромное
![]() никто не подскажет как состряпать функцию проверяющую что находится в клетке? для конкретно этого примера, т.е. там могут находится только: закрашенная клетка, пустая клетка, клетка с цифрой (ее надо вернуть), клетка с бомбой или флагом (тут вероятно надо сравнить Rect с BitMap из ресурса, не знаю как) что то вроде Function InCell(Col, Row: integer): string; //стринг потому что через мой тип TDrawMode нельзя вернуть цифры Добавлено через 14 часов 16 минут актуально ! про функцию... не знаю как реализовать хоть убей, задайте хоть куда рыть ![]()
0
|
19.03.2013, 21:54 | |
Помогаю со студенческими работами здесь
18
Альтернатива события OnMouseMove Изменение цвета shape onMouseMove OnMouseMove и OnMouseLeave компонента label onMouseMove событие в заданных координатах формы ONMouseMove не вызывается при зажатой левой кнопке мыши Прекращать работу процедуры OnMouseMove, если мышь неподвижна Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |