为什么 canvas 操作与包含对象无关?
Why are canvas operations not relative to containing object?
在 Windows Firemonkey 应用程序中,当我在表单中间为矩形发出以下命令时:
rect.Canvas.BeginScene;
rect.Canvas.Clear(TAlphaColorRec.White);
rect.Canvas.EndScene
整个表格被涂成白色。
在 XE2 中不是这样。在Delphi10.
中是这样的
我忽略的新范例是什么?
原始(例如TPaintBox
和所有TShape
后代)控件的canvas,是canvas的表格。控件直接在此 canvas 上绘制。因此,调用 Control.Canvas.Clear()
会清除整个表单。你应该使用 TRectangle
的 Fill
属性 而不是调用 Clear
,像这样:
Rectangle1.Fill.Color := TAlphaColorRec.White;
我无法评论它在 Delphi XE2 中的表现,但从那时起 FMX 库发生了很多变化。也许这就是其中之一。
在 Windows Firemonkey 应用程序中,当我在表单中间为矩形发出以下命令时:
rect.Canvas.BeginScene;
rect.Canvas.Clear(TAlphaColorRec.White);
rect.Canvas.EndScene
整个表格被涂成白色。
在 XE2 中不是这样。在Delphi10.
中是这样的我忽略的新范例是什么?
原始(例如TPaintBox
和所有TShape
后代)控件的canvas,是canvas的表格。控件直接在此 canvas 上绘制。因此,调用 Control.Canvas.Clear()
会清除整个表单。你应该使用 TRectangle
的 Fill
属性 而不是调用 Clear
,像这样:
Rectangle1.Fill.Color := TAlphaColorRec.White;
我无法评论它在 Delphi XE2 中的表现,但从那时起 FMX 库发生了很多变化。也许这就是其中之一。