Add(MainForm,2953706,21,105)
{
Point(Handle)
}
Add(PaintBox,12465343,154,105)
{
Width=735
Height=781
Align=5
Color=16777215
WinStyle=1
ColorSp=0
ClearBeforeDraw=0
Point(onMouseDown)
Point(onMouseUp)
link(onMouseDown,945688:doMove,[(233,118)(233,195)])
link(onMouseUp,16593087:doMessage,[])
}
Add(Message,16593087,273,119)
{
}
Add(MoveWindow,945688,280,189)
{
link(Handle,2953706:Handle,[(286,163)(27,163)])
}
Этот топик читают: Гость
Ответов: 1291
Рейтинг: 47
|
|||
При применении компонента MoveWindow нарушается работа события onMouseUp, как я понял он перехватывает оконные сообщения. Нет ли способа вернуть эти события при его применении?
|
|||
карма: 3 |
|
Ответов: 2236
Рейтинг: 676
|
|||
Чем такой вариант плох:
|
|||
карма: 11 |
|
Ответов: 1291
Рейтинг: 47
|
|||
sla8a, спасибо за ответ. Тем что мне нужно при нажатии и удерживании мыши отключать таймер, а при отпускании запускать его. И чтобы перетаскивание окна тоже работало.
|
|||
карма: 3 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Aziz, добавь событие в конце процедуры procedure THIMoveWindow._work_doMove; и не парься.
--- Добавлено в 2023-03-26 00:57:18 можешь просто пока через Debug проверить_debug('stop'); Редактировалось 3 раз(а), последний 2023-03-26 00:58:10 |
|||
карма: 4 |
|
Ответов: 1291
Рейтинг: 47
|
|||
andrestudio, точно, так и сделаю, спасибо за костыль)
Редактировалось 1 раз(а), последний 2023-03-26 01:54:30 |
|||
карма: 3 |
|
Ответов: 783
Рейтинг: 168
|
|||
Aziz писал(а): мне нужно при нажатии и удерживании мыши отключать таймер, а при отпускании запускать его. И чтобы перетаскивание окна тоже работало.
|
|||
карма: 15 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Aziz писал(а): спасибо за костыль)Какой же это костыль? Это скорей всего недоработка элемента. По идее событий должно быть 2. (со скрытыми точками) onStartMove и onStopMove соответственно вызываемые в начале процедуры и в конце процедуры. И тогда всякие велосипеды не понадобились бы |
|||
карма: 4 |
|
Ответов: 306
Рейтинг: 26
|
|||
andrestudio писал(а): Какой же это костыль? Это скорей всего недоработка элемента.Согласен с вами. |
|||
карма: 2 |
|
Ответов: 1291
Рейтинг: 47
|
|||
andrestudio, ну так то да, согласен. Просто я имел в виду это если делать из стандартного компонента нестандартный. И вообще все подобные "заплатки" кода не включенные в репозиторий по каким-то, возможно весомым причинам..
А у вас не недоработка, а доработка ) --- Добавлено в 2023-03-26 14:56:58 Все заработало как надо. Вот поправленный компоент: Ini:
Pas:
Редактировалось 3 раз(а), последний 2023-03-26 14:56:58 |
|||
карма: 3 |
|
Ответов: 2236
Рейтинг: 676
|
|||
Aziz, и чем отличается от этого:
Редактировалось 1 раз(а), последний 2023-03-26 16:51:58 |
|||
карма: 11 |
|
Ответов: 1291
Рейтинг: 47
|
|||
sla8a, уже ответил же:
Aziz писал(а): Тем что мне нужно при нажатии и удерживании мыши отключать таймер, а при отпускании запускать его. И чтобы перетаскивание окна тоже работало.Или в твоей схеме это возможно? Покажи плиз, а то в упор не вижу или не врубаюсь.. Редактировалось 1 раз(а), последний 2023-03-27 01:21:18 |
|||
карма: 3 |
|
Ответов: 783
Рейтинг: 168
|
|||
Aziz писал(а): Покажи плиз, а то в упор не вижу или не врубаюсь..Я уже приводил схему выше. если непонятно, тогда такой вариант. Пока перемещаешь форму счётчик остановлен.
|
|||
карма: 15 |
|
Ответов: 494
Рейтинг: 163
|
|||
Gunta,
Gunta писал(а): Пока перемещаешь форму счётчик остановлен |
|||
карма: 4 |
|
Ответов: 1291
Рейтинг: 47
|
|||
Gunta, sla8a, упс) Теперь дошло) Спасибо! Туплю однако(.. Яркий пример ИНЕРЦИОННОСТИ мышления.. Это не я, это все ковид виноват)) В общем, программист из меня уже никакой.. Я все искал у вас раздельные события после отпускания мыши. А вы применили разделение по времени одного события после нажатия.
Да, так тоже наверное получится. Счас проверю... Но нет, чето в моей схеме нужно именно отдельное событие. Через просто хаб не работает. Видимо, временная задержка нужна. Там вращаю калейдоскоп мышью за круглую его форму. При начале вращения останавливается таймер, затем по дельте направления вращения определяется его направление и скорость, из этого извлекается инфа о направлении счета счетчика и его шаге. Затем после отпускания мыши, таймер вновь запускается через триггер. В итоге калейдоскоп меняет направление вращения и его скорость в зависимости от силы с которой его крутнули. В общем пока меняет направление только через модификацию компонента.. --- Добавлено в 2023-03-27 13:04:35 Еще раз проверил - через хаб работает, но не так хорошо. Просто при вращении формы мышью если таймер автовращения формы не остановить то он начинает драться с мышью. И вращается всегда в одну сторону. Редактировалось 2 раз(а), последний 2023-03-27 13:04:35 |
|||
карма: 3 |
|
Ответов: 783
Рейтинг: 168
|
|||
Aziz писал(а): Просто при вращении формы мышью если таймер автовращения формы не остановить то он начинает драться с мышью. И вращается всегда в одну сторону.А такой вариант. Просто медленно двигать мышью вправо-лево для изменеия врашения. https://forum.hiasm.com/getfile/39586 Так даже веселей
Редактировалось 2 раз(а), последний 2023-03-27 13:28:47 |
|||
карма: 15 |
| ||
файлы: 1 | form_rotations 4.zip [30.9KB] [223] |