Главная страница
    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.041 c
14-1129839644
vagra
2005-10-21 00:20
2005.11.13
Офигеть!


6-1122709435
Масяня
2005-07-30 11:43
2005.11.13
Скан компьютеров в сети


4-1126241076
Фагот
2005-09-09 08:44
2005.11.13
Перехват клавиш в консольном приложении


2-1129797980
kami
2005-10-20 12:46
2005.11.13
Не переопределяется тип поля в Access


14-1129361812
Anton_Uz
2005-10-15 11:36
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский