【发布时间】:2013-01-25 17:37:12
【问题描述】:
在编写自定义控件期间,在尝试正确实现默认 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 中终于得到了修复。很可能,这个 bug 存在于 TWinControl.WMNCPaint,但是查看 Controls.pas,我找不到 D7 和 XE2 之间的实现有任何显着差异。
我想得到答案:
- 如何为这个奇怪的东西写一个错误修复,
- 似乎从哪个 Delphi 版本修复了此错误。
【问题讨论】: