Delphi TListView刷新闪烁问题

时间:2022-09-26 15:00:22

应用场景

TListView可以动态选择列并显示而且列宽度也要保存,加载数据ListView会出现N次闪烁

步骤一:

选择要显示列:

Delphi TListView刷新闪烁问题

点击“确定”按钮,显示下图

步骤二:

Delphi TListView刷新闪烁问题

界面会出现数据加载闪烁情况。

代码分析

原有代码:

Delphi TListView刷新闪烁问题

ListView也启用了BeginUpdate与EndUpdate,使用这个两个方法还是会出现刷新问题。

查找相关资料,限制ListView刷新,使用LockWindowUpdate函数,如下图红线框的部分。

Delphi TListView刷新闪烁问题

LockWindowUpdate函数

函数详细可以查看微软官方网站:https://msdn.microsoft.com/en-us/library/dd145034%28VS.85%29.aspx

Delphi TListView刷新闪烁问题

还可以参考一下博客:With what operations is LockWindowUpdate meant to be used?

Delphi TListView刷新闪烁问题