我想对以下情况进行编程:
我在一个表单中有 2 个不同的 ListView。我想将 ListView2 中的特定项目附加到 ListView1 项目中。在“父”项被删除后,它还应该从 ListView2 中删除所有附加的项。到目前为止我试过这个:
type
TITEMS = record
A_Items : array of TListItem;
end;
将项目添加到 ListView1 (ParentItems) 的 Button
var
item : TListItem;
begin
item := ListView1.Items.Add;
item.Caption := 'ParentTestItem';
item.SubItems.Add('TestSubItem');
将项目添加到 ListView2 (ChildItems) 的按钮
var
item : TlistItem;
items : TITEMS;
begin
if ListView1.Selected = NIL then exit; // Make sure an item is selected.
item := ListView2.Items.Add;
item.Caption := 'ChildTestItem';
item.SubItems.Add('TestSubItem');
SetLength (items.item, Length(items.item) + 1); // wrong?
items.item[Length(items.item)-1] := item;
ListView1.Selected.SubItems.Objects[0] := @items;
删除 ParentItem 的按钮(它也应该删除 ChildItems ......)
var
items : TItems;
i : Integer;
item : TlistItem;
begin
if ListView1.Selected = NIL then exit; // Make sure an item is selected.
items := TItems(ListView1.Selected.SubItems.Objects[0]); // Cast
for i := 0 to Length (items.item) - 1 do begin
item := items.item[i];
item.Delete;
end;
ListView1.Selected.Free;
任何想法我怎么能意识到这一点?