在德尔福 2009 中:
当 TListView 的 GroupView 处于活动状态时,向 TListView 添加或插入项目总是将其添加到列表的末尾,无论参数指定的 Index 是什么。当 GroupView 设置为 false 时,它会将其添加到指定的索引处。但当它是真的时,这种行为就不会被看到。
ListView2.Items.Insert(1)
上面应该在指定的索引“1”处插入项目,但始终将其添加到列表的末尾。我在这里做错了什么?
object ListView2: TListView
Left = 32
Top = 40
Width = 161
Height = 233
BorderWidth = 5
Columns = <
item
AutoSize = True
end>
DoubleBuffered = False
FlatScrollBars = True
Groups = <
item
Header = 'test'
Footer = 'aksdlkajsd;flkj'
GroupID = 0
State = [lgsNormal]
HeaderAlign = taLeftJustify
FooterAlign = taLeftJustify
Subtitle = 'adgasdfasdf'
TopDescription = 'test desc'
BottomDescription = 'adsfasdfasdf'
TitleImage = 0
ExtendedImage = 0
end
item
Header = 'test1'
GroupID = 1
State = [lgsNormal]
HeaderAlign = taLeftJustify
FooterAlign = taLeftJustify
TopDescription = 'test1 desc'
TitleImage = 1
ExtendedImage = 1
end>
HideSelection = False
IconOptions.WrapText = False
Items.ItemData = {
03D80000000500000000000000FFFFFFFFFFFFFFFF0000000000000000000000
0003740077006F00FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000
086100730064006600610073006400660000000000FFFFFFFFFFFFFFFF000000
000000000000000000057400680072006500650000000000FFFFFFFFFFFFFFFF
000000000000000000000000036F006E00650000000000FFFFFFFFFFFFFFFF00
00000000000000000000001866006F0075007200320033003300330033003300
33003300330033003300330033003300330033003300330033003300}
MultiSelect = True
GroupView = True
ParentDoubleBuffered = False
ShowColumnHeaders = False
TabOrder = 0
ViewStyle = vsReport
end
和添加项目@索引0的代码
procedure TForm1.Button1Click(Sender: TObject);
var
oListItem: TListItem;
begin
oListItem := ListView2.Items.Insert(0);
oListItem.Caption := 'CCCCCCCC';
oListItem.GroupID := 0;
end;
感谢和问候,
帕万。
它可能取决于您更改的其他属性(例如 SortType)。
我尝试使用一个简单的文本列表(使用 ViewStyle =vsList),无论是否设置了 GroupView,它都会插入指定的索引:
object ListView1: TListView
Left = 24
Top = 16
Width = 250
Height = 150
Columns = <>
Items.ItemData = {
03480000000200000000000000FFFFFFFFFFFFFFFF00000000FFFFFFFF000000
00057400650073007400310000000000FFFFFFFFFFFFFFFF00000000FFFFFFFF
000000000574006500730074003200}
GroupView = True
TabOrder = 0
ViewStyle = vsList
end
procedure TForm1.Button1Click(Sender: TObject);
begin
ListView1.Items.Insert(1).Caption := Edit1.Text;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)