Подтвердить что ты не робот

Анкеры: = [akCenter]?

Как я могу центрировать элемент управления внутри своего родителя? И как сохранить его в центре, когда родительский размер изменяется?

Я знаю, что я мог бы написать обработчик событий Parent.OnResize для перемещения элемента управления вручную, но не все компоненты контейнера имеют событие OnResize, и я хотел бы сделать это автоматически.

Есть ли привязка akCenter?

4b9b3361

Ответ 1

Якорь akCenter не существует. Но вы можете имитировать akRelative, установив свойство anchors empty, что приводит к относительному перемещению элемента управления при изменении размера родителя. Сочетание этого с центрированным размещением приведет к центрированию "якоря".

Центрировать по горизонтали во время разработки:

  • В среде IDE выберите контекстное меню элемента управления (щелкните правой кнопкой мыши),
  • Позиция > Выровнять по горизонтали > Центр в окне,
  • Задайте Anchors.akLeft := False, Anchors.akRight := False в инспекторе объектов,
  • Et voilà: akHorzCenter.

То же самое относится к вертикали, и в этом случае вы устанавливаете akTop и akBottom false. Центрировать в обоих направлениях: Anchors := [].

Animation of akRelative in action

Отказ от ответственности: я не нашел документацию об использовании этого якоря, и я не знаю, является ли это предполагаемым функционированием, но он отлично работает в D7, а также в XE2.