FireMonkey 控件是否具有与 VCL Invalidate() 等效的方法?

发布于 2024-12-20 01:35:39 字数 186 浏览 2 评论 0原文

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

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

I'm creating some custom FireMonkey GUI controls. The components need to update in response to user interactions. VCL controls can call Invalidate() to be placed into a queue for repainting. Does FireMonkey have an equivalent method?

FireMonkey controls have a Repaint() method, but AFAICT that forces the control to be repainted immediately. A queue type system would be more appropriate in some circumstances.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人间☆小暴躁 2024-12-27 01:35:39
Control.InvalidateRect(RectF(0,0,width,height));
Control.InvalidateRect(RectF(0,0,width,height));
春花秋月 2024-12-27 01:35:39

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

所以Repaint实际上做了与VCL的Invalidate相同的事情,除非Form.Transparency=true。

FireMonkey's TControl.Repaint ends up calling TPlatformWin.ReleaseWindow. If Form.Transparency is false then this method calls the Windows InvalidateRect function, just like VCL's TControl.Invalidate does.

So Repaint actually does the same thing VCL's Invalidate does, unless Form.Transparency=true.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文