Предпочтительный способ сохранить контроль сосредоточенным на изменении размера

StackOverflow https://stackoverflow.com/questions/313754

  •  10-07-2019
  •  | 
  •  

Вопрос

Как вы предпочитаете, чтобы элементы управления центрировались на его родительском элементе, когда родительский объект изменяет ширину или высоту?

Это было полезно?

Решение

Если под "по центру" вы имеете в виду "он был уже посередине и вы хотите сохранить его там, не изменяя его размер", то удалите все якоря. Если его нужно изменить, то решение Габра - это то, с чем:)

Другие советы

Установите для свойства Anchors элемента управления значение [akLeft, akTop, akRight, akBottom].

Если вы имеете в виду своего рода "обновление", подождите ... " введите вещь, я вручную переместить его в событие OnResize формы. Это позволяет мне не мешать панели во время проектирования и обычно скрывать ее, но я могу сделать ее видимой при необходимости.

procedure TMyForm.FormResize(Sender: TObject);
var
  nNewTop : Integer;
begin
  inherited;
  pnlRegenerating.Left := (ClientWidth - pnlRegenerating.Width) div 2;
  nNewTop := (ClientHeight div 5) {* 4};
  if (nNewTop + pnlRegenerating.Height) > ClientHeight then
    nNewTop := ClientHeight - pnlRegenerating.Height - 4;
  pnlRegenerating.Top := nNewTop;
end;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top