56
ImageSize property on 32 (specifies the size of the control' icons)

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Nodes,com_Nodes1;
	anytype var_Node,var_Node1,var_Node2,var_Nodes,var_Nodes1;
	str var_s;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.ImageSize(32);
	exmlgrid1.Font().Size(16);
	exmlgrid1.NodeHeight(32);
	exmlgrid1.LevelWidth(-1,exmlgrid1.ImageSize());
	var_s = "gBJJgBAIDAAEg4AEEKAD/hz/EMNh8TIRNGwAjEZAEXjAojKAjMLjABhkaABAk0plUrlktl0vmExmUzmk1m03nE5nU7nk9miAoE+oVDolFo1HpFJpU5h8Sf9OqFNqUOqN";
	var_s = var_s + "UqdPq9VrFWrlbr1QpdhAFAkFis1ntFptVrtkrpszrNvmVxqk3uVtm1kmF3sdBvF/wGBmV+j9BYGHwWJulfxdax2NyFdx2JlV6l9Nw7AAGZymdz2Cy2GxErvWcz9ivlwy";
	var_s = var_s + "V21cuxugwktzGIzmvwtl0+53U5y0a0Wazmmyu/3dCyOMyXHx/J5nIr9q3uyqnBxFN3G46ma4vb7mD2Ng4nZze00fDkHC7t7us2rOX5tguetpHRlmz4HVqnXk1PjHO+CM";
	var_s = var_s + "Po9MBMC+j2vC8j7wS8cFNI4kBo05UIvfCT/NsnsApU+0Fqg/T+oy/kPxC0sEQfErKQK96+w28UWRI8UGvO8sTLS9r2PWmsMJTDTask3CsIbIEQRA3shOXEEAO/GclJ9F";
	var_s = var_s + "EKrrA8FRbKMXRIlb0JxCkjS1LMswhCcvuel0cv26cSMa8Ufx+2sQwhEUoSXOCjSbLcnxjKc7sdKUVyq28NtVI71P9P7JxtQEapjQ6fzfM8zPfNE2PhIsLL63E40slk5y";
	var_s = var_s + "7N89LcyU9SvMb3SdUc6VJLj5VLVLfO/PS9KzNFHUa/0XyBD0dxlS9cxhMlTRSoNXypPErWDPyfNS+MwprRNO0FD8wVVZ1AI08URwVRjtJ1WCn21QkkUrXVLVPQS/XIkF";
	var_s = var_s + "gTxT9iONZ9xVTdq+L1eKg3kkF6Upe68XtfV51/MtrVjBlwYFL1ev8y1/P6/lyzzYl02wntj0RVFmS1Qa+M5as93QxEUW9e993rfmQ2+vy65M/mL1lhl/2bj2ByVduMtN";
	var_s = var_s + "hCJT9hdz41nN14Ld12Z9UjfI/oUAaGseiw6+uFLLhcVabJOS5RqOE0BHlZ5VnEr5fOMs3st+aa/bbRzrJGV51Y0b0DbqaWXZD90hIsPbjWu52+6Wyadpe66hhO+P/Xio";
	var_s = var_s + "W5rD8ZbrUZuVg6n1dsE/cXmewu1m9PVwnd35/nueXho/NaJzmjc61W76esuT77eG8pTquy9TwWH8LEzG8RDfFalx3Gcfvna9rvG/cptGLd9tuI6TZOP5Fiqi99vea+X4";
	var_s = var_s + "VRcBq/JZZtVQ9cwSs5lsXE372+a9z7PbfB3VVqHyvMctLto8uob6eV0m/cD6MN2v+T33t6sBut42vdv2bJ8a997x2maFJfK+qArbGJPEKE+1qTflMsIdW/GCJX17KcT6";
	var_s = var_s + "/czr/X+u1g29B7j/4BQfWkkx4zIHisjhPCmE0K4SwtXM+d4BvHRwNZOoBph9IJvPek9d40FoMJxf691jj2ywQQcHEWET4XJwkTszlVqm2GokewxtBT1DpQjRxDN0rUVD";
	var_s = var_s + "NKdC3lb6tzNOwh6upMSSYfv4YBCl/bsn9PxiFCEo7SI6Obc9HeOrnY8x4jtHtdpN4GRbaorhsbu18Pph5CiHymI0RpSXGJ/z2oUOxYxG858AyiI+bfJtuTcG5yelBJyT";
	var_s = var_s + "8okhqFd4a5yxL0rvulYtKCsZiWxWkc1s1cRoxxwhA31DLE0mR9l9HqX8fJgTDmFMVH0MIsRzVYnwnMi1dyzmhLt2kS2pxIiU62Wj5ptQGlSYFakLonTUJNLKaM5Wzlff";
	var_s = var_s + "EkuFkk5wTrhVO2eE7G6lJhxFFYUZ55zmn0WuBCD4pzhirFCKkbomsOoIYmZx5p90LoYWGPdD5g0QmJRKYxbZ6zYoVQ2jVGylSak7KSkFH6RSjpHKFuU+YMyNo5SulkC6";
	var_s = var_s + "I0vonTCitMXPoEpVS2H5FQfEqp2R1opIgAEkJISYARTCukOhmPNI5Ex/wzGHUsicMwA1LHgQ90Y/KpoQHAD+pB/R4NzIaMAB9Xaw1gqaAOsh/A/ptIkWUfhGK1kZH8Rg";
	var_s = var_s + "H5GqvgArqRmt4AAPrTroRofBGADkqr6Rmu4D7CEaHARiwpJrEEZsXXwlVjyMWRsaRqwdkLGNBABZmytmyMnaINZqyVpLR2ftKAAAdd6h2osbaskdiq4EZtgSmyNcbVWR";
	var_s = var_s + "JNXe3AA7REar3b0stlAAXBtoRmvJGLjEYAHUWsFcwCD/rnaop9aEICMAPdK5hT6xpeuzdOtAgKuJeGfdq6ggEbkTvAP+p9UCHXrvKkcgIA==";
	exmlgrid1.Images(COMVariant::createFromStr(var_s));
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>1"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = com_Nodes.Add("Child 1"); com_Node1 = var_Node1;
				com_Node1.Value("<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1");
				com_Node1.Selected(true);
			com_Nodes.Add("Child 2");
		com_Node.ExpandAll();
	var_Node2 = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>2"); com_Node2 = var_Node2;
		var_Nodes1 = com_Node2.Nodes(); com_Nodes1 = var_Nodes1;
			com_Nodes1.Add("Child 1");
			com_Nodes1.Add("Child 2");
	exmlgrid1.ExpandBarVisible(true);
	exmlgrid1.ExpandButtons(3/*exCustom*/);
	exmlgrid1.ExpandButtonsCustom(false,1);
	exmlgrid1.ExpandButtonsCustom(true,2);
	exmlgrid1.EndUpdate();
}
55
ImageSize property on 16 (specifies the size of the control' icons)

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Nodes,com_Nodes1;
	anytype var_Node,var_Node1,var_Node2,var_Nodes,var_Nodes1;
	str var_s;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.ImageSize(16);
	var_s = "gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqd";
	var_s = var_s + "SqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVtt";
	var_s = var_s + "mp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8ac";
	var_s = var_s + "vQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtTG";
	var_s = var_s + "sbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPn";
	var_s = var_s + "wD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==";
	exmlgrid1.Images(COMVariant::createFromStr(var_s));
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>1"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = com_Nodes.Add("Child 1"); com_Node1 = var_Node1;
				com_Node1.Value("<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1");
				com_Node1.Selected(true);
			com_Nodes.Add("Child 2");
		com_Node.ExpandAll();
	var_Node2 = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>2"); com_Node2 = var_Node2;
		var_Nodes1 = com_Node2.Nodes(); com_Nodes1 = var_Nodes1;
			com_Nodes1.Add("Child 1");
			com_Nodes1.Add("Child 2");
	exmlgrid1.ExpandBarVisible(true);
	exmlgrid1.ExpandButtons(3/*exCustom*/);
	exmlgrid1.ExpandButtonsCustom(false,1);
	exmlgrid1.ExpandButtonsCustom(true,2);
	exmlgrid1.EndUpdate();
}
54
How can I create a new node with attribute, something like <newnode attr1='at1'/>

public void init()
{
	COM com_Node,com_Node1,com_Nodes,com_d;
	anytype d,var_Node,var_Node1,var_Nodes;
	str var_s;
	;

	super();

	var_s = "gBJJgBAICAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf+Pt2RrmazF3zlez+duGhsGk0Vp01i1";
	var_s = var_s + "On0GV1dU1ev1lf2VWymX2e53W73m9327iw+lfCj0gkUkAEllHKnG13j/cHQjb/eHU6b4f74jbwOncjbAB3gjaAB/k8flB8oA4A9cb9ftjXv9Xs+fwAHk80a/HpjTAD7/";
	var_s = var_s + "O2P54D+jaAg=";
	exmlgrid1.Images(COMVariant::createFromStr(var_s));
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("newnode"); com_Node = var_Node;
		com_Node.Image(1);
		var_Nodes = COM::createFromObject(com_Node.Nodes()); com_Nodes = var_Nodes;
		var_Node1 = COM::createFromObject(com_Nodes).Add("attr1","at1"); com_Node1 = var_Node1;
		com_Node1.Image(2);
	exmlgrid1.ExpandAll();
	// Add 'Microsoft XML, v3.0(msxml3.dll)' reference to your project.
	d = COM::createFromObject(new MSXML2.FreeThreadedDOMDocument30()); com_d = d;
	exmlgrid1.SaveXML(d);
	print( d.xml() );
}
53
Is it possible to load the XML with a different version of XML DOM
public void init()
{
	COM com_d;
	anytype d;
	;

	super();

	// Add 'Microsoft XML, v3.0(msxml3.dll)' reference to your project.
	d = COM::createFromObject(new MSXML2.FreeThreadedDOMDocument30()); com_d = d;
		d.loadXML("<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>");
	exmlgrid1.LoadXML(d);
	exmlgrid1.ExpandAll();
}
52
Is there a way to define a default Editor which is assigned to each node when the string is loaded (method 2)

// SelectionChanged event - Fires when the user changes the selection.
void onEvent_SelectionChanged()
{
	// SelectedNode(0).Editor = "edit"
	;
}

public void init()
{
	COM com_Node,com_Node1,com_Nodes;
	anytype var_Node,var_Node1,var_Nodes;
	;

	super();

	exmlgrid1.Editors().Add("edit",1/*EditType*/);
	exmlgrid1.Nodes().Add("Parent 1");
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent 2"); com_Node = var_Node;
		com_Node.Picture("pic1");
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(102));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>3")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(103));
		com_Node.Expanded(true);
}
51
How can I specify a default editor

// AddNode event - Occurs when a node is added to the nodes collection.
void onEvent_AddNode(COM   _NewNode)
{
	// NewNode.Editor = "calc"
	;
}

public void init()
{
	;

	super();

	exmlgrid1.Editors().Add("calc",20/*CalculatorType*/);
	exmlgrid1.LoadXML("<numbers><first_number>100</first_number><second_number>200</second_number></numbers>");
	exmlgrid1.ExpandAll();
}
50
Is there a way to define a default Editor which is assigned to each node when the string is loaded (method 1)

// AddNode event - Occurs when a node is added to the nodes collection.
void onEvent_AddNode(COM   _NewNode)
{
	// NewNode.Editor = "edit"
	;
}

public void init()
{
	;

	super();

	exmlgrid1.SelForeColorChild(WinApi::RGB2int(128,128,128));
	exmlgrid1.Editors().Add("edit",1/*EditType*/);
	exmlgrid1.LoadXML("http://www.exontrol.net/testing.xml");
	exmlgrid1.ExpandAll();
}
49
How can I assign editors to nodes

public void init()
{
	COM com_Editor,com_Editor1,com_Editor2,com_Editors,com_Node,com_Node1,com_Nodes;
	anytype var_Editor,var_Editor1,var_Editor2,var_Editors,var_Node,var_Node1,var_Nodes;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.AllowDuplicateEntries(true);
	var_Editors = exmlgrid1.Editors(); com_Editors = var_Editors;
		var_Editor = com_Editors.Add("name",1/*EditType*/); com_Editor = var_Editor;
			com_Editor.Appearance(4/*EtchedApp*/);
		var_Editor1 = com_Editors.Add("phone",8/*MaskType*/); com_Editor1 = var_Editor1;
			com_Editor1.Mask("(###)-######");
			com_Editor1.Appearance(4/*EtchedApp*/);
		var_Editor2 = com_Editors.Add("date",7/*DateType*/); com_Editor2 = var_Editor2;
			com_Editor2.Appearance(4/*EtchedApp*/);
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Customer"); com_Node = var_Node;
		com_Node.Picture("mihai");
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Name","Mihai Filimon")); com_Node1 = var_Node1;
			com_Node1.Editor("name");
			var_Node1 = COM::createFromObject(com_Nodes.Add("Phone","(0744)-845287")); com_Node1 = var_Node1;
			com_Node1.Editor("phone");
			var_Node1 = COM::createFromObject(com_Nodes.Add("BirthDay",COMVariant::createFromDate(str2Date("12/31/1971",213)))); com_Node1 = var_Node1;
			com_Node1.Editor("date");
		com_Node.Expanded(true);
	exmlgrid1.LevelWidth(0,82);
	exmlgrid1.EndUpdate();
}
48
I use LoadXml, then inside onNodeAdd event, I add the picture. But the picture doesnt show up. Does the picture have to be a bitmap

