Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.082 c
2-1197356647
dumka
2007-12-11 10:04
2008.01.06
Строки


2-1197264514
Александр Семак
2007-12-10 08:28
2008.01.06
Создание объекта с динамическим классом


15-1196426548
Автор
2007-11-30 15:42
2008.01.06
О разделе "Статьи"


15-1196611902
Kostafey
2007-12-02 19:11
2008.01.06
С днем рождения ! 2 декабря


2-1197020595
Slym
2007-12-07 12:43
2008.01.06
Best practice в создании свойств-списков объектов в COM в многопо





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский