TListView очень медленная прокрутка с большим количеством столбцов, запаздывание - PullRequest
0 голосов
/ 05 августа 2020

Отображение TListView очень запаздывает, когда в нем много столбцов (8..10 +), когда я прокручиваю полосой прокрутки, курсор мыши всегда уходит далеко вперед по полосе, а прокрутка отстает. Это проблема commctrls или это связано с реализацией Delphi?

Изменить: по какой-то причине кажется немного быстрее, если я использую стиль VCL.

procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
begin
  Item.Caption := 'test';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ListView1.Items.Count := 500;
end;

.

object ListView1: TListView
    Left = 0
    Top = 0
    Width = 1059
    Height = 581
    Align = alClient
    BevelEdges = []
    BevelInner = bvNone
    BevelOuter = bvNone
    BorderStyle = bsNone
    Columns = <
      item
        Caption = 'Name'
        Width = 200
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end
      item
      end>
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'Tahoma'
    Font.Style = []
    FlatScrollBars = True
    HideSelection = False
    MultiSelect = True
    OwnerData = True
    ReadOnly = True
    RowSelect = True
    ParentFont = False
    ParentShowHint = False
    ShowHint = False
    TabOrder = 0
    ViewStyle = vsReport
    OnData = ListView1Data
    ExplicitWidth = 986
    ExplicitHeight = 471
  end
...