Ahora que mencionas eso. Hace un tiempo manejé algo parecido. En mi caso, era cambiando el ActivePage de un PageControl. Y al igual que a ti se veía cuando dibujaba cada control y era lento.
Buscando acá y allá. En StackOverflow (creo que aquí
TLabel and TGroupbox Captions Flicker on Resize) mencionaban algo de eso y encontré el siguiente procedimiento.
Código Delphi
[-]
procedure EnableComposited(WinControl: TWinControl);
var
i: Integer;
NewExStyle: DWORD;
begin
NewExStyle := GetWindowLong(WinControl.Handle, GWL_EXSTYLE) or WS_EX_COMPOSITED;
SetWindowLong(WinControl.Handle, GWL_EXSTYLE, NewExStyle);
for i := 0 to WinControl.ControlCount-1 do
if WinControl.Controls[i] is TWinControl then
EnableComposited(TWinControl(WinControl.Controls[i]));
end;
Le hago el llamado correspondiente previo a cambiar el ActivePage del pagecontrol y ya no muestra los controles
Código Delphi
[-]
EnableComposited(PageControl1);
PageControl1.ActivePageIndex := 0;