Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.04;
Скачать: CL | DM;

Вниз

прозрачность TGraphicControl а   Найти похожие ветки 

 
race1 ©   (2003-07-22 14:52) [0]

представьте такую картину:
рисуем на сабжевом канвасе баранку, т.е. круг и в сердинке дырка. теперь нарисуем внутри этой баранки (т.е. там где дырка) на другом сабжевом канвасе полностью круг.

теперь попытаемся перехватить нажатие кнопки мышки на круге (не баранке) и у нас ничего не выйдет т.к. первый сабж (баранка) полностью перекрыл второй (круг).

а нельзя как-нибудь нажать на круге мышкой, что бы вызвался его обработчик (круга)? SendToBack\Front нужного эффекта не даёт


 
Spawn ©   (2003-07-22 18:11) [1]

Если я правильно понял, то делай так - введи какую либо переменную, влияющую на то чей обработчик будет вызван, а потом в обработчике клика на "баранке" пиши что то типа:

if <условие> then
<Обработка клика>
else
OnGraphicControl2MouseClick(GraphicControl2){Разумеется OnGraphicControl2MouseClick должен быть описан}


 
Ader_007   (2003-07-22 20:54) [2]

Var Xc, Yc : Integer; {координаты центра круга-не_бублика}
R : Integer; {радиус круга-не_бублика}

procedure TAny_Class.БубликClick(Sender: TObject);
Begin
if ((Mouse.X - Xc)**)+((mouse.y-Yc)**)<r** then
CircleClick(Sender) else
Begin
....//А вот тут мы кликнули на самом бублике
end;

Может с синтаксисом напутал, но идея я думаю ясна.


 
race1 ©   (2003-07-23 05:58) [3]

//Spawn © (22.07.03 18:11)
GraphicControl2 - это круг, да?

впринципе, идея хорошая, но маленько не то. то что было в первом письме я упростил. может быть любое сочетание самых разных примитивов, а не только закомпелированные бублики и кружки :). и мы не можем знать что находится под кликнутой фигурой

планирую примитивы сделать типа TShape; но Шэйп сам прямоугольный, хоть и прозрачный, и перекрывает лежащие под ним другие шэйпы.

мне вот что в голову пришло: если мы кликнули на шэйпе на прозрачном цвете, то отправляем этот шэйп назад (SendToBack) и снова кликаем, но программно

//Ader_007 (22.07.03 20:54)
нет, это уж слишком узконаправленно :)



Страницы: 1 вся ветка

Текущий архив: 2003.08.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
11-10159
Arhangel
2002-12-01 20:36
2003.08.04
перевести свою старую программу на


14-10451
Sugrob
2003-07-18 12:11
2003.08.04
Нужнен TTreeView с CheckBox-ами для отображения из таблиц


14-10409
_____
2003-07-17 12:52
2003.08.04
Популярность форума


6-10324
BoxTer
2003-05-27 13:04
2003.08.04
Перехват сообщений, посланных Net send или WinPopup..


4-10504
Syscom
2003-06-01 21:15
2003.08.04
Блокировка Alt+Ctrl+Del