Главная страница
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.026 c
2-1130168799
Profi
2005-10-24 19:46
2005.11.13
Зависание функции из модуля.


2-1129571918
Pasha L
2005-10-17 21:58
2005.11.13
_filetime в searchrec


1-1129877013
Шурик Ш
2005-10-21 10:43
2005.11.13
Хранение доп. строки для объекта TreeView


2-1129442715
serg128
2005-10-16 10:05
2005.11.13
Как заменить первую маленькую букву на большую?


1-1129686152
DDDeN
2005-10-19 05:42
2005.11.13
Определение обекта на TImage