![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Веб-дизайнер
Форумчанин
Регистрация: 11.08.2011
Сообщений: 305
|
![]()
Доброго времени суток.
Вы не могли бы посоветовать документацию связанную с рисованием элементов (Canvas). Вот, к примеру, мне нужно нарисовать некий объект и описать ему событие onClick (onMouseDown с проверкой находятся ли координаты мыши в области нарисованного объекта). Как правильно сверить координаты, отобразить ховер эффект и прочее. Очень хотелось бы об этом прочесть. Спасибо. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 19.08.2010
Сообщений: 54
|
![]()
А за что Вас в Гугле забанили?
![]() Читайте, например: http://www.helloworld.ru/texts/comp/...phi1/les14.htm
Ваша благодарность может быть материальной:
WM R103871054215, WM Z710411027344, ЯндД: 410011167596676 |
![]() |
![]() |
![]() |
#3 |
Веб-дизайнер
Форумчанин
Регистрация: 11.08.2011
Сообщений: 305
|
![]()
Увы не нашел то, что меня интересует. Лучше спрошу по моментам:
Чтобы создать событие клика по отрисованому объекту Canvas я создаю обычный TNotifyEvent, верно? Описываю в нем, что должно случиться при клике. Но как поступить далее? Как-то напрямую связать это событие с графикой или обработать событие клика материнского элемента, но с учетом, что позиция курсора будет в области графики? Я пытаюсь отрисовать на каждом узле TreeView, скажем, какой-то граф. элемент. Далее при клике на этом граф элементе вызвать событие. Но как можно отловить и сравнить позицию курсора по сравнению с позицией графики? Ведь графику я рисую относительно CellRect каждого узла, где значение 0 это верх узла, а не верх всей формы приложения. Как их тогда сравнивать? |
![]() |
![]() |
![]() |
#4 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
По идее родитель для итема должен иметь свою функцию перевода из "координат в итем" - т.е. вычислять какой итем находится в этой области , где его кликнули, а его область определяется тоже от 0 для самого себя, но не относительно формы, и понадобится перевод из координат формы в координаты родителя.
А вот как Вы будете реализовывать функцию перевода координат в итем зависит от постановки. Если все итемы имеют одну ширину и высоту и между итемами всегда четкий интервал - то математика тривиальна. Если разные все эти вещи, и ещё надо учитывать скроллируемость итемов внутри родителя, то надо иметь свойство текущий верхний итем, запрашивать у всех итемов в цикле (начиная от текущего верхнего) их ширины и высоты и при получении в результирующих переменных на конкретной итерации цикла нужных чисел(соответствующих курсору) - вызывать нотифай текущего итерируемого итема. Можно как-то исхитриться и сделать ход конем, например, "разлиновать" родителя на куски и каждый кусок будет отвечать за конкретный итем, куски будут равны а итемы разные, но итем с гарантией вписан в свой кусок, тогда надо всего лишь вычислять в координаты какого куска щелкнули. Есть ещё один хитрый способ - чтобы не изобретать велосипед, можно воспользоваться функциями типа ControlAtPos и иными подобными. Но тут тогда понадобится наследовать итемы от контролов, подводить реализацию под стандартные механизмы, но тогда за Вас будет работать винда - определять всякие клики. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ищу документацию по "мамке" | vasek123 | Свободное общение | 4 | 19.07.2010 18:54 |
Посоветуйте литературу для начинающего. И вообще что-нибудь толковое посоветуйте ))) | Гаур-Мяур | SQL, базы данных | 5 | 24.12.2009 00:37 |
Скачать документацию на русском по php | iukash | PHP | 4 | 12.11.2009 11:56 |