Дополнительная информация в нодах TreeView

Как прикрепить дополнительную информацию к нодам TreeView с возможностью её последующего изменения?

Может быть через Tag.

Вообще я когда-то использовал этот контрол, он удобнее и там больше возможностей.
ObjectListView — ObjectListView 2.9.1 documentation

Примеры ObjectListView (WinForms): список сотрудников, дерево файловой системы

F1 =>

Data property (TTreeNode)

Points to application-defined data associated with the tree node.

Delphi syntax:

property Data: Pointer;

Description

Use the Data property to associate data with a tree node. Data allows applications to quickly access information about the entity represented by the node.

Так это Дельфи, а не винформс )

В винформс в Tag можно объекты класть.

Пардон :grinning::grinning::grinning:
Не заметил :open_mouth:

и в делфине можно pointer засунуть в integer. как появится 64-битный делфи (если уже не появился) и если tag сделают nativeint то и там можно будет )

Tag он же int, а не object :thinking:

В делфе уже давно можно компилить 64-битные EXE’шники

procedure TForm1.Button2Click(Sender: TObject);
var k: Integer;
    l: TLabel;
begin
  k:=Integer(Label1);  //Label1 тип TLabel на форме
  l:=Tlabel(k);
  l.Caption:='надо же';
end;

Значит я с чем-то перепутал

Кстати, мне не ListView нужен, а TreeView :grinning:

Там оба есть. :arrow_down:

но у меня в компонентах появились только FastObjectListView, ObjectListView, VirtualObjectListView. A TreeView где?

Должно быть.

почему в названии нету object, если он object?

хз :man_shrugging:
Видимо как-то так исторически сложилось у автора )

нифига не понял

The final step is to give both trees a list of root objects:
treeListView1.Roots = ModelWithChildren.CreateModels(null, new ArrayList { 0, 1, 2, 3, 4, 5 });
treeListView2.Roots = ModelWithChildren.CreateModels(null, new ArrayList { “A”, "B ", “C”, “D”, “E” });
ModelWithChildren.CreateModels is a silly method that simply generates a list of ModelWithChildren objects that we can use in our trees.

где брать этот CreateModels? И вообще не понял, как там устроено дерево нодов. Вместо нодов там коллекции, чтоли? :open_mouth:

Это наверно просто для примера.

В моем примере я просто положил в Roots список объектов и в ChildrenGetter возвращал потомков.

ObjectListViewSample/Form1.cs at af296532e6f016c24930b0e4b65f05b73bf57f55 · AlexP11223/ObjectListViewSample · GitHub

ObjectListViewSample/Form1.cs at af296532e6f016c24930b0e4b65f05b73bf57f55 · AlexP11223/ObjectListViewSample · GitHub

ваш исходник я тоже листал

            // drive letters (C:\, D:\, etc.) in roots
            tvFilesystem.Roots = DriveInfo.GetDrives()
                .Where(d => d.IsReady)
                .Select(d => new FileSystemItem(d.Name));

напомните, что возвращает where. Коллекцию какого типа?
всмысле, я не пойму, какого типа коллекцию надо класть в roots

Тут в итоге IEnumerable<FleSystemItem>. Можно просто List и т.п. вместо него.
Where тут чтобы убрать недоступные диски, Select создает FleSystemItem из путей.