Здравствуйте, уважаемые подписчики! Сегодня я покажу пример того, как сделать "объект отрезок", то есть нарисовать на экране отрезок и дать возможность пользователю двигать концы этого отрезка при помощи мыши.
Во-первых, удобнее всего использовать для этого PaintBox. Для того, чтобы пользователь не переместил конец отрезка за границы PaintBox-а, можно использовать ClipCursor. При нажатии на клавишу мыши область ограничения курсора сузится, при отпускании клавиши - вернется к прежнему состоянию. При движении мыши над PaintBox нужно проверять, далеко ли курсор от концов отрезка, и если близко, то курсор мыши должен меняться.
Поскольку в этом примере всего один отрезок, то при его движении можно перерисовывать весь PaintBox - мигания не будет. Если же рядом с отрезком должно быть нарисовано еще что-то, удобно использовать свойство Pen.Mode, установленное в pmNotXor. В этом режиме отрезок нарисованный два раза подряд на одном и том же месте, стирается, а изображение, бывшее под ним, восстанавливается.