Fla*_*vio 1 delphi listview vcl repaint
我有一个 Delphi GUI 应用程序,它运行得很好,直到显示分辨率更改自动导致程序的 GUI 窗口被重新绘制。我们可以通过消息捕获这个显示事件WM_DISPLAYCHANGE。
在重绘事件中,似乎某些TListView在那一刻隐藏的组件不会被重绘,直到它们再次可见。
似乎仅在表单的可见组件上调用重绘,并且操作系统在不可见的项目再次变得可见时重新绘制它们。
但是,当代码引用消息TListView后WM_DISPLAYCHANGE尚未显示的 a 中的项目时,这会导致问题。内部应该TListView有项目,但TListView.Items.Count返回 0,就好像TListView是空的一样。
在屏幕上显示可见后TListView,一切都会恢复正常,并且我可以再次引用TListView.
我尝试显式调用TListView.Repaint()更新它而不必显示它,但它不起作用。
这是有记录的行为吗?
有没有办法立即重新绘制不可见的表单组件,而不让它在屏幕上可见?
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |