delphi – 清除和重新加载组和项目后,TListView组和项目不会出现
发布时间:2020-12-15 09:26:11 所属栏目:大数据 来源:网络整理
导读:Delphi XE4 Update 1和 Windows 8. 当我将组和项添加到列表视图时,它们会正确显示.当我然后清除项目和组,并再次添加它们时,什么都没有出现.当然这不是预期的行为? 来自DFM: object lv: TListView Left = 24 Top = 20 Width = 250 Height = 225 Columns = i
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |