![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Пишу простой редактор ER-диаграмм. Столкнулся с проблемой определения графических объектов по клику мышкой. Т.е. при клике на сущность - выделятся сущность и т.п.. Нужна помощь в алгоритме определения места клика мыши.
Рисуется все на canvas. |
|
#2
|
||||
|
||||
|
GetCursorPos (1-ая ссылка множество вариантов) + ScreenToClient определяем куда кликнули, а дальше - в зависимости как организовано рисование - определяем куда попали и что выделить
|
|
#3
|
|||
|
|||
|
Цитата:
|
|
#4
|
||||
|
||||
|
в событии OnMouseDown координаты мыши уже передаются:
Код:
TMouseEvent = procedure(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer) of object;-создать обработчик события OnMouseDown -взять координаты мыши X, Y -все - место клика мыши известно Последний раз редактировалось NumLock, 12.05.2012 в 11:13. Причина: исправил грамматическую ошибку |
|
#5
|
|||
|
|||
|
можно порядковый номер объекта кодировать в цвет при рисовании
brush.color := clGreen + id ... id := Pixels[x,y] - clGreen |
|
#6
|
|||
|
|||
|
Почему нужно именно рисовать на канве? Может воспользоваться набором стандартных компонент типа Shape?
|