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

Как я могу изменить размер формы более плавно?

При изменении размера формы со многими элементами управления форма выглядит плохо из-за мерцания. Каковы некоторые советы по изменению размера сглаживания?

4b9b3361

Ответ 1

procedure TForm1.WMEnterSizeMove(var Message:TWMMove);
begin
  Self.DisableAlign;
end;

procedure TForm1.WMExitSizeMove(var Message:TWMMove);
begin
  Self.EnableAlign;
end;

Ответ 3

Сложные формы часто состоят из вложенных панелей, и процесс перекраски может вызвать мерцание. Если это имеет место в вашем проекте, есть два простых решения, которые могут помочь:

  • Отключите свойство FullRepaint на ваших панелях.
  • Включить свойство DoubleBuffered в вашей форме. Вы не найдете это свойство в инспекторе объектов, поэтому поставьте DoubleBuffered := true; в FormCreate.

Ответ 4

У меня есть это:

  • В событии 'OnResize' формы, есть подпрограмма, чтобы скрыть все дочерние элементы управления, а затем запустить таймер с тиком около 500 мс.
  • Когда таймер срабатывает, отключите его, а затем установите все дочерние элементы управления на видимые.

Играя с этой деятельностью, вы получаете форму, которая пуста, пока вы ее определяете, но затем аккуратно заполняется, когда вы отпускаете.

Бри

Ответ 5

Я избегаю мерцания, выравнивая не более 1 не alClient компонент на родителя, всегда в паре с alClient (например, a TPanel), чтобы содержать все остальные компоненты. Группируйте их в панели без границ.

Предположим, вы хотите выделить три вещи: alLeft, alTop и alClient для основного вида. Не делайте этого: Form alTop alLeft alClient // your main view

Вместо этого вставьте их следующим образом: Form alTop alClient // panel to avoid flicker alLeft alClient // your main view

Такая же история для вложения нескольких элементов alTop.