Тема: 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>
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.