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?
Intenta usar WM_SETREDRAW ( no LockWindowUpdate ).
También puede echar un vistazo a DeferWindowPos .
Tengo alrededor de esto de la siguiente manera:
- 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.
- 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:
- Inhabilite la propiedad
FullRepaint
en sus paneles. - Habilita la propiedad
DoubleBuffered
en tu formulario. No encontrará esta propiedad en el inspector de objetos, por lo tanto, coloqueDoubleBuffered := 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
.