1

Тема: HTA: использование элемента управления TreeView

Тестовый пример. Автор примера - Recover.
Программное заполнение и очистка содержимого дерева достаточно тривиальна. Пример работы - функция "filltreeview", а вот с реакцией на событие выбора node в дереве пришлось повозиться. Реакцию удалось описать только в теге <SCRIPT for = ExampleTreeView event = NodeClick>.

<HTML>
<HEAD>
<META content = "TEXT/HTML; charset=Windows-1251">
<TITLE>Пример TreeView в HTA</TITLE>
<HTA:APPLICATION ID="exTreeView"
     ApplicationName = "TreeView_HTA"
     BORDER = "thin"
     INNERBORDER = "no"
     CONTEXTMENU = "no"
     MAXIMIZEBUTTON = "no"
     MinimizeButton = "no"
     SysMenu = "yes"
     SELECTION = "no"
     SHOWINTASKBAR = "yes"
     SCROLL = "no"
     SINGLEINSTANCE="yes"
     WindowState = "Normal"
     />

</HEAD>
<BODY bgcolor = "#EEEEEE" ONLOAD = "LoadForm()">
<FORM ID = mForm>
<TABLE style = width:100%>
<TR><TD style = width:30%>
<OBJECT ID = ExampleTreeView WIDTH = 250 HEIGHT = 550 PROGID = "MSComctlLib.TreeCtrl.2" CLASSID="clsid:C74190B6-8589-11D1-B16A-00C0F0283628">
    <param name = "LineStyle" value = "1" />
    <param name = "Style" value = "7" />
    <param name = "Appearance" value = "0"/>
    <param name = "BorderStyle" value = "1"/>
</OBJECT>
</TD>
<TD>
<INPUT type = "button" name = "fill" value = "Заполнить ...">
</TD></TR>
</TABLE>
</FORM>
<SCRIPT for = ExampleTreeView event = NodeClick>
    WSH.Popup(mForm.all("ExampleTreeView").SelectedItem,0,"Пример");
</SCRIPT>
<SCRIPT language = "JScript">

var WSH = new ActiveXObject("WScript.Shell");

// Обработка события открытия формы
function LoadForm()
{
    window.resizeTo(800,600);
};

// Заполнить дерево
function filltreeview()
{

    var TreeView = mForm.all("ExampleTreeView");
    TreeView.Nodes.Clear();
    var Root = TreeView.Nodes.Add();
    Root.Text = "Корень дерева";
    Root.key = "root";
    
    var Node = TreeView.Nodes.Add();
    Node.Text = "Первая веточка";
    Node.key = "branch1";
    Node.Parent = Root;

    var Leaf = TreeView.Nodes.Add();
    Leaf.Text = "Первый листочек";
    Leaf.key = "leaf1";
    Leaf.Parent = Node;

    var Leaf = TreeView.Nodes.Add();
    Leaf.Text = "Второй листочек";
    Leaf.key = "leaf2";
    Leaf.Parent = Node;


    var Node = TreeView.Nodes.Add();
    Node.Text = "Вторая веточка";
    Node.key = "branch2";
    Node.Parent = Root;

    var Leaf = TreeView.Nodes.Add();
    Leaf.Text = "Первый листочек";
    Leaf.key = "leaf3";
    Leaf.Parent = Node;

    var Leaf = TreeView.Nodes.Add();
    Leaf.Text = "Второй листочек";
    Leaf.key = "leaf4";
    Leaf.Parent = Node;

};

//Реакция на события
mForm.all("fill").onclick = filltreeview

</SCRIPT>
</BODY>
</HTML>
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.