Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-1126187893
ANB
2005-09-08 17:58
2005.11.13
При каких условиях отрабатывает WaitFoInputIdle ?


5-1108464410
sau
2005-02-15 13:46
2005.11.13
TreeView и ActiveX


1-1129891440
DelphiLexx
2005-10-21 14:44
2005.11.13
Движение компонента


1-1129728524
saNat
2005-10-19 17:28
2005.11.13
"Прокрутка" TScrollBox


1-1130150894
Nait
2005-10-24 14:48
2005.11.13
Как клонировать кнопку?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский