¿Cómo detener temporalmente un control de ser pintura?

Tenemos un objeto de control de ganancia que mueve a sus clientes a otros coordinadores. El problema es que cuando hay demasiados niños, por ejemplo 500 controles, el código es realmente lento. Debe ser debido a que cada control se repintó cada vez que configuré la propiedad Izquierda y Superior. Entonces, quiero decirle al objeto WinControl que deje de pintarse, y después de mover todos los objetos a sus nuevas posiciones, se puede pintar de nuevo (algo comoBeginUpdate para memo y lista de objetos). ¿Cómo puedo hacer esto? Aquí está el código de mover los objetos; es bastante simple

for I := 0 to Length(Objects) - 1 do begin
  with Objects[I].Client do begin
    Left := Left + DX;
    Top := Top + DY;
  end;
end;

Respuestas a la pregunta(4)

Su respuesta a la pregunta