Corrección de errores para BorderWidth> 0 en combinación con una barra de desplazamiento?
Durante la escritura de un control personalizado, al intentar implementar el predeterminadoBorderWidth
propiedad correcta, parece que me he topado con un error en el comportamiento de la pintura cuando se muestran las barras de desplazamiento: los espacios entre las barras de desplazamiento y la extensión del control no están pintados.
Para reproducir el error, implementa lo siguienteOnCreate
Controlador para la forma principal de un nuevo proyecto:
procedure TForm1.FormCreate(Sender: TObject);
begin
AutoScroll := True;
BorderWidth := 20;
SetBounds(10, 10, 200, 200);
with TGroupBox.Create(Self) do
begin
SetBounds(300, 300, 50, 50);
Parent := Self;
end;
end;
Los resultados para D7 y XE2:
Parece que esto está arreglado por fin en Delphi XE2. Probablemente, este error residiría enTWinControl.WMNCPaint
, pero mirando aControls.pas
, No puedo encontrar diferencias significativas en la implementación entre D7 y XE2.
Me gustaría recibir respuestas en:
Cómo escribir una corrección de errores para esta rareza,De qué versión de Delphi parece solucionarse este error.