Элемент управления представления списка отображается неправильно при наличии групп - PullRequest
2 голосов
/ 17 ноября 2011

Я экспериментировал с группами представления списка, и оказалось, что элемент управления некорректно отображается при запуске приложения.

Original form

Как только я изменяю размер формы, он отображается правильно:

Resized form

Я не понимаю, что происходит.Кто-нибудь может объяснить?

1 Ответ

4 голосов
/ 17 ноября 2011

Это ошибка в элементе управления Delphi, которую я воспроизвел.Я еще не уверен, что вызывает ошибку.Я отправил это в Quality Central как QC # 101104 .

. Я нашел простой обходной путь, добавив следующий код к событию OnShow формы.

ListView1.Align := alNone;
ListView1.Align := alClient;

Для демонстрации проблемы достаточно следующего файла DFM:

object MyForm: TMyForm
  Left = 0
  Top = 0
  ClientHeight = 300
  ClientWidth = 635
  object ListView1: TListView
    Left = 200
    Top = 96
    Width = 250
    Height = 150
    Align = alClient
    Columns = <
      item
        Caption = 'Column'
      end>
    Groups = <
      item
        Header = 'Group header'
        GroupID = 0
      end>
    Items.ItemData = {
      052A0000000100000000000000FFFFFFFFFFFFFFFF0000000000000000000000
      000854006800650020006900740065006D00}
    GroupView = True
    ViewStyle = vsReport
  end
end

Оказывается, что другим способом решения проблемы является перемещение записи ViewStyle в файле DFM, чтобы она появиласьдо записи Items.Так что еще один обходной путь для этой проблемы - добавить элементы во время выполнения.Фактически это, вероятно, объясняет, почему эта ошибка не была обнаружена, так как я уверен, что подавляющее большинство кода представления списка добавляет элементы во время выполнения.

...