![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
MrDmitry |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 556 Регистрация: 10.11.2006 Репутация: нет Всего: нет |
Рисую на TImage эллипс, нужно при помощи мыши, перемещать его по Timage. У меня эллипс перемещается но оставляет за собой "След". Как от этого следа избавиться? Вот пример кода.
PS Перерисовка всего image не подойдет т.к эллипсов будет несколько.
Это сообщение отредактировал(а) MrDmitry - 20.9.2015, 12:46 |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
MrDmitry, у тебя не верно определяются координаты X1 и Y1 (левый верхний угол элипса) в Image1MouseMove (там они у тебя обозначены как X0 и Y0). Т.е. получается, что пользователь жмет в ценр элипса что бы его перетянуть, а процедура определяет координаты мыши в этот момент как левый верхний угол элипса. Получается что "стирающий" элипс в DrawImage получает координаты мыши как левый верхний угол, а на самом деле это может быть центром элипса. Таким образом "стирающий" элипс смещен вправо и вниз по отношению к стираемому, соответственно стирается не все, вот и след.
Тебе надо в процедуре Image1MouseMove передавать в X0 и Y0 не координаты мыши, а высчитывать левый верхний угол элипса, над которым находится мышь. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Агрох |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: 1 Всего: 6 |
Используй не тип линии, а цвет. Т.е. вместо
пиши
--------------------
Putin here, Putin there, Putin almost everywhere! |
||||
|
|||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
Агрох, это не поможет.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: 1 Всего: 6 |
Поможет. Скопировал его код, заменил только начальное значение MLeft на false, сделал изменение цвета пера вместо его типа и всё работает. Из того, о чём ты говорил, остаётся только одна чёрточка из за неправильного определения координат в начале движения после захвата. Но шлейф от движения пропадает. --------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |