Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > перекрытие TImage


Автор: gonzales 30.8.2011, 17:42
Приветствую уважаемые форумчане!!!
Задача следующая, на форме имеется произвольное кол-во компонентов, наследников TImage. Не исключена ситуация, что компоненты перекрывают друг друга. Каждый компонент имеет "кликабельную область", например ограниченную регионом. Вопрос, как обработать нажатие мыши и если курсор находится не в кликабельной зоне, передать событие нажатия компоненту, который лежит под ним.
По сути нужно сделать аналог 
Код

Region := CreateRoundRectRgn(25, 0, Width, Height, 250,2500);
SetWindowRgn(Handle, Region, True);


но к сожалению у TImage нет хэндла(((

Надеюсь выразился ясно))

пробывал обрабатывать сообщение WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST, но почему то при клике на компоненте сообщение не приходит:(((

Автор: Snowy 30.8.2011, 23:40
Как вариант - положить каждый Image на отдельную панель без рамки с Autosize=true и использовать Handle панели.
Ну и как бы OnClick имеет сендера. Так что проблема не совсем ясна.

Автор: gonzales 31.8.2011, 14:29
Цитата

Как вариант - положить каждый Image на отдельную панель без рамки с Autosize=true и использовать Handle панели


да, вариант. А как сделать прозрачную панель?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)