![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Image и регионы
Se1lor © (2007-10-16 15:29:00)Есть Image(кнопка), на которой расположен рисунок не прямоугольной формы(прозрачная часть розовая). Я сделал у Image transparent:=true;
И вроде бы все хорошо, но, когда я щелкаю по прозрачной части рисунка, у меня срабатывает OnClick Имэйджа.
Как мне этого избежать???
Надо сделать регион??
Смотрел в интернете, инфа о регионах в основном связана с формой, скачал модуль bmp2reg(автор Jean-Edouard Lachand-Robert), попробовал для начала с формой:
rgn := BitmapToRegion( hBmp,w, h, $FF00FF, 0);
//Устанавливаем размер окна таким же, как и у битмапа
SetWindowPos(Window, 0, 0, 0, w, h, SWP_NOZORDER or SWP_NOMOVE );
//Присваиваем регион окну
SetWindowRgn(Window, Rgn, TRUE );
все получилось, а вот с Image нет :(
Window это хэндл окна, но ведь у Image нет хэндла?!
А если вместо Window пишу Image.Picture.Bitmap.Handle то ничего не получается :(
Объясните, пожалуйста, как правильно сделать, то что я задумал??
Se1lor (2007-10-16 15:37:00) [21]
> Сергей М. © (16.10.07 15:35) [1]
Просто рядом у меня еще одна кнопка, и получается, что они как бы перекрывают друг друга(прозрачная часть одного находится поверх прозрачной части другого)
homm (2007-10-16 15:36:00) [22]> [0] Se1lor (16.10.07 15:29)
> Надо сделать регион??
TImage — не оконный элемент. Его обработкой сообщений занимается его родитель. И когда родитель получает клик, он способен опрелеить что в этой области имейдж только по координатам, он (родительский компонент) знать не знает, нировал чт-то имейдж в месте клика, или нет.
Сергей М. (2007-10-16 15:35:00) [23]
> когда я щелкаю по прозрачной части рисунка, у меня срабатывает
> OnClick Имэйджа
А что в этом плохого ?