valor tamaño pasar otro manipular los llenar habilitar formularios formulario escala desde controles como boton automático ajuste ajustar acceder delphi forms resize flicker smooth

delphi - tamaño - manipular controles desde otro formulario c#



¿Cómo puedo hacer que mi formulario cambie de tamaño más suavemente? (5)

Al cambiar el tamaño de un formulario con muchos controles, el formulario se ve mal debido al parpadeo. ¿Cuáles son algunos consejos para tener un cambio de forma más suave?



Tengo alrededor de esto de la siguiente manera:

  1. En el evento ''OnResize'' del formulario, tenga una rutina para ocultar todos los controles secundarios y luego inicie un temporizador con un tic de unos 500 ms.
  2. Cuando el temporizador se dispara, deshabilítelo y luego configure todos los controles secundarios como visibles.

Al jugar con esta actividad, obtienes un formulario que queda en blanco mientras lo estás dimensionando, pero luego se rellena ordenadamente cuando "dejas ir".

Bri


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


Las formas complejas a menudo se componen de paneles anidados, y el proceso de repintado puede causar parpadeo. Si este es el caso con su proyecto, hay dos soluciones fáciles que pueden ayudar:

  1. Inhabilite la propiedad FullRepaint en sus paneles.
  2. Habilita la propiedad DoubleBuffered en tu formulario. No encontrará esta propiedad en el inspector de objetos, por lo tanto, coloque DoubleBuffered := true; en FormCreate

alClient parpadeo alineando no más de 1 componente no- alClient por padre, siempre emparejado con un alClient (por ejemplo, un TPanel ) para contener todos los demás componentes. Agrúpalos en paneles sin bordes.

Digamos que quiere alinear tres cosas: alLeft , alTop y alClient para la vista principal. No haga esto: Form alTop alLeft alClient // your main view

En su lugar, Form alTop alClient // panel to avoid flicker alLeft alClient // your main view siguiente manera: Form alTop alClient // panel to avoid flicker alLeft alClient // your main view

La misma historia para incrustar varios elementos alTop .