Форум: "Основная";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];
ВнизДвижение компонента Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c