![]() |
|
|
Регистрация | << Правила форума >> | 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?
|
#7
|
|||
|
|||
![]() Цитата:
|