0

嗨 Lazarus/LCL/FPC 专家,

只是为了好玩,我试图让 TListView 图标旋转。在我的测试表单上,我有一个单独的 TListView (ViewStyle := vsReport, RowSelect := true),我在 SmallImages 列表中添加了一堆图像,图像 [0] .. [5] 包含我的旋转符号的图片. 要检查一下,我让符号使用计时器旋转:

procedure TForm1.Timer1Timer(Sender: TObject);
   begin
     if ListView1.Selected<>NIL then
        ListView1.Selected.ImageIndex:=(ListView1.Selected.ImageIndex + 1) mod 5;
   end;

定时器设置为200ms,原理很好,选中行的图标确实旋转。但似乎 LCL Listview 重绘了整行,而不仅仅是图标图像,这让整个选定的行闪烁。

有谁知道减少闪烁的方法吗?如果 ListView 不会重绘整行,而只重绘图像,我已经很高兴了。

谢谢,阿明。

4

1 回答 1

0

自己找到了解决方案。闪烁似乎与显卡驱动问题有关,仅影响我的开发机器。从那以后,该程序已经看到了许多其他机器,没有闪烁,并且由于它现在已经在野外......没有任何测试人员或用户报告过闪烁效果。

所以我想这是我特定的编程环境的问题。

阿明。

于 2018-01-10T09:34:21.510 回答