lazarus / FPC:如果只有图标改变,TListView会重新绘制行

时间:2017-11-24 21:32:38

标签: animation icons flicker tlistview

Hi Lazarus / LCL / FPC专家,

只是为了好玩,我试图让TListView Icon旋转。在我的测试表单上,我有一个单独的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不会重绘整行,而只重绘图像,我已经很高兴了。

Thx,Armin。

1 个答案:

答案 0 :(得分:0)

自己找到解决方案。闪烁似乎与显卡驱动程序问题有关,并且仅影响我的开发机器。该程序已经有很多其他机器,因为它没有闪烁,现在它已经在野外......任何测试人员或用户都没有报告任何闪烁效应。

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

阿明。