Pav*_*van 5 delphi delphi-2009
在德尔福 2009 中:
当 TListView 的 GroupView 处于活动状态时,向 TListView 添加或插入项目总是将其添加到列表的末尾,而不管指定为参数的 Index。当 GroupView 设置为 false 时,它会将其添加到指定的索引处。但是当它为真时,这种行为是看不到的。
ListView2.Items.Insert(1)
Run Code Online (Sandbox Code Playgroud)
以上应在指定索引“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
Run Code Online (Sandbox Code Playgroud)
结尾
和代码添加项目@ index 0
procedure TForm1.Button1Click(Sender: TObject);
var
oListItem: TListItem;
begin
oListItem := ListView2.Items.Insert(0);
oListItem.Caption := 'CCCCCCCC';
oListItem.GroupID := 0;
end;
Run Code Online (Sandbox Code Playgroud)
谢谢和问候,帕万。
小智 0
您可能需要将新的 ListItem 分配给 GroupIndex,假设您首先添加了至少 1 个 Group 并为其指定了 ID。
var
item: TListItem;
begin
item:= ListView.Items.Add;
item.GroupID=0;
end;
Run Code Online (Sandbox Code Playgroud)
或者您可以先创建 TListItem 对象,为其指定 GroupID 并使用 ListView.Items.AddItem(item, index) 将其添加到 ListView。