// AddNode event - Occurs when a node is added to the nodes collection.
void onEvent_AddNode(COM   _NewNode)
{
	// NewNode.Picture = LoadPicture("c:\exontrol\images\colorize.gif")
	;
}

public void init()
{
	COM com_Node,com_Node1,com_Nodes;
	anytype var_Node,var_Node1,var_Nodes;
	;

	super();

	exmlgrid1.Nodes().Add("Parent 1");
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent 2"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(102));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>3")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(103));
		com_Node.Expanded(true);
}
47
How can I assign a picture to a node ( method 3 )

public void init()
{
	COM com_Node,com_Node1,com_Nodes;
	anytype var_Node,var_Node1,var_Nodes;
	;

	super();

	exmlgrid1.HTMLPicture("pic1","c:\\exontrol\\images\\zipdisk.gif");
	exmlgrid1.Nodes().Add("Parent 1");
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent 2"); com_Node = var_Node;
		com_Node.Picture("pic1");
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(102));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>3")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(103));
		com_Node.Expanded(true);
}
46
How can I save the control's content using a different version of XML DOM
public void init()
{
	COM com_d;
	anytype d;
	;

	super();

	// Add 'Microsoft XML, v3.0(msxml3.dll)' reference to your project.
	d = COM::createFromObject(new MSXML2.FreeThreadedDOMDocument30()); com_d = d;
	exmlgrid1.LoadXML("<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>");
	exmlgrid1.SaveXML(d);
	print( d.xml() );
	exmlgrid1.ExpandAll();
}
45
How can I load the control's content using a different version of XML DOM
public void init()
{
	COM com_d;
	anytype d;
	;

	super();

	// Add 'Microsoft XML, v3.0(msxml3.dll)' reference to your project.
	d = COM::createFromObject(new MSXML2.FreeThreadedDOMDocument30()); com_d = d;
		d.async(false);
		d.loadXML("<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>");
	exmlgrid1.LoadXML(d);
	exmlgrid1.ExpandAll();
}
44
How can I get the XML string from the control's content
public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Nodes,com_d;
	anytype d,var_Node,var_Node1,var_Node2,var_Nodes;
	;

	super();

	// Add 'Microsoft XML, v3.0(msxml3.dll)' reference to your project.
	d = COM::createFromObject(new MSXML2.FreeThreadedDOMDocument30()); com_d = d;
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Root"); com_Node = var_Node;
		com_Node.Image(1);
		var_Nodes = COM::createFromObject(com_Node.Nodes()); com_Nodes = var_Nodes;
		var_Node1 = COM::createFromObject(com_Nodes).Add("Child1"); com_Node1 = var_Node1;
			com_Node1.Image(2);
			com_Node1.Value("Value <b>1");
		var_Nodes = COM::createFromObject(com_Node.Nodes()); com_Nodes = var_Nodes;
		var_Node2 = COM::createFromObject(com_Nodes).Add("Child2"); com_Node2 = var_Node2;
			com_Node2.Image(2);
			com_Node2.Value("Value <b>2");
	exmlgrid1.ExpandAll();
	exmlgrid1.ResizeToFit(COMVariant::createFromInt(0));
	exmlgrid1.SaveXML(d);
	print( d.xml() );
}
43
How can I load the control from a XML DOM object

public void init()
{
	COM com_IXMLDOMNamedNodeMap,com_d;
	anytype d,var_IXMLDOMNamedNodeMap;
	;

	super();

	// Add 'Microsoft XML, v3.0(msxml3.dll)' reference to your project.
	d = COM::createFromObject(new MSXML2.FreeThreadedDOMDocument30()); com_d = d;
		d.appendChild(d.createElement("Root"));
		var_IXMLDOMNamedNodeMap = d.childNodes().item(0).attributes(); com_IXMLDOMNamedNodeMap = var_IXMLDOMNamedNodeMap;
			com_IXMLDOMNamedNodeMap.setNamedItem(d.createAttribute("Item-1"));
			com_IXMLDOMNamedNodeMap.item(0).value("value <b>1");
			com_IXMLDOMNamedNodeMap.setNamedItem(d.createAttribute("Item-2"));
			com_IXMLDOMNamedNodeMap.item(1).value("value <b>2");
	exmlgrid1.LoadXML(d);
	exmlgrid1.ExpandAll();
	exmlgrid1.ResizeToFit(COMVariant::createFromInt(0));
	print( d.xml() );
}
42
How can I load XML from http or URL

public void init()
{
	;

	super();

	exmlgrid1.LoadXML("http://www.exontrol.net/testing.xml");
	exmlgrid1.ExpandAll();
}
41
How can I load XML from a supplied string

public void init()
{
	;

	super();

	exmlgrid1.LoadXML("<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>");
	exmlgrid1.ExpandAll();
}
40
How do I programatically search for a node
public void init()
{
	COM com_Node,com_Node1,com_Nodes;
	anytype var_Node,var_Node1,var_Nodes;
	;

	super();

	exmlgrid1.Nodes().Add("Parent 1");
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent 2"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(102));
	exmlgrid1.Nodes().Add("Parent 3");
	var_Node1 = COM::createFromObject(exmlgrid1.Search("Child 1",COMVariant::createFromInt(-1))); com_Node1 = var_Node1;
	com_Node1.Selected(true);
}
39
How can I show the control's selection using your EBN technology

public void init()
{
	COM com_Appearance,com_Node,com_Node1,com_Node2,com_Nodes,com_Nodes1;
	anytype var_Appearance,var_Node,var_Node1,var_Node2,var_Nodes,var_Nodes1;
	str var_s,var_s1;
	;

	super();

	exmlgrid1.BeginUpdate();
	var_Appearance = exmlgrid1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAChABUgIg6AADACAxRDQNABQKAAzQFAYaBiG6GAAGIYxWgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjAIoBQSGYZAIkGY4ah2A42RhNETyHD";
		var_s = var_s + "kUx7E6EZToCA6ChGOozThOEgUOAsExRIaJJ6oSTJAjGR46UjHdTwHCNHyfEAZZSqSaqLhuEYuQLZNZ1dL9KzFFqyIRQaK0IgmaI5VrFVqTPSQASLIKWKKjObIarOA53X";
		var_s = var_s + "jFd51DSFBTuGIYaZxGZYeqmeZdT7Xcr2fZUdw2EinIRFeqsHglbQcaBpegXVjNWw5N7EMDuKCdLACdYDaLlWiwHpQAZ7Vi+KgkXDcBwCUIhYQAGy4MAGcwvO7ed70HgO";
		var_s = var_s + "GoBxhmMZxilmW48Eca4TmmYw6jELYFkYB5MjubZ5F2fBWjeKZGjeYIkF4C4/DOPZrm0QhBBCEoBiSRh0B0RwhhQMRIAGYQtAMEIElgFQaEUUAwiECR6FyZAgBgRZOgEK";
		var_s = var_s + "ZfAkAZDjYGIGiGGBuB6BxiAgcgigeYg4gYJIJmIaIkm0PpikiNJ1guYwDjYMoMk6GJWDaDZjFOIg6g6Y4zioPoPk8KQGEIPgkEkFJ+hGZIIiIJYSmSKQ2CqE4kkkPhSh";
		var_s = var_s + "QZRJEIVoUmUeRWFiFplikdhZheZZJgIXoYGIGI2GaCwOGmJhqDOZpJjSOobmcAoWHKHJJmmVh2CeZ4JmSIoemeSZ2H6H5nnKBoCiCZxpliHYhmiCgOgMLQokoNJJiOaQ";
		var_s = var_s + "DHKEokmISQiEmGQmDoZhiiaaYKHKGonGoCh+iKJ4qEiKJ5imaoDGqKoqksao2i4KQrAqRoxh+SpqlaNgwiuCpkliLprkOCo+i+ThLAaQoOA6GJ+4gbIIn4PIOg4Ow2k6";
		var_s = var_s + "L5rnMVpSjSS57FaVgqm2CxmHmNptkKNpejeZpbgYbIyCYc5uiWKJqBuHpqjobpLiKbo6mSM4unKPJLjuVp2CgL4LmSKo+m+ShChCNAwAOUwCkCTx8BcBpAnAOQKEIPBw";
		var_s = var_s + "kwNwOkMDwMEcEpEnETBXBaRQwnwZJxkKJAYkIMIRGQXBwnIN5yEyFJFkmcoJk8KocgmTI3C4LAzJrSpPlyVw2jwM4LjcOY7nOLJ3DyFQOF0BwxiyKwDCMRpRmyA5bEqU";
		var_s = var_s + "pwgwCwihCMR9EcUpUnUTRXFaVZ1FyCwegudI9HcSoaiaIwDGKWNuCCMpZnaAwzGqWpzj2Nw+luM59kKZ4LGqHkOIpRdieD2M4eorwPDZAsLEX48AOAPAKMEeAmhbD1F6";
		var_s = var_s + "OsY4fwKjFHaHwN4HQ3ATHMJ9SA4wTjnVIO4LYfwai4HmHQewRAvh0AoB4DYlALi9BYJERqewnhVGqPUTob2OD2A6I8Mo2RwvUCCCINgEwkiVG6PcQoH21iUH8A8QocQM";
		var_s = var_s + "jnDuI0cY9h8gFBaCMeYPBzidHMMQSInAzBeD0J4V4fxvjsDIG8WoiQ0D9BSHsKgdhPgPGKPEfgnwXjNGsOofgPh5iDDAN8KI5gzh+A+I4RAUgoCzFSG8fY/wPjBFSP0f";
		var_s = var_s + "4nhKBkHkFwXYlw8hjHyOgHI1QhDiHAEMRQeBBCmAMEAaoFBQCGBIBEQQUASB3FoLEFYBRuBbG6HQV4gR5jBGwD0A44QCAhEGM8WIghZAmDMKQQozAUiFCgKkH4rxKjyB";
		var_s = var_s + "WOEQhsx4DOA0CsYoeBoBhGAOUQQjQaB6B4JUZQiwwAMCCHId4JRWiPCsCoWQxwhj8D+IsbIeweAnEKAsUQghbBWGiokXgdxIDtGwMsRYghxBWAYLQM4QAXiHGoGEQgUR";
		var_s = var_s + "HAyCMFgZoGRvh0CKFUCIrQpiyBCLMDY4xCASEEEsMobBfhRB6AMYoCxrh3GSP0SoigsCdA+OQAggBHixHQFEY4hguDLFGOsaoehWjeCMA0EI2QRjkEIJARi7w+g3GONw";
		var_s = var_s + "dYGBKBbEWKMEQLxkg2E+CccoBBQiUCkI4KQSgshNBSOUIgqRKhMDkDMXwJxuDfBCCAe4jRBjmBEKwconAajlGILkLQawmjHAYMcPILxu0fEwFMBwYgmAnBMOQYwtBkiZ";
		var_s = var_s + "CYJUSQsRMhmHkFscgPAwgyFcFAJImAYDiE0DwTojAZhSDcE0bIvQbjnAIOETgUhWjyCUJgaQ1hyiMFiHkGYrg7A8EyNMBIJBZjqE4HMRQawisaAuJ0AgnhPBzHcH4J42";
		var_s = var_s + "VoDnBGOMUAFAHTBCyOsEw5hoD6FALQFwhgoDaA6EMdAhQIiiCaEERAyRUjuBkBYWQLRRB0DcI4KI2gehHHSAQfoYRaBYmIHoGQiwUgNBSKUKgrhLBSG0CEJA5heglDQN";
		var_s = var_s + "QTgfRfDqDaE0dIxQcinOEJ4KaZwnjqWqKgGguhLBUBUI0KI6llimAmNoTIURCiqHKOoJoURVBVCdm0LQjwogpC6FYVYVQ2j3BICoJISRVB7EsKsSojhZBWC0M0LI6RiD";
		var_s = var_s + "eFaBUV1FwdC9CYGsAAvw5DzCULoK4Wh2hdHWMUPIrwqjuF8FcbQ/QvjaDaG0WAVRPDACwFsBoYR1i1DeKkRoHRYizDWBEMY7BCiR0KE4Xo2AdgtCwOwUomRZhMAaL0BI";
		var_s = var_s + "awegmHYGsGosw7COGkFoLYTQ0jsHKEkWoFhXDWCyEsHYZx0C9FCB8WwthtBbC2G0NYahGi3FuFYdwuhtDxBaCYYwDRghJAiBYcQXAtiNDiO6+ouQrguHMFwbYnb+B9F4";
		var_s = var_s + "LoKwFh0BdC2K0OsKgBizGsP4RY3AIiDDgO4Yo4ReBXEcPILwWxmh5GiIURAvQLiuHsF4bYqw7CtEKE0XY1xBD3C+FsdofR3jFyEFccw/gvjbGOHwFw5R5C4BGP8AQNxm";
		var_s = var_s + "N5HgEYBIwQsAvAMGAbgHRBjwEMBEYQNx9gKC8MwEohR4DGAyMEVAwh2jcAYAcQIcBrAhGIFgR4EgxBcBfFsIsaxsCvAt1wHIfAtA9G8MAQY/wLDjC4G0Ro8RjA5GCBcQ";
		var_s = var_s + "4HQxjcD7woPwAQ0DqHOBkZw/BGiRHkEYJIyQsgvBMGQbgnRJjyEMEkY4+QngcHKBwVs5xjBHDSHgOwixyBMASJYOYBgwjMCyI8GQZBmCpEyPEVwZdECtEGGUXgYBoiyH";
		var_s = var_s + "gP8ZomRng6DOFwdonR5huA0M8DI7wfBmC4N0SAmgYBhhoAsBnA7ONgGhQh6AjBEhogtAXgjA0BugOhRh5h3BIhnBNAfglA0gugWhQgsAbAuBUhdAEAwh0AmgXhTh6gDB";
		var_s = var_s + "QhqM4giB0gWgmhNBagTBUhqgkgLgmBzB4hIhTgaB7BVhrAtBnrSgug2AfAZBnBbhrgtB3gpA1BugAhVh6APACBrhNgHgxA2Aug8r0AbBkhsgphZgvgkhegwhAgShPBot";
		var_s = var_s + "4gng1A2guhWhah7BjBshtgtg3g3A2hmhLhbh6BTBupkhHg5POBNgih7A8B/huBdhXg7A3Buhuhdh7hDB4hGg9Avg8oiB2heh7gLBzhpg9gDg6g3hGh+hfh8ADgAhvAdh";
		var_s = var_s + "pu/gvAGhdg7hpgjhBAsBnu0hvAOhhh8BDgIuDgng3gSAggXhihyBvgFjmgphHA4hvAevggDgQhtBUgLhFhEg/AZgCHaARByguBXhLA5BvAuhdg8gTgMBRB+A0A/hkgnQ";
		var_s = var_s + "8h8hjgchzguB3r9hvA+hnh9ADgguNgHhOg5B/AghogdAjgkh0guB+gqA5AvAnAYgYhPglh1AugnhVA6gvBWhpA9AbgPh1B+g3hXA5g/BNhmBVA3gaB1hehHhZA7AvBmh";
		var_s = var_s + "sh9Oqh2gOhXhbA7AfBfhkhOApgUBTBNhBhdA7gugrgIBTA/g7B3guh3glgYSFBvhqggBwh4Auh+AmAjhHgGhwh+AjhEh4gvAXhjA8BvgOhxh+BDvZAvAVAhAjhEB2hyB";
		var_s = var_s + "+BjhMh5gvA3hnA8hvgeAUAsg4BZh6AkBaBABACAg";
		com_Appearance.Add(1,COMVariant::createFromStr(var_s));
		var_s1 = "gBFLBCJwBAEHhEJAEGg4BFIDg6AADACAxRDAMgBQKAAzQFAYahsGCGAAGIYxUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL";
		var_s1 = var_s1 + "UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQGhsCYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU8lORLUi+M4zSBPcZVTRtGShPDBK";
		var_s1 = var_s1 + "TjMKKYgkG4lVpRNa0PC1GTzQ6mazkKQLRADDIDVbAeL3LiMBy9LyLLItSIrFqqaJma7ccgRDj4AY7Ua+czufBZbozOqDYzAey7TDWLRXFDNIzzTgQAyHHrETbHGqzFxM";
		var_s1 = var_s1 + "AEa5YGqYpVj2HwzDuQ5oHKIQgggSRAlIYw6B0ThGFGDIAFUDAhBMfZRiGNAkFECZnG4IQdneJwmnsSQrGAAhWAIJBJBIQgFCQIBiEIAglgqYo0i4V4MEgRI9gSToYFSb";
		var_s1 = var_s1 + "4Fk6Y4+BmBZhFOJgTC8TBogQAArgqco4muCZOkOMJtgmYpIjYKg7GKE4uCUK4AAKKg2DwI4DiCZw5k6KJ2D6D4OHiag4DwIxiiQAArAqMosnEPBPAOIhOg+DozjIJ4PG";
		var_s1 = var_s1 + "SY4iEwPAkhKLhHUUSQsnKFCnkYU9MjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaI";
		var_s1 = var_s1 + "CokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEs";
		var_s1 = var_s1 + "HJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQgp";
		var_s1 = var_s1 + "DOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMhZKEwA5jC6SIyEqfh0kuD4MjAAAwcwBw0iKDwjlKVozmyChPDSThyiMDxGk6awbB6XY1iwfQInkPg0GMEAADEd";
		var_s1 = var_s1 + "RDmcVovm8ex3FkPJrH0WJ5w4UAAkcMYMHOaxmjGTxNGcao1jWbYMkcAAMk2RJ7lycxMgMdpEHMTZMnuXBM7uMAOAG1jAED8HAQ47wGjDHgPwEI+RggcGOAmAAqxDj8Do";
		var_s1 = var_s1 + "HMTY3BUi7GWPOCAKg3jIBOEIXggBAEBA";
		com_Appearance.Add(2,COMVariant::createFromStr(var_s1));
	exmlgrid1.ShowFocusRect(false);
	exmlgrid1.SelBackColor(0x1000000);
	exmlgrid1.SelForeColor(-1);
	exmlgrid1.SelBackColorCollapse(0x2000000);
	exmlgrid1.SelBackColorChild(-1);
	exmlgrid1.SelForeColorChild(-1);
	exmlgrid1.AllowDuplicateEntries(true);
	exmlgrid1.Nodes().Add("Parent 1");
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent 2"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(102));
		com_Node.Expanded(true);
		com_Node.Selected(true);
	var_Node1 = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent 3"); com_Node1 = var_Node1;
		var_Nodes1 = com_Node1.Nodes(); com_Nodes1 = var_Nodes1;
			var_Node2 = COM::createFromObject(com_Nodes1.Add("Child <b>1")); com_Node2 = var_Node2;
			com_Node2.Value(COMVariant::createFromInt(103));
			var_Node2 = COM::createFromObject(com_Nodes1.Add("Child <b>2")); com_Node2 = var_Node2;
			com_Node2.Value(COMVariant::createFromInt(104));
	exmlgrid1.Nodes().Add("Parent 4");
	exmlgrid1.EndUpdate();
	exmlgrid1.LevelWidth(0,96);
}
38
Is it possible to assing a picture to a node (method 2)

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Nodes,com_Nodes1;
	anytype var_Node,var_Node1,var_Node2,var_Nodes,var_Nodes1;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.HTMLPicture("pic1","c:\\exontrol\\images\\zipdisk.gif");
	exmlgrid1.AlignChildContent(true);
	exmlgrid1.AllowDuplicateEntries(true);
	exmlgrid1.SelBackMode(1/*exTransparent*/);
	exmlgrid1.Nodes().Add("Parent 1");
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent 2"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(102));
		com_Node.BackgroundExt(-1/*exExpandBackgroundExtState*/,"left[18],client[text=`<img>pic1</img>`,align=0x20]");
		com_Node.Expanded(true);
	var_Node1 = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent 3"); com_Node1 = var_Node1;
		var_Nodes1 = com_Node1.Nodes(); com_Nodes1 = var_Nodes1;
			var_Node2 = COM::createFromObject(com_Nodes1.Add("Child <b>1")); com_Node2 = var_Node2;
			com_Node2.Value(COMVariant::createFromInt(103));
			var_Node2 = COM::createFromObject(com_Nodes1.Add("Child <b>2")); com_Node2 = var_Node2;
			com_Node2.Value(COMVariant::createFromInt(104));
		com_Node1.BackgroundExt(-1/*exExpandBackgroundExtState*/,"left[18],client[text=`<img>pic1</img>`,align=0x20]");
		com_Node1.BackgroundExt(0/*exCollapseBackgroundExtState*/,"right[4],client[text=`<img>pic1:19</img>`,align=0x12]");
	exmlgrid1.Nodes().Add("Parent 4");
	exmlgrid1.EndUpdate();
	exmlgrid1.LevelWidth(0,96);
}
37
Is it possible to assing a picture to a node (method 1)

public void init()
{
	COM com_Node,com_Node1,com_Nodes;
	anytype var_Node,var_Node1,var_Nodes;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.HTMLPicture("pic1","c:\\exontrol\\images\\zipdisk.gif");
	exmlgrid1.AlignChildContent(true);
	exmlgrid1.AllowDuplicateEntries(true);
	exmlgrid1.SelBackMode(1/*exTransparent*/);
	exmlgrid1.Nodes().Add("Parent 1");
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent 2"); com_Node = var_Node;
		com_Node.Picture(COM::createFromVariant(exmlgrid1.HTMLPicture("pic1")));
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(102));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>3")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(103));
		com_Node.Expanded(true);
	exmlgrid1.Nodes().Add("Parent 3");
	exmlgrid1.EndUpdate();
}
36
I get "The key already exists" when adding a new node. What can I do ( method 2 )
public void init()
{
	COM com_Nodes;
	anytype var_Nodes;
	;

	super();

	exmlgrid1.BeginUpdate();
	var_Nodes = exmlgrid1.Nodes(); com_Nodes = var_Nodes;
		com_Nodes.Add("Item",,"Key1");
		com_Nodes.Add("Item",,"Key2");
		com_Nodes.Add("Item",,"Key3");
	exmlgrid1.EndUpdate();
}
35
I get "The key already exists" when adding a new node. What can I do ( method 1 )
public void init()
{
	COM com_Nodes;
	anytype var_Nodes;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.AllowDuplicateEntries(true);
	var_Nodes = exmlgrid1.Nodes(); com_Nodes = var_Nodes;
		com_Nodes.Add("Item");
		com_Nodes.Add("Item");
		com_Nodes.Add("Item");
	exmlgrid1.EndUpdate();
}
34
How can I mark the node only, without its child

public void init()
{
	COM com_Node,com_Node1,com_Nodes;
	anytype var_Node,var_Node1,var_Nodes;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.AlignChildContent(true);
	exmlgrid1.AllowDuplicateEntries(true);
	exmlgrid1.SelBackMode(1/*exTransparent*/);
	exmlgrid1.Nodes().Add("Parent 1");
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent 2"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(102));
		com_Node.BackgroundExt(-1/*exExpandBackgroundExtState*/,"top[20,frame=RGB(0,0,0),framethick]");
		com_Node.BackgroundExt(0/*exCollapseBackgroundExtState*/,com_Node.BackgroundExt(-1/*exExpandBackgroundExtState*/));
		com_Node.Expanded(true);
	exmlgrid1.Nodes().Add("Parent 3");
	exmlgrid1.EndUpdate();
}
33
How can I mark the entire node

public void init()
{
	COM com_Node,com_Node1,com_Nodes;
	anytype var_Node,var_Node1,var_Nodes;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.AlignChildContent(true);
	exmlgrid1.AllowDuplicateEntries(true);
	exmlgrid1.SelBackMode(1/*exTransparent*/);
	exmlgrid1.Nodes().Add("Parent 1");
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent 2"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(102));
		com_Node.BackgroundExt(-1/*exExpandBackgroundExtState*/,"[frame=RGB(0,0,0),framethick]");
		com_Node.BackgroundExt(0/*exCollapseBackgroundExtState*/,com_Node.BackgroundExt(-1/*exExpandBackgroundExtState*/));
		com_Node.Expanded(true);
	exmlgrid1.Nodes().Add("Parent 3");
	exmlgrid1.EndUpdate();
}
32
How can I specify aditional information for a node, when it is expanded

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Nodes;
	anytype var_Node,var_Node1,var_Node2,var_Nodes;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.AlignChildContent(true);
	exmlgrid1.SelBackMode(1/*exTransparent*/);
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = com_Nodes.Add("Child <b>1"); com_Node1 = var_Node1;
				com_Node1.Value(COMVariant::createFromInt(100));
				com_Node1.BackgroundExt(0/*exCollapseBackgroundExtState*/,"top[2],bottom[2],left[2],right[2],client[pattern=6,frame]");
			var_Node2 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node2 = var_Node2;
			com_Node2.Value(COMVariant::createFromInt(102));
		com_Node.BackgroundExt(-1/*exExpandBackgroundExtState*/,"top[4],bottom[4],left[17],right[4],client[text=`<font ;6><fgcolor A0A0A0>Count: 2`,align=0x20]");
		com_Node.BackgroundExt(0/*exCollapseBackgroundExtState*/,"top[4],bottom[4],left[4],right[4],client[text=`<font ;6><fgcolor A0A0A0>Count: 2`,align=0x02]");
		com_Node.Expanded(true);
	exmlgrid1.ResizeToFit(COMVariant::createFromInt(0));
	exmlgrid1.EndUpdate();
}
31
Is it possible to show aditional information for a node

public void init()
{
	COM com_Node,com_Node1,com_Nodes;
	anytype var_Node,var_Node1,var_Nodes;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.AlignChildContent(true);
	exmlgrid1.SelBackMode(1/*exTransparent*/);
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(102));
		com_Node.BackgroundExt(-1/*exExpandBackgroundExtState*/,"top[4],bottom[4],left[4],right[4],client[text=`<font ;6><fgcolor A0A0A0>Count: 2`,align=0x02]");
		com_Node.BackgroundExt(0/*exCollapseBackgroundExtState*/,com_Node.BackgroundExt(-1/*exExpandBackgroundExtState*/));
		com_Node.Expanded(true);
	exmlgrid1.ResizeToFit(COMVariant::createFromInt(0));
	exmlgrid1.EndUpdate();
}
30
How can I hide the expanding bars under each parent node (method 2)

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Node3,com_Nodes,com_Nodes1,com_Nodes2;
	anytype var_Node,var_Node1,var_Node2,var_Node3,var_Nodes,var_Nodes1,var_Nodes2;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.Background(0/*exExpandButtonUp*/,-1);
	exmlgrid1.Background(1/*exExpandButtonDown*/,-1);
	exmlgrid1.AlignChildContent(true);
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = com_Nodes.Add("Child <b>2"); com_Node1 = var_Node1;
				var_Nodes1 = com_Node1.Nodes(); com_Nodes1 = var_Nodes1;
					var_Node2 = COM::createFromObject(com_Nodes1.Add("Sub Child <b>2.1")); com_Node2 = var_Node2;
					com_Node2.Value(COMVariant::createFromInt(101));
					var_Node2 = com_Nodes1.Add("Sub Child <b>2.2"); com_Node2 = var_Node2;
						var_Nodes2 = com_Node2.Nodes(); com_Nodes2 = var_Nodes2;
							var_Node3 = COM::createFromObject(com_Nodes2.Add("Sub Child <b>2.1.1")); com_Node3 = var_Node3;
							com_Node3.Value(COMVariant::createFromInt(101));
							var_Node3 = COM::createFromObject(com_Nodes2.Add("Sub Child <b>2.2.2")); com_Node3 = var_Node3;
							com_Node3.Value(COMVariant::createFromInt(102));
						com_Node2.Expanded(false);
				com_Node1.Expanded(true);
		com_Node.Selected(true);
		com_Node.Expanded(true);
	exmlgrid1.LevelWidth(0,64);
	exmlgrid1.LevelWidth(1,96);
	exmlgrid1.LevelWidth(2,96);
	exmlgrid1.EndUpdate();
}
29
How can I align the child nodes

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Nodes,com_Nodes1,com_Nodes2;
	anytype var_Node,var_Node1,var_Node2,var_Nodes,var_Nodes1,var_Nodes2;
	;

	super();

	exmlgrid1.AlignChildContent(true);
	var_Nodes = exmlgrid1.Nodes(); com_Nodes = var_Nodes;
		var_Node = COM::createFromObject(com_Nodes.Add("Parent A")); com_Node = var_Node;
		com_Node.Value(COMVariant::createFromInt(100));
		var_Node = com_Nodes.Add("Parent B"); com_Node = var_Node;
			var_Nodes1 = com_Node.Nodes(); com_Nodes1 = var_Nodes1;
				var_Node1 = COM::createFromObject(com_Nodes1.Add("Child<font ;6><off -4><b>1")); com_Node1 = var_Node1;
				com_Node1.Value(COMVariant::createFromInt(101));
				var_Node1 = COM::createFromObject(com_Nodes1.Add("Child<font ;6><off -4><b>2")); com_Node1 = var_Node1;
				com_Node1.Value(COMVariant::createFromInt(102));
				var_Node1 = com_Nodes1.Add("Child<font ;6><off -4><b>3"); com_Node1 = var_Node1;
					var_Nodes2 = com_Node1.Nodes(); com_Nodes2 = var_Nodes2;
						var_Node2 = COM::createFromObject(com_Nodes2.Add("Node<font ;6><off -4><b>1")); com_Node2 = var_Node2;
						com_Node2.Value(COMVariant::createFromInt(103));
						var_Node2 = COM::createFromObject(com_Nodes2.Add("Node<font ;6><off -4><b>2")); com_Node2 = var_Node2;
						com_Node2.Value(COMVariant::createFromInt(104));
			com_Node.Expanded(true);
			com_Node.Selected(true);
}
28
How do I change the control's visual appearance using the UI Visual Designer
public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Nodes,com_Nodes1,com_Nodes2,com_Nodes3;
	anytype var_Node,var_Node1,var_Node2,var_Nodes,var_Nodes1,var_Nodes2,var_Nodes3;
	str var_s;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.AllowDuplicateEntries(true);
	exmlgrid1.ShowFocusRect(false);
	exmlgrid1.GridLinesColor(WinApi::RGB2int(128,128,128));
	var_Nodes = exmlgrid1.Nodes(); com_Nodes = var_Nodes;
		var_Node = com_Nodes.Add("Parent A"); com_Node = var_Node;
			var_Nodes1 = com_Node.Nodes(); com_Nodes1 = var_Nodes1;
				var_Node1 = COM::createFromObject(com_Nodes1.Add("Child<font ;6><off -4><b>1")); com_Node1 = var_Node1;
				com_Node1.Value(COMVariant::createFromInt(100));
				var_Node1 = COM::createFromObject(com_Nodes1.Add("Child<font ;6><off -4><b>2")); com_Node1 = var_Node1;
				com_Node1.Value(COMVariant::createFromInt(101));
				var_Node1 = com_Nodes1.Add("Child<font ;6><off -4><b>3"); com_Node1 = var_Node1;
					var_Nodes2 = com_Node1.Nodes(); com_Nodes2 = var_Nodes2;
						var_Node2 = COM::createFromObject(com_Nodes2.Add("Node<font ;6><off -4><b>1")); com_Node2 = var_Node2;
						com_Node2.Value(COMVariant::createFromInt(102));
						var_Node2 = COM::createFromObject(com_Nodes2.Add("Node<font ;6><off -4><b>2")); com_Node2 = var_Node2;
						com_Node2.Value(COMVariant::createFromInt(103));
			com_Node.Expanded(true);
			com_Node.Selected(true);
		var_Node2 = COM::createFromObject(com_Nodes.Add("Parent B")); com_Node2 = var_Node2;
		var_Nodes3 = COM::createFromObject(com_Node2).Nodes(); com_Nodes3 = var_Nodes3;
		com_Nodes3.Add(1);
	exmlgrid1.LevelWidth(0,96);
	var_s = "gBFLBWIgBAEHhEJAEGg6oBUHSTNAgAA8IZ7/jEZf78jUZicKAYOhULB8jAQxhEaGUjAkfhcICIgg4vAUHgRCJ0MkcInQBC01ACAADACAxRDAMgBQKAAzQFAYahmG6GAA";
	var_s = var_s + "GEZhYgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXIUBxAAqXZZFUaKAg2Qg4TLBAzUTCQbR7HieQghGoqPpWF4gAhCJQGSYZa";
	var_s = var_s + "DqOQyRhkCC4DIITZkRbTUBiRSdWx8AAMIyiGpoJbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhTSYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaIz";
	var_s = var_s + "mgXJqFcCR9lUMZYGwFgCnUdJAF4bY3BsfZOnMd4+l0bR2CwHRWAMRpEGEL5WmsRYPCkZZNmeLQ5l0HoHEuJIxmOL50HgBAWgmDpEGGLJWAqbwPg+RZkH+eg9D4TxfhuR";
	var_s = var_s + "ZeGGdwQH2PQTCmDpFFaKoVB+D5Xmed5pHoX44AWfR+F8UwVnEdpdkMMJKDIChygyIQpAoEh4iIJ5JlgTIcH+XoIFoEwnGEAh6A0KBgiMIICHdRgIlAM4MlKAIcCaIYIj";
	var_s = var_s + "YLoLGKIhqCcMxiTgJQ1A0IxEhsJgJFiPg+guI4yFYOA0GMWIUloNhNGIaIXCUI5CE4SwkEkchMhGCxlBkQIUCQZJZCiFIRk0aQVH8IBmAOBJeDcZJYmyFgnAmAhaGaCx";
	var_s = var_s + "mGmIhqhoZJZgiXYYAgFgCHQOYOFOEITCQCJpCyEoTW6NoACUZJiFCEoekiaZgmSHQXlYEh0DuDpTjCDQiEgchAg0IpJBoXoZiYKYqHaHAimkYguhMIZpAOMh0GEGBmg6";
	var_s = var_s + "JYqmkGowmyK4rAqNoyDsGg2BmCApCuAgNh8agrkqdYkGea4ChGCBAEAoAAJig4YqAm6cp2hKegwoChKIoykKUpinKgqSqKsrCtK4rywLEsizLQtS2LcuC5Louy8L0vi/";
	var_s = var_s + "MAwTCMMxDFMYxzIMkyjLMwzTOM80DRNI0zUNU1jXNg2TaNs3DdN43zgOE4jjOQ5TmOc6DpOo6zsO07jvPA8TyPM9D1PY9z4Pk+j7Pw/T+P9AEBQJA0EQVBkHQhCUKQtD";
	var_s = var_s + "ENQ5D0QRFEkTRRFUWRdGEZRpG0cR1HkfSBIRFmSc55yQXxfHmB5cEGdp0EyJg7BUWoqFQfY/B8f5PnOd5+H6EAB4mRFD3F2G4cImAygZAKDkIwUBKCFASDwKIExyDsBA";
	var_s = var_s + "E4IQcBUg/AUEIGAaQegFAoDAHIkAgg7EgCkAgaAMjGDSEBcIRx+BVAqMUSKmgKjEHINQJCoQCAUCIqVU6qVVqtA+MdWKs1agRVwrpXivlgLCWIJwUIKQlAyE4KAJQEgZ";
	var_s = var_s + "BsEoEoJA5haCKF+JAGYCRhBvA2LINgdglgTEIMEFoMxmiTCoM8GgzQ5hUE2DETYswEgCGAE4Y4MRlByAkGQQIHS3BSDaAQJQkg6AdAWEIKAEx0gdB6BwSYsh9DCkIHEb";
	var_s = var_s + "QdgIikCSA5fQpAsgjCYNMOg1QchPGmygGDJhSA9BIHYJwzARgMGiNQeobQThXA6JUQoZQrjWEOGMIwwwYgFBKHQIIsx2hFD6F8WgjB+h0CkDEBACABkwJkAAKc4QANbJ";
	var_s = var_s + "010noOpzNiKKUcpJSymlPGoHIGDawRiBEI24rpXywljLKWcYAWB+AkDCCASYyRSADBgCQRQXQNCOGAOYGQGAOCCCKBESgTgwgjByNQXwbQNiIGcCEEAKAli0BwCQAAUR";
	var_s = var_s + "UgRDSOgAU5RPBJFQJMdASAjA2AoIQaAoA6g6CaB4XYSxWDHAMKILAiBlDHAiBoRgLBICbCaK4VIAxEDFFUNcBIfRrBrBULwIA6RwABE4JIdoLxMjMHIBMfA1Q1CdCaKg";
	var_s = var_s + "bwsBIh8CwEIYYAwEjJDWHQLQ9QVgZDyMMZw5QKjJAoIIcwABjhAHWBkBgkABC5EsYsVgtg9gVFwAENotAtCuBiLkAgRwhAAGeOQN48h1BtHeBMTItxijoBgJ0Xw7gai9";
	var_s = var_s + "EqOYdwuR2B4AGEcUA4wmj1F0L0OwwhsiyEaNcGwvBuD/AuKMUtlAQglAGEkRg6A6g5AyEYGQBQqC0AAEIEw+wxhDDQEguozxuhIUwHMU4uxRASAGIcNI+A7CZDOOkYQU";
	var_s = var_s + "RPimHiDMAgwQ4BUAyAcYI0BGAbjQBAUgHQBifGOHkTYAAgBHDiJgPwnIbD6DyJwE46R1BzV2nkCkNguBdAqEZTIY4ciHHiM4LIngjghEJh0IoJAjBwE+IcRItg/AdHMK";
	var_s = var_s + "wRIIwkCyB4JUEgyRJBEE6CUZI8gmCED+B4Q4ER3BuAmNAPI7A6BIEMLQXYLxOjyHoMMGDIQWDJBmMwOYSRWZXHOEkeQbQJCyGiNMEQGh5ikHYHcZwsxiDvB4M8SY3B+g";
	var_s = var_s + "9CgAYXg2A6hNHmIwDgewOhHHCOANoUQqBlAuEYaQFA+glCOFISgjQVhJGiLMMI1whDLCOFwQQbgpj1ASV8KgdQKhJCmNQaoTWaCbEmzgJwQRjjBGwH4DwRh6hpC2FYWo";
	var_s = var_s + "vQ6hcGuJUYofQujXHqO0NwfwPgnDaGEAonwDhxHyBILIcgC38GyNYRomw0jaAsKUUoaAsCHD6I4P25BCBGDkFse4CRzhwC4HexIcxuDXCaMsOqwQQjjDaJ8E4jAmBzC8";
	var_s = var_s + "HcVI6w9BeHuLUeIfRvhXHaPMP4nBjjxHoHkLwBxIj7BaOAc4RgJiFHCBgNwFRDhhw4CURA4QcARHPxEI4ngHB1DGHgdoERHhjEwP4IrGBMgGCaESI42R0iMywOkdwdgy";
	var_s = var_s + "jZEMF8TA5hMieDbfwDIrg5ibHMDkJI6+sDWHCN8UIaBDjGEOKMNAugfCVFIOkTQRhOB3HKCcXotg+joBsO0XIbw1DaGcLEVo6h9DuFqK8NYmhoj8D8GoKYhAGgECziMe";
	var_s = var_s + "YjQPgHESPYPY6wLiWQiG4LYrh0i7HcHsZ3ih2h2GSO4NqewOAKDmBYGIMRjB+HUJwIwgxiDxE4F8DoxQ5AcDeCMY4nhTgcDYFkDwRwMiDlQCYXI+g5CVGgK8IoCQ6BwF";
	var_s = var_s + "uE0A49ADjxHMGwYYiAEEuauAAQrWq8tca6QcnobGwihp3myp5G0BsA3AaG1ghhIheJ+G4J/m5qBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTAUAlAVBGAABRgRBRB";
	var_s = var_s + "5hoACBTADgeBJgogThoBIBGA2AUgEhQggB1AqBFD9AXgIgMgGgiBbAFogA1AYBYhhA2B7BNBOAHFjhVBthSh7gchWBVB2gBhTiqg5AlhSBfAzgZhIAnhxgqhNA2gZBQg";
	var_s = var_s + "8BggpBxgwgFBiASATgShWgog1haA8BagZB5hDhTBrByApAFhEABgMgBhVhgB4h7guBGAHBegvBFgsgWhIgVgWhVBogzBrhuByAIgOB8ABgdhRhfLeB8AshugZg6hBhjB";
	var_s = var_s + "gB7BdhMBrAtArgUBmgjB5hOAIADBDgehiBNhjgahZgXBMABBrhYBqhihVg9gfAzA7hDhoBkAmiDhEAkggBpAxgdAOgnAjAohGBAgqgWgAAIBEhfB8BoBtAJAUBCB5hbm";
	var_s = var_s + "pBiAuB0B8AdAFAkhlgAhNIUhQgBhggIAmAKgChghIA2ALgBBNBDgeASBSBOBoBUhbgFhOh4BkhygGhhhIB2AegHhiAIgGAfgGEKhyAmgJhNBYgmAkA6hihDgmAugLhjA";
	var_s = var_s + "IhGIEhjCwgsA6hPAIhkhPgOhggDhOA+gNBkAJAGBCgMgPBJAUhNvpBYh+BDspBIhGBFA9Iwg2BJA8hjB5BWBWgVhlgJBmBagVsphGBTA7AmAJgGBigYhmBJgWBms3gZB";
	var_s = var_s + "2BIgBhPBZg0htgbhnAJhGBygchnBJhWGSAPBphmBegbD+g6B+gfhoAKAGgCgghoBKAWB/jNhphshQgiAiBKA2tLtQhGtSBPB6BWgKglBPBzhGgagmhphKB2gegnhqAKg";
	var_s = var_s + "GgbA+AqBKBegVgPoaAmgqgqhqhKg2gugqBqBDhigKgsBqh6hWg2gthjhjhmg6gshqBJA+prhsALAGhCgwhsAKhoh5iBBqAihKuuhLA2hOgzhshDhqhSgyGdBChWg1htg";
	var_s = var_s + "JhmhSA+glAYBCBtA9BrAaAihfg2BuTuhhgeBMhrgmADA5BNgrg2A5A8AsBrhGhyg8hvBLhWh2g7hhB7hkhbBSBOgrh0hZg/tkAHAChAhvhzBmBhBSBQAQCAg";
	exmlgrid1.VisualDesign(var_s);
	exmlgrid1.EndUpdate();
}
27
How do I specify to search for name of the nodes only, when the user filters the control

public void init()
{
	COM com_Node,com_Node1,com_Nodes,com_Nodes1;
	anytype var_Node,var_Node1,var_Nodes,var_Nodes1;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.FilterBarPromptVisible(-1/*exFilterBarVisible*/);
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child<font ;6><off -4><b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child<font ;6><off -4><b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(101));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child<font ;6><off -4><b>3")); com_Node1 = var_Node1;
			var_Nodes1 = com_Node1.Nodes(); com_Nodes1 = var_Nodes1;
				var_Node1 = COM::createFromObject(com_Nodes1.Add("Node<font ;6><off -4><b>1")); com_Node1 = var_Node1;
				com_Node1.Value(COMVariant::createFromInt(102));
				var_Node1 = COM::createFromObject(com_Nodes1.Add("Node<font ;6><off -4><b>2")); com_Node1 = var_Node1;
				com_Node1.Value(COMVariant::createFromInt(103));
		com_Node.Expanded(true);
	exmlgrid1.AutoSearch(1/*exContains*/);
	exmlgrid1.FilterBarPromptType(35/*exFilterPromptApplyOnName | exFilterPromptStartWith*/);
	exmlgrid1.FilterBarPromptPattern("No");
	exmlgrid1.EndUpdate();
}
26
Is it possible to include child-nodes, when do filtering

public void init()
{
	COM com_Node,com_Node1,com_Nodes,com_Nodes1;
	anytype var_Node,var_Node1,var_Nodes,var_Nodes1;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.FilterBarPromptVisible(-1/*exFilterBarVisible*/);
	exmlgrid1.HideSelection(1/*exHideAlways*/);
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child<font ;6><off -4><b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child<font ;6><off -4><b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(101));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child<font ;6><off -4><b>3")); com_Node1 = var_Node1;
			var_Nodes1 = com_Node1.Nodes(); com_Nodes1 = var_Nodes1;
				var_Node1 = COM::createFromObject(com_Nodes1.Add("Node<font ;6><off -4><b>1")); com_Node1 = var_Node1;
				com_Node1.Value(COMVariant::createFromInt(102));
				var_Node1 = COM::createFromObject(com_Nodes1.Add("Node<font ;6><off -4><b>2")); com_Node1 = var_Node1;
				com_Node1.Value(COMVariant::createFromInt(103));
		com_Node.Expanded(true);
	exmlgrid1.AutoSearch(3/*exAnyContains*/);
	exmlgrid1.FilterBarPromptType(226/*exFilterPromptIncludeChild | exFilterPromptApplyOnValue | exFilterPromptApplyOnName | exFilterPromptContainsAny*/);
	exmlgrid1.FilterBarPromptPattern("Child3");
	exmlgrid1.EndUpdate();
}
25
How can I change the control's filtering so it searches for Contains rather than Start

public void init()
{
	COM com_Node,com_Node1,com_Nodes,com_Nodes1;
	anytype var_Node,var_Node1,var_Nodes,var_Nodes1;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.FilterBarPromptVisible(-1/*exFilterBarVisible*/);
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child<font ;6><off -4><b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child<font ;6><off -4><b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(101));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child<font ;6><off -4><b>3")); com_Node1 = var_Node1;
			var_Nodes1 = com_Node1.Nodes(); com_Nodes1 = var_Nodes1;
				var_Node1 = COM::createFromObject(com_Nodes1.Add("Node<font ;6><off -4><b>1")); com_Node1 = var_Node1;
				com_Node1.Value(COMVariant::createFromInt(102));
				var_Node1 = COM::createFromObject(com_Nodes1.Add("Node<font ;6><off -4><b>2")); com_Node1 = var_Node1;
				com_Node1.Value(COMVariant::createFromInt(103));
		com_Node.Expanded(true);
	exmlgrid1.AutoSearch(3/*exAnyContains*/);
	exmlgrid1.FilterBarPromptType(98/*exFilterPromptApplyOnValue | exFilterPromptApplyOnName | exFilterPromptContainsAny*/);
	exmlgrid1.FilterBarPromptPattern("Child3");
	exmlgrid1.EndUpdate();
}
24
How do I enable the control's filtering support

public void init()
{
	COM com_Node,com_Node1,com_Nodes;
	anytype var_Node,var_Node1,var_Nodes;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.FilterBarPromptVisible(-1/*exFilterBarVisible*/);
	exmlgrid1.HideSelection(1/*exHideAlways*/);
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(101));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>3")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(102));
		com_Node.Expanded(true);
	exmlgrid1.EndUpdate();
}
23
How can I hide the expanding bars under each parent node (method 1)

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Node3,com_Nodes,com_Nodes1,com_Nodes2;
	anytype var_Node,var_Node1,var_Node2,var_Node3,var_Nodes,var_Nodes1,var_Nodes2;
	str var_s,var_s1,var_s2;
	;

	super();

	exmlgrid1.BeginUpdate();
	var_s = "gBFLBCJwBAEHhEJAAChABDEMACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXI";
	var_s = var_s + "UBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhT";
	var_s = var_s + "SYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4k";
	var_s = var_s + "jGY4vnQeAEBaCYOkQYYslYCpvA+D5FmSc55j0PhfF8eYHlwQZ2nQTImDsFRaioVB9j8Hx/k+c53n4fogAeTJFHuXY3HCTAygyAociMKBKEKBIeCiCZyHYEAnCEOBUh+B";
	var_s = var_s + "QhBgNIegKCgYBySAgh2SAUgINAMmMNIgCcCYjn4KoKmKSI2C6CpiHIagkDMYgCAoIg1A0IxEhsJgJFiPg+g+Y4yFYOA0GMWIIloNhNGIaIXCUI5CE4SwkEkchOFCFIlB";
	var_s = var_s + "kThQCUCQZDYSglCQcxaEUX5IBmBJhDeDZZDYOwlgmQhghaGZmkmKhnhoZo5ioTYYk2WYEgEYAnGOGJlDkCQyECDqfCkNoCCUSQ6A6BYhCgCZ0g6HoOEmWR9GFYw4m0Ow";
	var_s = var_s + "IlIJIHCRc4shGJhpjoaocieaZiC6GAimkUgehIOwnGYEYGGiah6jaE4rg6SpCjKK5rEOMYjGGGIChKOgglmdoij6L5aEYfo6CkGIEAQgIA==";
	exmlgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	var_s1 = "gBFLBCJwBAEHhEJAAChABC0MACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXI";
	var_s1 = var_s1 + "UBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhT";
	var_s1 = var_s1 + "SYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4k";
	var_s1 = var_s1 + "jGY4vnQeAEBaCYOkQYYslYCpvA+D5FmQf56D0PhPF+G5Fl4YZ3BAfY9BMKYOkUVoqhUH4PleZ53mkehfjgBZ9H4XxTBWcR2l2QwwkoMgKHKDIhCkCgSHiIgnkmWBMhwf";
	var_s1 = var_s1 + "5egglInGEAh6A0KBgiMIICHdLIIlAM4MlKAIcCaIYIjYLoLGKIhqCcMxiR8JQ1A0IxEhsJgJFiPg+guI4yFYOA0GMWIUloNhNGIaIXCUI5CE4SwkEkchMhGCxlBkQIUC";
	var_s1 = var_s1 + "QZJZCiFIRk0aQVH8IBmAOBJeDcZJYmyFgnAmAhaGaCxmGmIhqhoZJZgiXYYAgFgCHQOYOFOEITCQCJpCyEoTVUNoACUZJiFCEoekiaZgmSHQXlYEh0DuDpTjCDQiEgch";
	var_s1 = var_s1 + "Ag0IpJBoXoZiYKYqHaHAimkYguhMIZpAOMh0GEGBmg6JYqmkGowmyK4rAqNoyDsGg2BmCApCuAgNh8agrkqdYkGea4ChGCBAEAgI";
	exmlgrid1.VisualAppearance().Add(2,COMVariant::createFromStr(var_s1));
	var_s2 = "gBFLBCJwBAEHhEJAAChABa8GACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIzkKJpAAiCRQGiYZyHKcxMYgQrAZBEbKMLwrAYUIRCCaofA";
	var_s2 = var_s2 + "AGIaRDIcZPXQjZSMdSkHRpKi6Mo2TpPUpSDpUM6VCL3KhqKxXeq1cp2XpfWBYNhVbTafyyaiqKiSWy0EQRBSDXBcNxXHalazhNpCbTSWoqLrhRzDMCwC6rUwCeYJQzCc";
	var_s2 = var_s2 + "LxLCcMwjA5/MDeFLXCwjBJ+W5aFhzBYsbx1NKcZ7nWgaAqOKp/OKnECuBh2EYNMywK5rew7BqTf5tW7ZNx2TYNMYPKiDajcDJMOwqWpUVDjOQ4fidXzfSbPcrxfBsLp/";
	var_s2 = var_s2 + "FOKhmDKGQKHUGoFEiIRPCiE5pl8ChzhuNpyHgU49mSdxtEOWBkCCNRdGQExBhyTRQCcExeG+X5zneeAmh8Uw1nEIIfDMUJSDQSYyGCFR/GCR5yAkJRgGMRgDHyTYjGSV";
	var_s2 = var_s2 + "gmgkchSAoJJhhIRIXCSSQXm4H4HgkQhGBuBgJEgVJWgSVJSAYLg4E2Yx2BuAhJGIcIYCWIxHm4NINiOCJeBuDANliOIBFOJAjhiZQ5AkMhAg6BhJCgbgbH6ZJiFYHAlA";
	var_s2 = var_s2 + "kKQkg6EYOEkCRLFTQw4m0OwIlIJIHCRVAshGGRmHmGhohqZoiC4ZAimYEgeF4OwkCUSRUFwZw5mYX4eg6SZyH6HpoAOMRxFUFRihKBgglaVZagqIpXCWNoGCkFRkAQgI";
	exmlgrid1.VisualAppearance().Add(3,COMVariant::createFromStr(var_s2));
	exmlgrid1.HideSelection(1/*exHideAlways*/);
	exmlgrid1.ExpandButtons(3/*exCustom*/);
	exmlgrid1.ExpandButtonsCustom(true,16777216);
	exmlgrid1.ExpandButtonsCustom(false,33554432);
	exmlgrid1.Background(0/*exExpandButtonUp*/,0x3000000);
	exmlgrid1.Background(1/*exExpandButtonDown*/,0x3000000);
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = com_Nodes.Add("Child <b>2"); com_Node1 = var_Node1;
				var_Nodes1 = com_Node1.Nodes(); com_Nodes1 = var_Nodes1;
					var_Node2 = COM::createFromObject(com_Nodes1.Add("Sub Child <b>2.1")); com_Node2 = var_Node2;
					com_Node2.Value(COMVariant::createFromInt(101));
					var_Node2 = com_Nodes1.Add("Sub Child <b>2.2"); com_Node2 = var_Node2;
						var_Nodes2 = com_Node2.Nodes(); com_Nodes2 = var_Nodes2;
							var_Node3 = COM::createFromObject(com_Nodes2.Add("Sub Child <b>2.1.1")); com_Node3 = var_Node3;
							com_Node3.Value(COMVariant::createFromInt(101));
							var_Node3 = COM::createFromObject(com_Nodes2.Add("Sub Child <b>2.2.2")); com_Node3 = var_Node3;
							com_Node3.Value(COMVariant::createFromInt(102));
						com_Node2.Expanded(false);
				com_Node1.Expanded(true);
		com_Node.Selected(true);
		com_Node.Expanded(true);
	exmlgrid1.LevelWidth(0,64);
	exmlgrid1.LevelWidth(1,96);
	exmlgrid1.LevelWidth(2,96);
	exmlgrid1.EndUpdate();
}
22
How can I change the visual appearance for expand/collapse buttons

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Node3,com_Nodes,com_Nodes1,com_Nodes2;
	anytype var_Node,var_Node1,var_Node2,var_Node3,var_Nodes,var_Nodes1,var_Nodes2;
	str var_s,var_s1;
	;

	super();

	exmlgrid1.BeginUpdate();
	var_s = "gBFLBCJwBAEHhEJAAChABDEMACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXI";
	var_s = var_s + "UBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhT";
	var_s = var_s + "SYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4k";
	var_s = var_s + "jGY4vnQeAEBaCYOkQYYslYCpvA+D5FmSc55j0PhfF8eYHlwQZ2nQTImDsFRaioVB9j8Hx/k+c53n4fogAeTJFHuXY3HCTAygyAociMKBKEKBIeCiCZyHYEAnCEOBUh+B";
	var_s = var_s + "QhBgNIegKCgYBySAgh2SAUgINAMmMNIgCcCYjn4KoKmKSI2C6CpiHIagkDMYgCAoIg1A0IxEhsJgJFiPg+g+Y4yFYOA0GMWIIloNhNGIaIXCUI5CE4SwkEkchOFCFIlB";
	var_s = var_s + "kThQCUCQZDYSglCQcxaEUX5IBmBJhDeDZZDYOwlgmQhghaGZmkmKhnhoZo5ioTYYk2WYEgEYAnGOGJlDkCQyECDqfCkNoCCUSQ6A6BYhCgCZ0g6HoOEmWR9GFYw4m0Ow";
	var_s = var_s + "IlIJIHCRc4shGJhpjoaocieaZiC6GAimkUgehIOwnGYEYGGiah6jaE4rg6SpCjKK5rEOMYjGGGIChKOgglmdoij6L5aEYfo6CkGIEAQgIA==";
	exmlgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	var_s1 = "gBFLBCJwBAEHhEJAAChABC0MACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXI";
	var_s1 = var_s1 + "UBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhT";
	var_s1 = var_s1 + "SYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4k";
	var_s1 = var_s1 + "jGY4vnQeAEBaCYOkQYYslYCpvA+D5FmQf56D0PhPF+G5Fl4YZ3BAfY9BMKYOkUVoqhUH4PleZ53mkehfjgBZ9H4XxTBWcR2l2QwwkoMgKHKDIhCkCgSHiIgnkmWBMhwf";
	var_s1 = var_s1 + "5egglInGEAh6A0KBgiMIICHdLIIlAM4MlKAIcCaIYIjYLoLGKIhqCcMxiR8JQ1A0IxEhsJgJFiPg+guI4yFYOA0GMWIUloNhNGIaIXCUI5CE4SwkEkchMhGCxlBkQIUC";
	var_s1 = var_s1 + "QZJZCiFIRk0aQVH8IBmAOBJeDcZJYmyFgnAmAhaGaCxmGmIhqhoZJZgiXYYAgFgCHQOYOFOEITCQCJpCyEoTVUNoACUZJiFCEoekiaZgmSHQXlYEh0DuDpTjCDQiEgch";
	var_s1 = var_s1 + "Ag0IpJBoXoZiYKYqHaHAimkYguhMIZpAOMh0GEGBmg6JYqmkGowmyK4rAqNoyDsGg2BmCApCuAgNh8agrkqdYkGea4ChGCBAEAgI";
	exmlgrid1.VisualAppearance().Add(2,COMVariant::createFromStr(var_s1));
	exmlgrid1.HideSelection(1/*exHideAlways*/);
	exmlgrid1.ExpandButtons(3/*exCustom*/);
	exmlgrid1.ExpandButtonsCustom(true,16777216);
	exmlgrid1.ExpandButtonsCustom(false,33554432);
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = com_Nodes.Add("Child <b>2"); com_Node1 = var_Node1;
				var_Nodes1 = com_Node1.Nodes(); com_Nodes1 = var_Nodes1;
					var_Node2 = COM::createFromObject(com_Nodes1.Add("Sub Child <b>2.1")); com_Node2 = var_Node2;
					com_Node2.Value(COMVariant::createFromInt(101));
					var_Node2 = com_Nodes1.Add("Sub Child <b>2.2"); com_Node2 = var_Node2;
						var_Nodes2 = com_Node2.Nodes(); com_Nodes2 = var_Nodes2;
							var_Node3 = COM::createFromObject(com_Nodes2.Add("Sub Child <b>2.1.1")); com_Node3 = var_Node3;
							com_Node3.Value(COMVariant::createFromInt(101));
							var_Node3 = COM::createFromObject(com_Nodes2.Add("Sub Child <b>2.2.2")); com_Node3 = var_Node3;
							com_Node3.Value(COMVariant::createFromInt(102));
						com_Node2.Expanded(false);
				com_Node1.Expanded(true);
		com_Node.Selected(true);
		com_Node.Expanded(true);
	exmlgrid1.LevelWidth(0,64);
	exmlgrid1.LevelWidth(1,96);
	exmlgrid1.LevelWidth(2,96);
	exmlgrid1.EndUpdate();
}
21
Does your control support transparent selection

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Node3,com_Nodes,com_Nodes1,com_Nodes2;
	anytype var_Node,var_Node1,var_Node2,var_Node3,var_Nodes,var_Nodes1,var_Nodes2;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.SelBackMode(1/*exTransparent*/);
	exmlgrid1.SelBackColorChild(exmlgrid1.SelBackColor());
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = com_Nodes.Add("Child <b>2"); com_Node1 = var_Node1;
				var_Nodes1 = com_Node1.Nodes(); com_Nodes1 = var_Nodes1;
					var_Node2 = COM::createFromObject(com_Nodes1.Add("Sub Child <b>2.1")); com_Node2 = var_Node2;
					com_Node2.Value(COMVariant::createFromInt(101));
					var_Node2 = com_Nodes1.Add("Sub Child <b>2.2"); com_Node2 = var_Node2;
						var_Nodes2 = com_Node2.Nodes(); com_Nodes2 = var_Nodes2;
							var_Node3 = COM::createFromObject(com_Nodes2.Add("Sub Child <b>2.1.1")); com_Node3 = var_Node3;
							com_Node3.Value(COMVariant::createFromInt(101));
							var_Node3 = COM::createFromObject(com_Nodes2.Add("Sub Child <b>2.2.2")); com_Node3 = var_Node3;
							com_Node3.Value(COMVariant::createFromInt(102));
						com_Node2.Expanded(true);
				com_Node1.Expanded(true);
		com_Node.Selected(true);
		com_Node.Expanded(true);
	exmlgrid1.LevelWidth(0,64);
	exmlgrid1.LevelWidth(1,96);
	exmlgrid1.LevelWidth(2,96);
	exmlgrid1.EndUpdate();
}
20
How can I show the selection with some transparent marker

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Nodes,com_Nodes1;
	anytype var_Node,var_Node1,var_Node2,var_Nodes,var_Nodes1;
	str var_s;
	;

	super();

	exmlgrid1.BeginUpdate();
	exmlgrid1.AllowDuplicateEntries(true);
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(101));
		com_Node.Selected(true);
		com_Node.Expanded(true);
	var_Node1 = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node1 = var_Node1;
		var_Nodes1 = com_Node1.Nodes(); com_Nodes1 = var_Nodes1;
			var_Node2 = COM::createFromObject(com_Nodes1.Add("Child <b>1")); com_Node2 = var_Node2;
			com_Node2.Value(COMVariant::createFromInt(100));
			var_Node2 = COM::createFromObject(com_Nodes1.Add("Child <b>2")); com_Node2 = var_Node2;
			com_Node2.Value(COMVariant::createFromInt(101));
	exmlgrid1.LevelWidth(0,64);
	exmlgrid1.LevelWidth(1,96);
	exmlgrid1.LevelWidth(2,96);
	exmlgrid1.ShowFocusRect(false);
	var_s = "gBFLBCJwBAEHhEJAAChABdcGACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYJhGBQxAJCI4DBCIZBwGKQBjASQpUhqHYDTbIMByBI";
	var_s = var_s + "UIxMGiYIRoGAxTiAMo8RrSEZTdD8ExTAZ/XzfMAKRpOFo/ULEUw0NR8aRABiNQbkWjYDp1f5nVRaFTxYKoSxbNqIRpGCzoJrKdI1SBEMTWBAddSdBKzX7tHArLgSQJdS";
	var_s = var_s + "rLMrzDIka4cACcZxkCioXozBpZVjRMaZJC2KAbMaBQgsQALGqjAaVUJQEgZTTmHS/BLPYDsLQdDyXAqnYTkFwWZa4ATtOK5b6jK6dQgmfAAaJGWzYHpGL4QGCYZKGapM";
	var_s = var_s + "gsKaVmwYp8j2RoCCWB4VHQIQjD6FIjF2RpumyewRj6XYrjoMpdk4Pgbm4DZXmmSpRnWeJ9hiN4zAkSRCECBAkFAGhGDGUB1ByBhVGUCxAkQIQ2AsRZRFQDAoEIXoXCUI";
	var_s = var_s + "QGBSNg9BoYBNjMbJ/DGTBznyQAwCIKISCOCRigiHgqgmIhIgCfw3k2dgFn6DAihiMg1g2Yo4mINoNBCEwMkOCgPDOTgyhCZBJBYRIQTGmYOGQaQ2E6EQjhkLg2hOZRJD";
	var_s = var_s + "oURAmSSRWFqEJlHAAhZhaZgJHYX4YCWKYKFOGQljmGgohoJoYloUoambTxqgmZwZkoboWCYeZWFaHaOBDRIkCmahDhIIh5nmfoHGOKgmDmIpjGiHoIEIVQjnyXA3A+cw";
	var_s = var_s + "gkiIooloZgoiWD5zgCYIMhCFAEIC";
	exmlgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	exmlgrid1.SelBackColor(0x1000000);
	exmlgrid1.SelForeColor(-1);
	exmlgrid1.SelBackColorChild(-1);
	exmlgrid1.SelForeColorChild(-1);
	exmlgrid1.EndUpdate();
}
19
How can I highlight the focused/selected node only, instead highlighting its childrend collection (method 3)

public void init()
{
	COM com_Node,com_Node1,com_Nodes;
	anytype var_Node,var_Node1,var_Nodes;
	str var_s;
	;

	super();

	exmlgrid1.BeginUpdate();
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(101));
		com_Node.Selected(true);
		com_Node.Expanded(true);
	exmlgrid1.LevelWidth(0,64);
	exmlgrid1.LevelWidth(1,96);
	exmlgrid1.LevelWidth(2,96);
	exmlgrid1.ShowFocusRect(false);
	var_s = "gBFLBCJwBAEHhEJAAChABGYDg6AADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjAIoBQ4GACJBmKKodgONYYTLFYCwTJ";
	var_s = var_s + "ETw5FKEZTEWQBTjGOY5TbNcgUPCMex7IiVJYpOK6ThqTYfQjLUBvfTgAS4f6Laaneg4JDOUYtTjIADRWBMeSxAatK6rWr7BqOYoDUJZcQyDIcNzXAa9aLjO5wAiWPp4V";
	var_s = var_s + "JZM54FKVEzfQSrZqoDIrEgOZpBYjMdSgADFXQGDbHbhuS5IWwTBpQZhaGZQTb+mZtZ7oMI6HTuSztW7EMLAC6bJx7LoDazoGKSDo0TZRXLNYqzPIdf4OVq4YTxVi2PZG";
	var_s = var_s + "nmLJfGwOY8m2NhTAmPJcmAZBbmiDo3DuW4ZEgAQQhKAYkkYdA6hyDIjBkAIqBgQgmn0YxRFgGIjF8CRwhOB4ZAkPQdFYMRfCsYICFYCgkEkEhCA0JDeEICglgqYo0i4X";
	var_s = var_s + "QMEgZI9gaToYHSb4Hk6Y4+CGB5hlOJgbC8TBoiQAArgqco4muC5OkOMJtguYxIlYMg7GME4uC0K4AAKKg+DwJADiCZw5k6KQWEaEYOHkChADwI5izIKwKjKzQ8E8A4iF";
	var_s = var_s + "aEYOjOMgvhEZRjiIVA8CUEouE9SRJEycoWCMCJmFvUAzkYZArAACAgi0PInEkGhauKCYsmqHQPCmSAAgsSp5lCc4dg6WgUm6DkQhicw8g8OiDiwKQDk6EoNCgU40m6JZ";
	var_s = var_s + "pFiUoSDyaQCokLIqAobh3iWKRogaB4MmWKhsjMLJLCAAorCyagokYIoImsM46DEOwPEoSovABZR0nSL5pFgfgfhALAqFaPw9CuUrgC2CxSlidQ9E8SoSkSEpsZXj5LFs";
	var_s = var_s + "NAAC2bZLDydYwiaW4GFOMIPGsPpcC2QACmSOQuA8a42EvYoZnKcVsAOPJwD0bpSmKagAAuO52m0PYsCmcoLkCLhLjSOwuguIAAjyQpvnkLobkOaQpC6f5CkuQAAj6BpP";
	var_s = var_s + "HwZwCkQKYzkqcQ9k8Y5cj2RejH8JpGE8eZykeSprnmcwoC+TADAAAJMEwA5jDaSoyksHh8rmDLgDBzoHDyJIPCOUpejWbQKG8PJQHMIwPE6UJrhsPpljeLJ9CieQ+DSY";
	var_s = var_s + "wQAAMR1kOZxejGb57hcYQ8mufR4nmVwMFAAJHDGDBzmsbozk8TYHHKN42G2LJHAADJNmSe5enOTIjH6Rhzk2Nke4vBMt8GAHADY5wbgUD8HEQ47wOjHHiPwMI+RigcGO";
	var_s = var_s + "AmAorgjj8EIHMTY3B0i7GePQDoBwdBvGSCcIQ6BACAIC";
	exmlgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	exmlgrid1.SelBackColor(0x1000000);
	exmlgrid1.SelForeColor(-1);
	exmlgrid1.SelBackColorChild(-1);
	exmlgrid1.SelForeColorChild(-1);
	exmlgrid1.EndUpdate();
}
18
How can I highlight the focused/selected node only, instead highlighting its childrend collection (method 2)

public void init()
{
	COM com_Node,com_Node1,com_Nodes;
	anytype var_Node,var_Node1,var_Nodes;
	str var_s;
	;

	super();

	exmlgrid1.BeginUpdate();
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(101));
		com_Node.Selected(true);
		com_Node.Expanded(true);
	exmlgrid1.LevelWidth(0,64);
	exmlgrid1.LevelWidth(1,96);
	exmlgrid1.LevelWidth(2,96);
	var_s = "gBFLBCJwBAEHhEJAAChABJUIQAAYAQGKIaBoAKBQAGaAoDDQMw1QwAAwjSK0EwsACEIrjKCRShyCYZRhGcTSAAUEhiGKQBgiGDhViWAwyDABEbwS78agBFyRlqyfKccx";
	var_s = var_s + "9DaAQEBA";
	exmlgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	exmlgrid1.ShowFocusRect(false);
	exmlgrid1.SelBackColor(0x1a0a0a0);
	exmlgrid1.SelForeColor(-1);
	exmlgrid1.SelBackColorChild(-1);
	exmlgrid1.SelForeColorChild(-1);
	exmlgrid1.EndUpdate();
}
17
How can I highlight the focused/selected node only, instead highlighting its childrend collection (method 1)

public void init()
{
	COM com_Node,com_Node1,com_Nodes;
	anytype var_Node,var_Node1,var_Nodes;
	str var_s;
	;

	super();

	exmlgrid1.BeginUpdate();
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>1")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(100));
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child <b>2")); com_Node1 = var_Node1;
			com_Node1.Value(COMVariant::createFromInt(101));
		com_Node.Selected(true);
		com_Node.Expanded(true);
	exmlgrid1.LevelWidth(0,64);
	exmlgrid1.LevelWidth(1,96);
	exmlgrid1.LevelWidth(2,96);
	exmlgrid1.HideSelection(1/*exHideAlways*/);
	var_s = "gBFLBCJwBAEHhEJAAChABdcGACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYJhGBQxAJCI4DBCIZBwGKQBjASQpUhqHYDTbIMByBI";
	var_s = var_s + "UIxMGiYIRoGAxTiAMo8RrSEZTdD8ExTAZ/XzfMAKRpOFo/ULEUw0NR8aRABiNQbkWjYDp1f5nVRaFTxYKoSxbNqIRpGCzoJrKdI1SBEMTWBAddSdBKzX7tHArLgSQJdS";
	var_s = var_s + "rLMrzDIka4cACcZxkCioXozBpZVjRMaZJC2KAbMaBQgsQALGqjAaVUJQEgZTTmHS/BLPYDsLQdDyXAqnYTkFwWZa4ATtOK5b6jK6dQgmfAAaJGWzYHpGL4QGCYZKGapM";
	var_s = var_s + "gsKaVmwYp8j2RoCCWB4VHQIQjD6FIjF2RpumyewRj6XYrjoMpdk4Pgbm4DZXmmSpRnWeJ9hiN4zAkSRCECBAkFAGhGDGUB1ByBhVGUCxAkQIQ2AsRZRFQDAoEIXoXCUI";
	var_s = var_s + "QGBSNg9BoYBNjMbJ/DGTBznyQAwCIKISCOCRigiHgqgmIhIgCfw3k2dgFn6DAihiMg1g2Yo4mINoNBCEwMkOCgPDOTgyhCZBJBYRIQTGmYOGQaQ2E6EQjhkLg2hOZRJD";
	var_s = var_s + "oURAmSSRWFqEJlHAAhZhaZgJHYX4YCWKYKFOGQljmGgohoJoYloUoambTxqgmZwZkoboWCYeZWFaHaOBDRIkCmahDhIIh5nmfoHGOKgmDmIpjGiHoIEIVQjnyXA3A+cw";
	var_s = var_s + "gkiIooloZgoiWD5zgCYIMhCFAEIC";
	exmlgrid1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	exmlgrid1.Background(19/*exShowFocusRect*/,0x1000000);
	exmlgrid1.EndUpdate();
}
16
How do I enable the scrollbar-extension, as thumb to be shown outside of the control's client area

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Nodes,com_Nodes1;
	anytype var_Node,var_Node1,var_Node2,var_Nodes,var_Nodes1;
	;

	super();

	exmlgrid1.BeginUpdate();
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <font ;6><off 4>1"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = com_Nodes.Add("Child 1"); com_Node1 = var_Node1;
				com_Node1.Value("<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1");
			com_Nodes.Add("Child 2");
		com_Node.ExpandAll();
	var_Node2 = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <font ;6><off 4>2"); com_Node2 = var_Node2;
	var_Nodes1 = com_Node2.Nodes(); com_Nodes1 = var_Nodes1;
		com_Nodes1.Add("Child 1");
		com_Nodes1.Add("Child 2");
	exmlgrid1.ScrollBars(3/*exBoth*/);
	exmlgrid1.ScrollPartVisible(0/*exVScroll*/,65536/*exExtentThumbPart*/,true);
	exmlgrid1.ScrollPartVisible(1/*exHScroll*/,65536/*exExtentThumbPart*/,true);
	exmlgrid1.ScrollPartVisible(2,65536/*exExtentThumbPart*/,true);
	exmlgrid1.ScrollWidth(4);
	exmlgrid1.Background(276/*exVSBack*/,WinApi::RGB2int(240,240,240));
	exmlgrid1.Background(260/*exVSThumb*/,WinApi::RGB2int(128,128,128));
	exmlgrid1.ScrollHeight(4);
	exmlgrid1.Background(404/*exHSBack*/,exmlgrid1.Background(276/*exVSBack*/));
	exmlgrid1.Background(388/*exHSThumb*/,exmlgrid1.Background(260/*exVSThumb*/));
	exmlgrid1.Background(511/*exScrollSizeGrip*/,exmlgrid1.Background(276/*exVSBack*/));
	exmlgrid1.EndUpdate();
}
15
Does your control support Fit-To-Page, Print and Print-Preview

public void init()
{
	COM com_Node,com_Node1,com_Nodes,com_Nodes1,com_Print;
	anytype var_Node,var_Node1,var_Nodes,var_Nodes1,var_Print;
	;

	super();

	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>1"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child 1")); com_Node1 = var_Node1;
			com_Node1.Selected(true);
			com_Nodes.Add("Child 2");
		com_Node.ExpandAll();
	var_Node1 = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>2"); com_Node1 = var_Node1;
		var_Nodes1 = com_Node1.Nodes(); com_Nodes1 = var_Nodes1;
			com_Nodes1.Add("Child 1");
			com_Nodes1.Add("Child 2");
	// Add 'exprint.dll(ExPrint.dll)' reference to your project.
	// Add 'ExPrint 1.0 Control Library(ExPrint.dll)' reference to your project.
	var_Print = COM::createFromObject(new EXPRINTLib.exprint()); com_Print = var_Print;
		com_Print.Options("FitToPage = 1x1");
		com_Print.PrintExt(exmlgrid1);
		com_Print.Preview();
}
14
How do I print the control
public void init()
{
	COM com_Node,com_Node1,com_Nodes,com_Nodes1,com_Print;
	anytype var_Node,var_Node1,var_Nodes,var_Nodes1,var_Print;
	;

	super();

	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>1"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child 1")); com_Node1 = var_Node1;
			com_Node1.Selected(true);
			com_Nodes.Add("Child 2");
		com_Node.ExpandAll();
	var_Node1 = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>2"); com_Node1 = var_Node1;
		var_Nodes1 = com_Node1.Nodes(); com_Nodes1 = var_Nodes1;
			com_Nodes1.Add("Child 1");
			com_Nodes1.Add("Child 2");
	// Add 'exprint.dll(ExPrint.dll)' reference to your project.
	// Add 'ExPrint 1.0 Control Library(ExPrint.dll)' reference to your project.
	var_Print = COM::createFromObject(new EXPRINTLib.exprint()); com_Print = var_Print;
		com_Print.PrintExt(exmlgrid1);
		com_Print.Preview();
}
13
How can we can customize a context menu based on the node type

// MouseUp event - Occurs when the user releases a mouse button.
void onEvent_MouseUp(int   _Button,int   _Shift,int   _X,int   _Y)
{
	COM com_ExContextMenu,com_Items;
	anytype var_ExContextMenu,var_Items;
	str var_s;
	;
	print( "Node:" );
	print( exmlgrid1.NodeFromPoint(_X,_Y) );
	// Add 'excontextmenu.dll(ExContextMenu.dll)' reference to your project.
	// Add 'ExContextMenu 1.0 Type Library(ExContextMenu.dll)' reference to your project.
	var_ExContextMenu = COM::createFromObject(new EXCONTEXTMENULib.excontextmenu()); com_ExContextMenu = var_ExContextMenu;
		var_Items = COM::createFromObject(com_ExContextMenu.Items()); com_Items = var_Items;
		var_s = "Calendar[id=20][img=0],MSChart[id=30],Record[id=40],Slider[id=50],Radio 1[id=100][typ=2][edit=],Radio 2[id=101][typ=2][edit=],Ra";
		var_s = var_s + "dio 3[id=102][typ=2][edit=],ComboBox[id=90]";
		com_Items.ToString(var_s);
		print( com_ExContextMenu.Select() );
}

public void init()
{
	COM com_ExContextMenu,com_Items,com_Node,com_Nodes;
	anytype var_ExContextMenu,var_Items,var_Node,var_Nodes;
	str var_s;
	;

	super();

	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			com_Nodes.Add("Child 1");
			com_Nodes.Add("Child 2");
		com_Node.Expanded(true);
}
12
How we can attach a customized editor, for example, a date-time picker dialog for a date-time attribute using eXMLGrid

// UserEditorClose event - Fired the user editor is about to be opened.
void onEvent_UserEditorClose(COM   _Object,COM   _Node)
{
	// Node.Value = Object.Value
	;
}

// UserEditorOpen event - Occurs when an user editor is about to be opened.
void onEvent_UserEditorOpen(COM   _Object,COM   _Node)
{
	// Object.Value = Node.Value
	;
}

public void init()
{
	COM com_CalendarCombo,com_Editor,com_Editors,com_Node;
	anytype var_CalendarCombo,var_Editor,var_Editors,var_Node;
	;

	super();

	exmlgrid1.NodeHeight(24);
	var_Editors = exmlgrid1.Editors(); com_Editors = var_Editors;
		var_Editor = com_Editors.Add("ExCalendarUserEditor",16/*UserEditorType*/); com_Editor = var_Editor;
			com_Editor.UserEditor("ExCalendar.CalendarCombo","");
			// Add 'ExCalendar 1.0 Control Library(ExCalendar.dll)' reference to your project.
			var_CalendarCombo = com_Editor.UserEditorObject(); com_CalendarCombo = var_CalendarCombo;
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Date"); com_Node = var_Node;
		com_Node.Editor("ExCalendarUserEditor");
		com_Node.Value(COMVariant::createFromDate(str2Date("1/1/2001",213)));
}
11
How can change the visual appearance of the expand/collapse buttons

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Nodes,com_Nodes1;
	anytype var_Node,var_Node1,var_Node2,var_Nodes,var_Nodes1;
	str var_s;
	;

	super();

	var_s = "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql";
	var_s = var_s + "Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0";
	var_s = var_s + "ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN";
	var_s = var_s + "AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=";
	exmlgrid1.Images(COMVariant::createFromStr(var_s));
	exmlgrid1.VisualAppearance().Add(1,"c:\\exontrol\\images\\normal.ebn");
	exmlgrid1.VisualAppearance().Add(2,"c:\\exontrol\\images\\pushed.ebn");
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>1"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = com_Nodes.Add("Child 1"); com_Node1 = var_Node1;
				com_Node1.Value("<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1");
				com_Node1.Selected(true);
			com_Nodes.Add("Child 2");
		com_Node.ExpandAll();
	var_Node2 = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>2"); com_Node2 = var_Node2;
		var_Nodes1 = com_Node2.Nodes(); com_Nodes1 = var_Nodes1;
			com_Nodes1.Add("Child 1");
			com_Nodes1.Add("Child 2");
	exmlgrid1.ExpandBarVisible(true);
	exmlgrid1.ExpandButtons(3/*exCustom*/);
	exmlgrid1.ExpandButtonsCustom(false,1);
	exmlgrid1.ExpandButtonsCustom(true,2);
	exmlgrid1.Background(1/*exExpandButtonDown*/,0x1808080);
	exmlgrid1.Background(0/*exExpandButtonUp*/,0x1000000);
	exmlgrid1.Background(3/*exExpandBarButtonDown*/,0x2808080);
	exmlgrid1.Background(2/*exExpandBarButtonUp*/,0x2000000);
	exmlgrid1.ShowFocusRect(false);
	exmlgrid1.SelBackColor(WinApi::RGB2int(0,0,0));
	exmlgrid1.SelBackColorChild(exmlgrid1.SelBackColor());
	exmlgrid1.SelForeColor(WinApi::RGB2int(255,255,255));
	exmlgrid1.SelForeColorChild(exmlgrid1.SelForeColor());
}
10
How can change the visual appearance of the selected node

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Nodes,com_Nodes1;
	anytype var_Node,var_Node1,var_Node2,var_Nodes,var_Nodes1;
	;

	super();

	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>1"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = com_Nodes.Add("Child 1"); com_Node1 = var_Node1;
				com_Node1.Value("<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1");
				com_Node1.Selected(true);
			com_Nodes.Add("Child 2");
		com_Node.ExpandAll();
	var_Node2 = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>2"); com_Node2 = var_Node2;
		var_Nodes1 = com_Node2.Nodes(); com_Nodes1 = var_Nodes1;
			com_Nodes1.Add("Child 1");
			com_Nodes1.Add("Child 2");
	exmlgrid1.ShowFocusRect(false);
	exmlgrid1.SelBackColor(WinApi::RGB2int(0,0,0));
	exmlgrid1.SelBackColorChild(exmlgrid1.SelBackColor());
	exmlgrid1.SelForeColor(WinApi::RGB2int(255,255,255));
	exmlgrid1.SelForeColorChild(exmlgrid1.SelForeColor());
}
9
How can I select programatically a node

public void init()
{
	COM com_Node,com_Node1,com_Nodes,com_Nodes1;
	anytype var_Node,var_Node1,var_Nodes,var_Nodes1;
	;

	super();

	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>1"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = COM::createFromObject(com_Nodes.Add("Child 1")); com_Node1 = var_Node1;
			com_Node1.Selected(true);
			com_Nodes.Add("Child 2");
		com_Node.ExpandAll();
	var_Node1 = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <b>2"); com_Node1 = var_Node1;
		var_Nodes1 = com_Node1.Nodes(); com_Nodes1 = var_Nodes1;
			com_Nodes1.Add("Child 1");
			com_Nodes1.Add("Child 2");
}
8
How can I expand all nodes

public void init()
{
	COM com_Node,com_Nodes;
	anytype var_Node,var_Nodes;
	;

	super();

	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			com_Nodes.Add("Child 1");
			com_Nodes.Add("Child 2");
		com_Node.ExpandAll();
}
7
Does your control support subscript or superscript

public void init()
{
	COM com_Node,com_Node1,com_Node2,com_Nodes,com_Nodes1;
	anytype var_Node,var_Node1,var_Node2,var_Nodes,var_Nodes1;
	;

	super();

	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <font ;6><off 4>1"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			var_Node1 = com_Nodes.Add("Child 1"); com_Node1 = var_Node1;
				com_Node1.Value("<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1");
			com_Nodes.Add("Child 2");
		com_Node.ExpandAll();
	var_Node2 = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent <font ;6><off 4>2"); com_Node2 = var_Node2;
	var_Nodes1 = com_Node2.Nodes(); com_Nodes1 = var_Nodes1;
		com_Nodes1.Add("Child 1");
		com_Nodes1.Add("Child 2");
}
6
How can I add a UserType editor ( ActiveX )

// UserEditorClose event - Fired the user editor is about to be opened.
void onEvent_UserEditorClose(COM   _Object,COM   _Node)
{
	// Node.Value = Object.Value
	;
}

// UserEditorOpen event - Occurs when an user editor is about to be opened.
void onEvent_UserEditorOpen(COM   _Object,COM   _Node)
{
	// Object.Value = Node.Value
	;
}

public void init()
{
	COM com_Column,com_Column1,com_Columns,com_ComboBox,com_Editor,com_Editors,com_Items,com_Node;
	anytype var_Column,var_Column1,var_Columns,var_ComboBox,var_Editor,var_Editors,var_Items,var_Node;
	;

	super();

	exmlgrid1.NodeHeight(24);
	var_Editors = exmlgrid1.Editors(); com_Editors = var_Editors;
		var_Editor = com_Editors.Add("ExComboUserEditor",16/*UserEditorType*/); com_Editor = var_Editor;
			com_Editor.UserEditor("Exontrol.ComboBox","");
			// Add 'ExComboBox 1.0 Control Library(ExComboBox.dll)' reference to your project.
			var_ComboBox = com_Editor.UserEditorObject(); com_ComboBox = var_ComboBox;
				com_ComboBox.MinHeightList(164);
				com_ComboBox.MinWidthList(264);
				com_ComboBox.AllowSizeGrip(true);
				com_ComboBox.IntegralHeight(true);
				com_ComboBox.Alignment(0/*LeftAlignment*/);
				com_ComboBox.ColumnAutoResize(true);
				com_ComboBox.BeginUpdate();
				com_ComboBox.MarkSearchColumn(false);
				var_Columns = com_ComboBox.Columns(); com_Columns = var_Columns;
					var_Column = COM::createFromVariant(com_Columns.Add("Car")); com_Column = var_Column;
						com_Column.Width(32);
						com_Column.DisplayFilterButton(true);
					var_Column1 = COM::createFromVariant(com_Columns.Add("Equipment")); com_Column1 = var_Column1;
						com_Column1.DisplayFilterButton(true);
						com_Column1.DisplayFilterPattern(false);
						com_Column1.CustomFilter("Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*");
						com_Column1.FilterType(3/*exPattern*/);
				var_Items = com_ComboBox.Items(); com_Items = var_Items;
					com_Items.CellCaption(com_Items.AddItem("Mazda"),COMVariant::createFromInt(1),"Air Bag");
					com_Items.CellCaption(com_Items.AddItem("Toyota"),COMVariant::createFromInt(1),"Air Bag,Air condition");
					com_Items.CellCaption(com_Items.AddItem("Ford"),COMVariant::createFromInt(1),"Air condition");
					com_Items.CellCaption(com_Items.AddItem("Nissan"),COMVariant::createFromInt(1),"Air Bag,ABS,ESP");
				com_ComboBox.EndUpdate();
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Car"); com_Node = var_Node;
		com_Node.Editor("ExComboUserEditor");
		com_Node.Value("Mazda");
}
5
How can I load a XML file

public void init()
{
	;

	super();

	exmlgrid1.LoadXML("C:\\Windows\\Ultimate.xml");
}
4
How can I assign a tooltip to a node

public void init()
{
	COM com_Node;
	anytype var_Node;
	;

	super();

	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Title"); com_Node = var_Node;
		com_Node.Value("value");
		com_Node.ToolTip("This is a bit of <b>HTML</b> text to be shown when the cursor hovers the node.");
}
3
How can I edit the node using a DateType editor

public void init()
{
	COM com_Editor,com_Editors,com_Node;
	anytype var_Editor,var_Editors,var_Node;
	;

	super();

	var_Editors = exmlgrid1.Editors(); com_Editors = var_Editors;
		var_Editor = com_Editors.Add("DateEditor",7/*DateType*/); com_Editor = var_Editor;
			com_Editor.Option(34/*exDateMarkToday*/,COMVariant::createFromBoolean(true));
	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Date"); com_Node = var_Node;
		com_Node.Editor("DateEditor");
		com_Node.Value(COMVariant::createFromDate(str2Date("1/1/2001",213)));
}
2
How can I expand a node

public void init()
{
	COM com_Node,com_Nodes;
	anytype var_Node,var_Nodes;
	;

	super();

	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
		var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
			com_Nodes.Add("Child 1");
			com_Nodes.Add("Child 2");
		com_Node.Expanded(true);
}
1
How can I add a node

public void init()
{
	COM com_Node,com_Nodes;
	anytype var_Node,var_Nodes;
	;

	super();

	var_Node = COM::createFromObject(exmlgrid1.Nodes()).Add("Parent"); com_Node = var_Node;
	var_Nodes = com_Node.Nodes(); com_Nodes = var_Nodes;
		com_Nodes.Add("Child 1");
		com_Nodes.Add("Child 2");
}