Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Вниз

HELP. Алгоритм. 


novomod   (2002-01-31 14:24) [0]

Движется два объекта, один горизонтально, а другой вертикально.
Условие IF (ОБЪЕКТ1)TOP= (ОБЪЕКТ2)TOP THEN
IF (ОБЪЕКТ1)LEFT=(ОБЪЕКТ2)LEFT THEN BEGIN (......)END;
Нужно задать алгоритм для диапазона left для ОБЪЕКТА1.
Т.е. как бы при "попадание" ОБЪЕКТА1 в площадь ОБЪЕКТА2 происходит определенное действие.
Я же не буду писать следующий код:
IF (ОБЪЕКТ1)TOP= (ОБЪЕКТ2)TOP THEN
IF (ОБЪЕКТ1)LEFT=(ОБЪЕКТ2)LEFT THEN BEGIN (......)END;
IF (ОБЪЕКТ1)TOP= (ОБЪЕКТ2)TOP THEN
IF (ОБЪЕКТ1)LEFT=(ОБЪЕКТ2)LEFT+1 THEN BEGIN (......)END;
IF (ОБЪЕКТ1)TOP= (ОБЪЕКТ2)TOP THEN
IF (ОБЪЕКТ1)LEFT=(ОБЪЕКТ2)LEFT+2 THEN BEGIN (......)END;
IF (ОБЪЕКТ1)TOP= (ОБЪЕКТ2)TOP THEN
IF (ОБЪЕКТ1)LEFT=(ОБЪЕКТ2)LEFT+3 THEN BEGIN (......)END;и т.д.
(если мне нужно прописать диапазон от 1до 1000) пару десятков таких строк я бы написал, но......
Кто конечно понял чего я хочу и ответил по теме -!!!!!СПАСИБО!!!!



MBo   (2002-01-31 14:41) [1]

Тяжело понять смысл вопроса...
p:tpoint;
r:trect;

p.x:=Obj1.Left;
p.y:=Obj1.Top;
r:=Obj2.BoundsRect;
if PtInRect(r,p) then ...



novomod   (2002-01-31 15:04) [2]

Благодарю,попробую!



Юрий Зотов   (2002-01-31 15:16) [3]

Возможно, так:

var
R: TRect;

if IntersectRect(R, Obj1.BoundsRect, Obj2.BoundsRect)
and (R = Ob2.BoundsRect) then ...

Посмотрите также UnionRect.



novomod   (2002-02-01 18:06) [4]

Юрий Зотов.
Спасибо. Функциклирует!
Только не
if IntersectRect(R, Obj1.BoundsRect, Obj2.BoundsRect)
and (R = Ob2.BoundsRect) then ...
А if IntersectRect(R, Obj1.BoundsRect, Obj2.BoundsRect)then...
Я разобрался ОК!




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.18;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.011 c
3-56979           Максим С.             2002-01-23 13:32  2002.02.18  
Нужен пример работы с Interbase на Delphi5


3-56984           vopros                2002-01-22 13:23  2002.02.18  
Out of Date


3-56973           Илья Лу.              2002-01-22 13:43  2002.02.18  
trigger в Oracle


1-57095           Ghost.                2002-02-01 10:20  2002.02.18  
Cчетчик времени


7-57237           A lexanderV           2001-11-09 10:22  2002.02.18  
Помогите!!!! Проблемы с мыллером по умолчанию под виндой