Я хотел бы запрограммировать следующую ситуацию:TListItem Объекты
У меня есть 2 разных ListViews в форме. Я хотел бы добавить определенные элементы из ListView2 в элемент ListView1. После того, как элемент «Родительский» будет удален, он также должен удалить все прикрепленные элементы из списка ListView2. Я попытался это до сих пор:
type
TITEMS = record
A_Items : array of TListItem;
end;
кнопка, которая добавляет элемент ListView1 (ParentItems)
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 (и он должен также удалить дочерние элементы ...)
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;
Любая идея, как я мог это осознать?
Стек, выделенный 'TITEMS', не может работать. Как только функция вернется, poof, эта переменная исчезла. Поэтому вам нужно будет положить их в кучу. Но получить представление списка, чтобы иметь это, кажется плохой идеей. Вам нужен вид виртуального списка. –
любая идея, как я мог это сделать без виртуального списка? –
Ну, я бы использовал TListItem.Data в качестве своего хранилища. И вам нужна куча выделенной вещи. Вероятно, экземпляр класса. Но это так тяжело. Почему бы вам не сделать это правильно с помощью виртуальной парадигмы. Ты никогда не оглянешься. Является ли представление списка действительно вашей основной структурой данных? –