• 0
denprox

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

Вопросы

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

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


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

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

  • 0

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

Position.Y

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


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

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

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


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

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

Изменено пользователем Maximus

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


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

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

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


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

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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу