カスタム コントロールの作成中に、既定のBorderWidth
プロパティを正しく実装しようとしているときに、スクロール バーが表示されているときの描画動作のバグに遭遇したようです: スクロール バーとコントロールの範囲の間のスペースが描画されません。
バグを再現するOnCreate
には、新しいプロジェクトのメイン フォームに次のハンドラーを実装します。
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;
D7 と XE2 の結果:
これは、Delphi XE2 でようやく修正されたようです。おそらく、このバグは にあると思われますがTWinControl.WMNCPaint
、 を見てみるとControls.pas
、D7 と XE2 の間の実装に大きな違いは見当たりません。
私は答えを得たいです:
- この奇妙さに対するバグ修正の書き方、
- このバグはどの Delphi バージョンから修正されたようです。