Bugfix para BorderWidth> 0 em combinação com uma barra de rolagem?

Durante a gravação de um controle personalizado, ao tentar implementar o padrãoBorderWidth propriedade corretamente, parece ter tropeçado em um bug no comportamento da pintura quando as barras de rolagem são mostradas: os espaços entre as barras de rolagem e a extensão do controle não são pintados.

Para reproduzir o erro, implemente o seguinteOnCreate manipulador para a forma principal de um novo projeto:

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;

Os resultados para D7 e XE2:

Parece que isso foi consertado no Delphi XE2. Provavelmente, esse bug residiria emTWinControl.WMNCPaint, mas olhandoControls.pas, Não consigo encontrar diferenças significativas na implementação entre D7 e XE2.

Eu gostaria de obter respostas sobre:

Como escrever um bugfix para essa esquisitice,De qual versão do Delphi este bug parece estar corrigido.

questionAnswers(1)

yourAnswerToTheQuestion