Проверить, развернут ли или свернут полностью TTreeView



Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

function IsTreeviewFullyExpanded(tv: TTreeview): Boolean;
var
Node: TTreeNode;
begin
Assert(Assigned(tv));
if tv.Items.Count > 0 then
begin
Node   := tv.Items[0];
Result := True;
while Result and Assigned(Node) do
begin
Result := Node.Expanded or not Node.HasChildren;
Node   := Node.GetNext;
end; {While}
end {If}
else
Result := False
end;
function IsTreeviewFullyCollapsed(tv: TTreeview): Boolean;
var
Node: TTreeNode;
begin
Assert(Assigned(tv));
if tv.Items.Count > 0 then
begin
Node   := tv.Items[0];
Result := True;
while Result and Assigned(Node) do
begin
Result := not (Node.Expanded and Node.HasChildren);
Node   := Node.GetNext;
end; {While}
end {If}
else
Result := False
end;

Далее: Прокрутка TreeView, чтобы держать выделение посередине »»