Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2011, 20:08   #1
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию Посоветуйте документацию

Доброго времени суток.
Вы не могли бы посоветовать документацию связанную с рисованием элементов (Canvas). Вот, к примеру, мне нужно нарисовать некий объект и описать ему событие onClick (onMouseDown с проверкой находятся ли координаты мыши в области нарисованного объекта). Как правильно сверить координаты, отобразить ховер эффект и прочее. Очень хотелось бы об этом прочесть.

Спасибо.
kettanaito вне форума Ответить с цитированием
Старый 10.12.2011, 22:38   #2
alexiz
Пользователь
 
Регистрация: 19.08.2010
Сообщений: 54
По умолчанию

А за что Вас в Гугле забанили?

Читайте, например: http://www.helloworld.ru/texts/comp/...phi1/les14.htm
Ваша благодарность может быть материальной:
WM R103871054215, WM Z710411027344, ЯндД: 410011167596676
alexiz вне форума Ответить с цитированием
Старый 16.12.2011, 00:43   #3
kettanaito
Веб-дизайнер
Форумчанин
 
Аватар для kettanaito
 
Регистрация: 11.08.2011
Сообщений: 305
По умолчанию

Увы не нашел то, что меня интересует. Лучше спрошу по моментам:
Чтобы создать событие клика по отрисованому объекту Canvas я создаю обычный TNotifyEvent, верно? Описываю в нем, что должно случиться при клике. Но как поступить далее? Как-то напрямую связать это событие с графикой или обработать событие клика материнского элемента, но с учетом, что позиция курсора будет в области графики?

Я пытаюсь отрисовать на каждом узле TreeView, скажем, какой-то граф. элемент. Далее при клике на этом граф элементе вызвать событие. Но как можно отловить и сравнить позицию курсора по сравнению с позицией графики? Ведь графику я рисую относительно CellRect каждого узла, где значение 0 это верх узла, а не верх всей формы приложения. Как их тогда сравнивать?
kettanaito вне форума Ответить с цитированием
Старый 16.12.2011, 09:23   #4
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

По идее родитель для итема должен иметь свою функцию перевода из "координат в итем" - т.е. вычислять какой итем находится в этой области , где его кликнули, а его область определяется тоже от 0 для самого себя, но не относительно формы, и понадобится перевод из координат формы в координаты родителя.

А вот как Вы будете реализовывать функцию перевода координат в итем зависит от постановки. Если все итемы имеют одну ширину и высоту и между итемами всегда четкий интервал - то математика тривиальна. Если разные все эти вещи, и ещё надо учитывать скроллируемость итемов внутри родителя, то надо иметь свойство текущий верхний итем, запрашивать у всех итемов в цикле (начиная от текущего верхнего) их ширины и высоты и при получении в результирующих переменных на конкретной итерации цикла нужных чисел(соответствующих курсору) - вызывать нотифай текущего итерируемого итема.

Можно как-то исхитриться и сделать ход конем, например, "разлиновать" родителя на куски и каждый кусок будет отвечать за конкретный итем, куски будут равны а итемы разные, но итем с гарантией вписан в свой кусок, тогда надо всего лишь вычислять в координаты какого куска щелкнули.
Есть ещё один хитрый способ - чтобы не изобретать велосипед, можно воспользоваться функциями типа ControlAtPos и иными подобными. Но тут тогда понадобится наследовать итемы от контролов, подводить реализацию под стандартные механизмы, но тогда за Вас будет работать винда - определять всякие клики.
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу документацию по "мамке" vasek123 Свободное общение 4 19.07.2010 18:54
Посоветуйте литературу для начинающего. И вообще что-нибудь толковое посоветуйте ))) Гаур-Мяур SQL, базы данных 5 24.12.2009 00:37
Скачать документацию на русском по php iukash PHP 4 12.11.2009 11:56