在Windows Firemonkey应用程序中,当我在窗体的中间为矩形发出以下命令时:
rect.Canvas.BeginScene;
rect.Canvas.Clear(TAlphaColorRec.White);
rect.Canvas.EndScene
整个表格被涂成白色。
在XE2中不是这种情况。 Delphi 10中就是这种情况。
我忽略了什么新范式?
答案 0 :(得分:3)
原始的画布(例如TPaintBox
和所有TShape
后代)控件是表单的画布。控件直接在此画布上绘制。因此,调用Control.Canvas.Clear()
将清除整个表单。不用调用Clear
,而应使用Fill
的{{1}}属性,如下所示:
TRectangle
我无法评论Delphi XE2中的情况,但是从那以后,FMX库有了很多更改。也许这是其中之一。