Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Движение компонента


DelphiLexx ©   (2005-10-21 14:44:00) 

У меня есть собственный компонент TConEquipment наследник от TGraphicControl, который может свободно перемещаться на форме. Проблема в следующем:
  На форме есть два TConEquipment: ConEquipment1 и   ConEquipment2. ConEquipment1 находится в состоянии покоя, а ConEquipment2 мы перемещаем по форме. Когда ConEquipment2 находит на ConEquipment1, то он должен прицепить ConEquipment1 и уже двигаться как единое целое.
Как это сделать?


Leonid Troyanovsky   (2005-10-21 17:13:00) [1]


> DelphiLexx ©   (21.10.05 16:54) [15]

> Существует ли функция которая проверяла бы пересечение не
> со всем прямоугольником, а с конретной внутренней его областью.



Если "большую" фигуру можно задать регионом, то пересечение с
(маленьким) прямоугольником можно определить RectInRegion.

Возможно, что где-нибудь в DirectX или GDI+ есть и более того.

--
Regards, LVT.


DelphiLexx   (2005-10-21 16:54:00) [2]


> IntersectRect

Существует ли функция которая проверяла бы пересечение не со всем прямоугольником, а с конретной внутренней его областью.


Leonid Troyanovsky   (2005-10-21 15:57:00) [3]


> DelphiLexx ©   (21.10.05 15:34) [13]

> Для чего и как пользоваться IntersectRect.


msdn.microsoft.com
Search MSDN for: IntersectRect
Go.

--
Regards, LVT


DelphiLexx   (2005-10-21 15:34:00) [4]


> IntersectRect

Для чего и как пользоваться IntersectRect.


Leonid Troyanovsky   (2005-10-21 15:31:00) [5]


> DelphiLexx ©   (21.10.05 15:29) [11]

> А как правильно применить BoundsRect для того, чтобы проверить
> вошел ли в наш TConEquipment какой-либо контрол.


IntersectRect ?

--
Regards, LVT.


DelphiLexx   (2005-10-21 15:29:00) [6]


> сначала мы применяем BoundsRect

А как правильно применить BoundsRect для того, чтобы проверить вошел ли в наш TConEquipment какой-либо контрол.


clickmaker   (2005-10-21 15:25:00) [7]


> DelphiLexx ©   (21.10.05 15:21) [9]

нет, сначала мы применяем BoundsRect, а потом смотрим, не ли среди пересекшихся с нашим TConEquipment. Т.е. if (Control[i] is TConEquipment)


DelphiLexx   (2005-10-21 15:21:00) [8]


> А ф1 жать пробовал?

Теперь попробовал вообщем с BoundsRect разобрались. И все же я не до конца понимаю.

Вот смотри:
ConEquipment1 стоит на месте ConEquipment2 двигается на его пути встречаются много других конролов, и как же мне узнать что вот именно этот контрол и есть TConEquipment. Вот когда я узнаю что ConEquipment2  находится на нужном мне контроле, тогда уж и будем применять BoundsRect.


clickmaker   (2005-10-21 15:12:00) [9]


> DelphiLexx ©   (21.10.05 15:11) [7]
>
> >  пересечение BoundsRect
>
> Вообще что такое BoundsRect?

А ф1 жать пробовал?


DelphiLexx   (2005-10-21 15:11:00) [10]


>  пересечение BoundsRect

Вообще что такое BoundsRect?


clickmaker   (2005-10-21 15:10:00) [11]


> DelphiLexx ©   (21.10.05 15:08) [5]

это ты меня неправильно понял. Я тебе предлагаю проверять пересечение BoundsRect именно твоих ConEquipment, а не баттонов и мемо


DelphiLexx   (2005-10-21 15:08:00) [12]


> пересечение прямоугольников. Математика
> У тебя есть BoundsRect обоих контролов. Вот и проверяй

Нет. Ты не совсем меня правильно понял. Я имел ввиду как узнать, что ConEquipment2 находится именно над ConEquipment1, а не над ТButton'ом или
TMemo


clickmaker   (2005-10-21 15:05:00) [13]


> А как мне проверить что я зашел на область именно компонента
> TConEquipment

пересечение прямоугольников. Математика
У тебя есть BoundsRect обоих контролов. Вот и проверяй


DelphiLexx   (2005-10-21 15:00:00) [14]


> сравнить координаты, если пересеклись, значит запустить
> 1

А как мне проверить что я зашел на область именно компонента TConEquipment.


DelphiLexx   (2005-10-21 14:59:00) [15]


> У меня есть собственный компонент TConEquipment

Исходники можно взять здесь:
http://www.rsdn.ru:80/File/26841/FromLineTo.rar


clickmaker   (2005-10-21 14:46:00) [16]

сравнить координаты, если пересеклись, значит запустить 1


Наверх

Титульная страница Поиск, карта сайта Написать письмо