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

Вниз

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

 
DelphiLexx ©   (2005-10-21 14:44) [0]

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


 
clickmaker ©   (2005-10-21 14:46) [1]

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


 
DelphiLexx ©   (2005-10-21 14:59) [2]


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

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


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


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

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


 
clickmaker ©   (2005-10-21 15:05) [4]


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

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


 
DelphiLexx ©   (2005-10-21 15:08) [5]


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

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


 
clickmaker ©   (2005-10-21 15:10) [6]


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

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


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


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

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


 
clickmaker ©   (2005-10-21 15:12) [8]


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

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


 
DelphiLexx ©   (2005-10-21 15:21) [9]


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

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

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


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


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

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


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


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

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


 
Leonid Troyanovsky ©   (2005-10-21 15:31) [12]


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

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


IntersectRect ?

--
Regards, LVT.


 
DelphiLexx ©   (2005-10-21 15:34) [13]


> IntersectRect

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


 
Leonid Troyanovsky ©   (2005-10-21 15:57) [14]


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

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


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

--
Regards, LVT


 
DelphiLexx ©   (2005-10-21 16:54) [15]


> IntersectRect

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


 
Leonid Troyanovsky ©   (2005-10-21 17:13) [16]


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

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



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

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

--
Regards, LVT.



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

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

Наверх




Память: 0.5 MB
Время: 0.046 c
2-1129795481
koks
2005-10-20 12:04
2005.11.13
Форматирование вычисляемого поля


2-1129181282
Norsk
2005-10-13 09:28
2005.11.13
Как работать с Wav файлами


11-1109240693
Kirill
2005-02-24 13:24
2005.11.13
Событие после запуска Applet


14-1129786565
Иксик
2005-10-20 09:36
2005.11.13
Как называеться мультфильм?


5-1109873176
MadLesS
2005-03-03 21:06
2005.11.13
Как создать свой конструктор с другими параметрами?