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

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

有帮助吗?

解决方案

Control.InvalidateRect(RectF(0,0,width,height));
.

其他提示

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

因此Repaint实际上会执行VCL的Invalidate相同的操作,除非Form.Transparency= true。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top