• 0
denprox

Запретить выходить за пределы родителя

Вопрос

Доброго времени суток! Наткнулся на тему Как определить пересекаются ли два контрола или нет? и возник вопрос, как сделать обратное ? Т.е. к примеру есть два объекта, Родительский и потомок, как узнать, вышел потомок за пределы родителя или нет ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

5 ответов на этот вопрос

  • 0

Можно просто проверить у потомка координаты, если есть отрицательная - значит вышел.
Position.X

Position.Y

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Это если влево или вверх пытаться вывести потомок, если вправо или вниз, то X Y остаются положительными 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Вы же знаете длину и ширину своего "потомка", учитывайте её при проверке и всё.

Изменено пользователем Maximus
Winexcel понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Есть еще такое решение: Если поместить объект в TSelection, который в свою очередь потомок необходимого родителя, то автоматически будут созданы границы, за которые объект(потомок) нельзя вывести. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
EqualRect(Control1.BoundsRect.Intersect(Control2.BoundsRect), Control2.BoundsRect)

Если True, то Control2 не вышел за пределы Control1, иначе - вышел

Winexcel понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу