6

我正在创建一些自定义 FireMonkey GUI 控件。组件需要更新以响应用户交互。VCL 控件可以调用 Invalidate() 将其放入队列中进行重绘。FireMonkey 有等效的方法吗?

FireMonkey 控件具有 Repaint() 方法,但 AFAICT 会强制控件立即重新绘制。在某些情况下,队列类型系统会更合适。

4

2 回答 2

2
Control.InvalidateRect(RectF(0,0,width,height));
于 2011-12-09T10:28:38.297 回答
2

FireMonkey 的 TControl.Repaint 最终调用了 TPlatformWin.ReleaseWindow。如果 Form.Transparency 为 false,则此方法调用 Windows InvalidateRect 函数,就像 VCL 的 TControl.Invalidate 一样。

所以 Repaint 实际上和 VCL 的 Invalidate 做的事情是一样的,除非 Form.Transparency=true。

于 2011-12-10T23:18:01.157 回答