Форум: "Начинающим";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];
ВнизНаследники TGraphicControl Найти похожие ветки
← →
ZLinX (2007-12-11 11:49) [0]Создается экземпляр класса TGraphicControl
которий помещается на форму.
на канве экземпляра класса рисуется некоторое изображение, которое не закрашивает содерживое канвы
каким образом реализовать так, чтовы при при клике мышью на незакрашеной области канвы вызывался обработчик OnClick не данног обьекра а обьетов лежащих под ним
← →
Сергей М. © (2007-12-11 12:03) [1]Что мешает в обработчике клика для TGraphicControl проанализировать, был ли клик на прозрачной области, и если был, то руками вызвать обработчик клика контрола, лежащего "под ним" ?
← →
ZLinX (2007-12-11 12:09) [2]
> Что мешает в обработчике клика для TGraphicControl проанализировать,
> был ли клик на прозрачной области, и если был, то руками
> вызвать обработчик клика контрола, лежащего "под ним" ?
проблема в том что неизвестно какие компоненты лежат под ним
← →
Сергей М. © (2007-12-11 12:17) [3]
> неизвестно какие компоненты лежат под ним
Как это неизвестно ?!
Под ним лежит компонент, на который ссылается св-во TControl.Parent
← →
ZLinX (2007-12-11 12:23) [4]
> Что мешает в обработчике клика для TGraphicControl проанализировать,
> был ли клик на прозрачной области, и если был, то руками
> вызвать обработчик клика контрола, лежащего "под ним" ?
проблема в том что неизвестно какие компоненты лежат под ним
← →
ZLinX (2007-12-11 12:24) [5]
> > неизвестно какие компоненты лежат под нимКак это неизвестно
> ?!Под ним лежит компонент, на который ссылается св-во TControl.
> Parent
Под ним находятся компоненты не являющиеся родительскими
← →
homm © (2007-12-11 12:29) [6]> [1] Сергей М. © (11.12.07 12:03)
> Что мешает в обработчике клика для TGraphicControl проанализировать,
> был ли клик на прозрачной области
Архитектурная несостоятельность данного решения мешает.
2 ZLinX:
Если память мне не изменяте, нужное тебе сообщение CM_NCHITTEST
← →
homm © (2007-12-11 12:29) [7]Удалено модератором
← →
Сергей М. © (2007-12-11 12:33) [8]
> Под ним находятся компоненты не являющиеся родительскими
А какими же они, по-твоему, являются ?
← →
homm © (2007-12-11 12:35) [9]> [8] Сергей М. © (11.12.07 12:33)
> А какими же они, по-твоему, являются ?
Прояви смекалку.
← →
ZLinX (2007-12-11 12:37) [10]
> > Под ним находятся компоненты не являющиеся родительскимиА
> какими же они, по-твоему, являются ?
На форме нахотится несколько компонент, Parent которых ссылается на форму, но данные компоненты перекрываятся и под одним из них может находится другой и необходимо получить к нему доступ
← →
Palladin © (2007-12-11 12:42) [11]ControlAtPos
← →
homm © (2007-12-11 12:56) [12]Все же верно CM_HITTEST.
Нужно обрабатывать его, и если
нужно отвечать на сообщение CM_HITTEST, и если цвет под курсором не прозрачный, возвращать не ноль, если прозрачный, то ноль.
← →
Сергей М. © (2007-12-11 12:58) [13]
> ZLinX (11.12.07 12:37) [10]
Без родителя все равно не обойтись.
Получаешь индекс своего GraphicControl"а в списке контролов родителя, бежишь по этому списку от себя к началу, проверяешь каждый контрол на предмет вхождения в область его отрисовки точки клика, первый же найденный (если будет найден, т.е. если есть перекрытие) и будет тем контролом, который "под".
← →
homm © (2007-12-11 13:07) [14]Удалено модератором
Примечание: Не пора-ли отдохнуть от форума?
← →
homm © (2007-12-11 13:19) [15]> [13] Сергей М. © (11.12.07 12:58)
Посмотрите на CM_HITTEST, и поймете что предложенный Вами вариант велосипед с квадратными колесами.
← →
ZLinX (2007-12-11 14:02) [16]каким образом изменить регион контрола
← →
homm © (2007-12-11 14:04) [17]> [16] ZLinX (11.12.07 14:02)
Зачем тебе менять регион контрола? У тебя картинка, или все-же контрол?
← →
ZLinX (2007-12-11 14:09) [18]
> Зачем тебе менять регион контрола? У тебя картинка, или
> все-же контрол?
у меня контрол, толькот графический (унаследован от TGraphicControl) и мне надо изменит его регион, что би он рисовался не в прямоугольной области, а ов оласти заданой регионом
← →
homm © (2007-12-11 14:12) [19]> [18] ZLinX (11.12.07 14:09)
> у меня контрол, толькот графический (унаследован от TGraphicControl)
> и мне надо изменит его регион, что би он рисовался не в
> прямоугольной области, а ов оласти заданой регионом
SelectClipRgn
← →
DiamondShark © (2007-12-11 14:19) [20]
> унаследован от TGraphicControl
У контролов, унаследованных от TGraphicControl нет регионов.
Регионы могут быть только у контролов, унаследованных от TWinControl.
А почему ты упорно не хочешь попробовать рекомендацию с CM_HITTEST?
← →
ZLinX (2007-12-11 14:20) [21]
> SelectClipRgn
Компонент унаследован от TGraphicControl и унего отсунствует дескринтор
← →
homm © (2007-12-11 14:23) [22]> [21] ZLinX (11.12.07 14:20)
> Компонент унаследован от TGraphicControl и унего отсунствует
> дескринтор
Все верно сказал. И что?
← →
ZLinX (2007-12-11 14:35) [23]
> > [21] ZLinX (11.12.07 14:20)> Компонент унаследован от
> TGraphicControl и унего отсунствует > дескринторВсе верно
> сказал. И что?
Как создать регион
← →
homm © (2007-12-11 14:38) [24]> [23] ZLinX (11.12.07 14:35)
> Как создать регион
CreateEllipticRgn
CreateEllipticRgnIndirect
CreatePolygonRgn
CreatePolyPolygonRgn
CreateRectRgn
CreateRectRgnIndirect
CreateRoundRectRgn
← →
ZLinX (2007-12-11 14:42) [25]
> homm © (11.12.07 14:38) [24]
> > [23] ZLinX (11.12.07 14:35)> Как создать регионCreateEllipticRgnCreateEllipticRgnIndirectCreatePolygonRgnCreatePolyPolygo nRgnCreateRectRgnCreateRectRgnIndirectCreateRoundRectRgn
мне знакомы ети ети функции, а как для неоконного(графического) контрола
← →
homm © (2007-12-11 14:49) [26]> [25] ZLinX (11.12.07 14:42)
Что в твоем понимании «регион для контрола»?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.005 c