Delphi XE4 Update 1和
Windows 8.
当我将组和项添加到列表视图时,它们会正确显示.当我然后清除项目和组,并再次添加它们时,什么都没有出现.当然这不是预期的行为?
来自DFM:
object lv: TListView Left = 24 Top = 20 Width = 250 Height = 225 Columns = < item Caption = 'Model' Width = 180 end> GroupView = True ReadOnly = True RowSelect = True TabOrder = 0 ViewStyle = vsReport end
代码:
procedure TForm1.Button1Click(Sender: TObject); var LListGroup: TListGroup; LListItem: TListItem; begin lv.Items.Clear; lv.Groups.Clear; LListGroup := lv.Groups.Add; LListGroup.Header := 'Ford'; LListItem := lv.Items.Add; LListItem.Caption := 'Escape'; LListItem.GroupID := LListGroup.ID; LListItem := lv.Items.Add; LListItem.Caption := 'F150'; LListItem.GroupID := LListGroup.ID; OutputDebugString(PChar(Format('lv.Groups.Count=%d',[lv.Groups.Count]))); end;
第一次单击按钮时,项目会出现并分组.第二次,列表视图为空白.如果我注释掉清除组的行,那么它可以工作,但是组的数量,所有这些组都是未使用但只有一个,每次增加1.
解决方法
您的代码的问题是您将
TCollectionItem
的ID属性传递给
TListItem
的
GroupID
属性,并且必须使用
TListGroup
的
GroupID
属性.
所以改变这一行
LListItem.GroupID := LListGroup.ID; //here you are passing a wrong id for the group
至
LListItem.GroupID := LListGroup.GroupID; //This is a valid assignment for the GroupID property
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。