Показать сообщение отдельно
  #2  
Старый 01.08.2010, 03:36
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Держи, функция для определения коллизии двум картинок (TImage).
Код:
function IsCrossImages(const aImage1, aImage2:TImage):boolean;
begin
  with aImage1 do
    Result:=((aImage2.Left >= Left) and (aImage2.Top >= Top) and
             (aImage2.Left <= Left+Width) and (aImage2.Top <= Top+Height))
            or ((aImage2.Left+aImage2.Width >= Left) and (aImage2.Top+aImage2.Height >= Top) and
                (aImage2.Left+aImage2.Width <= Left+Width) and (aImage2.Top+aImage2.Height <= Top+Height))
            or ((aImage2.Left >= Left) and (aImage2.Top+aImage2.Height >= Top) and
                (aImage2.Left <= Left+Width) and (aImage2.Top+aImage2.Height <= Top+Height))
            or ((aImage2.Left+aImage2.Width >= Left) and (aImage2.Top >= Top) and
                (aImage2.Left+aImage2.Width <= Left+Width) and (aImage2.Top <= Top+Height));
end;
Пример использования (в твоем случае):
Код:
   Image4.Visible:=IsCrossImages(Image3,Image4);
Ответить с цитированием