Форум: "Основная";
Поиск по всему сайту: 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.033 c
7-57231           Русский               2001-11-12 14:26  2002.02.18  
Ошибка (но в чём ???)


4-57245           KLM                   2001-12-18 06:59  2002.02.18  
Доступ к файлу


1-57066           derr                  2002-01-26 19:58  2002.02.18  
Как вытащить сообщение из outlook express и раскурочить его


3-56983           cahek2000             2002-01-23 14:28  2002.02.18  
RxDBGrid


7-57229           Александр А.          2001-11-09 15:56  2002.02.18  
О связке SSE/MMX - Delphi