Site icon Обучение программированию с нуля

Delphi. Панель Win32. Компонент TreeView. Часть 5

Размещение двух изображений около узлов дерева.

Компонент «TreeView» позволяет около каждого узла размещать второе, дополнительное изображение. Для его размещения необходимо задать второй компонент «ImageList2». Например:

Его необходимо привязать к свойству «StateImages»:

В редакторе узлов выставляем значение поля «State Index».

Замечание. В этой ситуации имеется особенность. Если выставить значение «State Index» в «0», то иконка отображаться не будет. Поэтому выбираем значение «2».

Главные изображения разместим в «ImageList1»:

procedure TForm1.TreeView1Change(Sender: TObject; Node: TtreeNode);
var n,i:integer; b:boolean;
begin

n:=TreeView1.Items.Count;
for i:=0 to n-1 do
begin//1

b:=TreeView1.Items[i].HasChildren;
if b then
begin
TreeView1.Items[i].ImageIndex:=0;//стрелка влево
TreeView1.Items[i].SelectedIndex:=0;
if TreeView1.Items[0].Expanded then
begin
TreeView1.Items[0].ImageIndex:=1;//стрелка вниз
TreeView1.Items[0].SelectedIndex:=1;
end;

end
else
begin
TreeView1.Items[i].ImageIndex:=4;
TreeView1.Items[i].SelectedIndex:=4;
end;
end;//1

end;

procedure TForm1.TreeView1Expanded(Sender: TObject; Node: TtreeNode);
begin
Node.ImageIndex:=1;
Node.SelectedIndex:=1;
end;

procedure TForm1.TreeView1Collapsed(Sender: TObject; Node: TtreeNode);
var b:boolean;
begin

Node.ImageIndex:=0;
Node.SelectedIndex:=0;

end;

В результате будем иметь:

На этом пока завершим рассмотрение основных свойств и методов компонента «TTreeView».

Предыдущая часть «Delphi. Панель Win32. Компонент TreeView. Часть 4«

* * *