Как заставить одно изображение исчезнуть, когда его прямоугольник пересекает другое изображение? - PullRequest
0 голосов
/ 04 марта 2012

У меня есть картинка, которая может двигаться с клавиатуры. Что я хочу, так это когда я перемещаю его поверх другого изображения, другое изображение исчезает. Как я могу это сделать? Это пока код, но он не работает. Заранее спасибо.

Image3 - движущийся, а Image6 - тот, который я хочу исчезнуть.

procedure TArmcutting.FormCreate(Sender: TObject);
begin
    DoubleBuffered := true;
    if Intersectrect (overlay, Image3.BoundsRect, Image6.BoundsRect) then
    begin
        Image6.Visible := False;
    end;
end;

РЕДАКТИРОВАТЬ: Спасибо всем за ваши ответы!

Ответы [ 3 ]

5 голосов
/ 04 марта 2012

Сейчас он проверяет только пересечение при запуске приложения: TForm.OnCreate происходит только один раз. Поместите этот код в обработчик события ключа.

Также убедитесь, что оба изображения имеют одного и того же родителя, в противном случае вы должны сместить одно из ребер, чтобы оно было сопоставимо с другим.

5 голосов
/ 04 марта 2012

Вам необходимо проверять пересечение каждый раз, когда изображение перемещается, а не при создании формы.

1 голос
/ 04 марта 2012

В событии KeyUP / Down / Press (которое вы используете для обработки клавиш) или в процедуре, в которой вы перемещаете прямоугольник, вам нужно проверять пересечение не только при создании.

...