Pregunta

En Delphi 2009 me encontré con que el parpadeo de un PageControl - que se produce durante el cambio de tamaño de la forma -. Puede reducirse estableciendo su propiedad DoubleBuffered true

Sin embargo, si añado a los controles tabsheets PageControl, que oscilará independientemente de su valor de la propiedad DoubleBuffered. También he probado con y sin temas de ejecución habilitados.

¿Fue útil?

Solución

Configuración ParentBackground a False para los componentes de la PageControl ayudó mucho. Sin embargo esto resulta en un color diferente de estos componentes del panel, todos ellos tienen un fondo más oscuro ahora. Tal vez esto se puede solucionar fácilmente (sin perder Tema de apoyo).

También instalado VCL Fixpack que tiene una solución para QC 56252 (TPageControl parpadea mucho con theming activo).

Otros consejos

Esto está lejos de ser perfecto, pero es posible que desee utilizar esta:

  protected
    procedure WMExitSize(var Message: TMessage); message WM_EXITSIZEMOVE;
    procedure WMEnterSize(var Message: TMessage); message WM_ENTERSIZEMOVE;

procedure TFormMain.WMEnterSize(var Message: TMessage);
begin
  if Assigned(PageControlView.ActivePage) then
    PageControlView.Align := alNone;
end;

procedure TFormMain.WMExitSize(var Message: TMessage);
begin
  if Assigned(PageControlView.ActivePage) then
    PageControlView.Align := alClient;
end;

Es el mejor que he encontrado hasta aquí, y reducirá la actualización de las ventanas de su control de la página. Puede ser que sea menos bonita, sin embargo, pero eso es una cuestión de opiniones ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top