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.
procedure TWinForm1.AxXMLGrid1_SelectionChanged(sender: System.Object; e: System.EventArgs);
begin
	// SelectedNode(0).Editor = "edit"
end;

with AxXMLGrid1 do
begin
	Editors.Add('edit',EXMLGRIDLib.EditTypeEnum.EditType);
	Nodes.Add('Parent 1',Nil,Nil);
	with Nodes.Add('Parent 2',Nil,Nil) do
	begin
		Picture := 'pic1';
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(102);
			Add('Child <b>3',Nil,Nil).Value := TObject(103);
		end;
		Expanded := True;
	end;
end
51:
How can I specify a default editor

// AddNode event - Occurs when a node is added to the nodes collection.
procedure TWinForm1.AxXMLGrid1_AddNode(sender: System.Object; e: AxEXMLGRIDLib._IXMLGridEvents_AddNodeEvent);
begin
	// NewNode.Editor = "calc"
end;

with AxXMLGrid1 do
begin
	Editors.Add('calc',EXMLGRIDLib.EditTypeEnum.CalculatorType);
	LoadXML('<numbers><first_number>100</first_number><second_number>200</second_number></numbers>');
	ExpandAll();
end
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.
procedure TWinForm1.AxXMLGrid1_AddNode(sender: System.Object; e: AxEXMLGRIDLib._IXMLGridEvents_AddNodeEvent);
begin
	// NewNode.Editor = "edit"
end;

with AxXMLGrid1 do
begin
	SelForeColorChild := Color.FromArgb(128,128,128);
	Editors.Add('edit',EXMLGRIDLib.EditTypeEnum.EditType);
	LoadXML('http://www.exontrol.net/testing.xml');
	ExpandAll();
end
49:
How can I assign editors to nodes

with AxXMLGrid1 do
begin
	BeginUpdate();
	AllowDuplicateEntries := True;
	with Editors do
	begin
		with Add('name',EXMLGRIDLib.EditTypeEnum.EditType) do
		begin
			Appearance := EXMLGRIDLib.InplaceAppearanceEnum.EtchedApp;
		end;
		with Add('phone',EXMLGRIDLib.EditTypeEnum.MaskType) do
		begin
			Mask := '(###)-######';
			Appearance := EXMLGRIDLib.InplaceAppearanceEnum.EtchedApp;
		end;
		with Add('date',EXMLGRIDLib.EditTypeEnum.DateType) do
		begin
			Appearance := EXMLGRIDLib.InplaceAppearanceEnum.EtchedApp;
		end;
	end;
	with Nodes.Add('Customer',Nil,Nil) do
	begin
		Picture := 'mihai';
		with Nodes do
		begin
			Add('Name','Mihai Filimon',Nil).Editor := 'name';
			Add('Phone','(0744)-845287',Nil).Editor := 'phone';
			Add('BirthDay','12/31/1971',Nil).Editor := 'date';
		end;
		Expanded := True;
	end;
	set_LevelWidth(0,82);
	EndUpdate();
end
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.
procedure TWinForm1.AxXMLGrid1_AddNode(sender: System.Object; e: AxEXMLGRIDLib._IXMLGridEvents_AddNodeEvent);
begin
	// NewNode.Picture = LoadPicture("c:\exontrol\images\colorize.gif")
end;

with AxXMLGrid1 do
begin
	Nodes.Add('Parent 1',Nil,Nil);
	with Nodes.Add('Parent 2',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(102);
			Add('Child <b>3',Nil,Nil).Value := TObject(103);
		end;
		Expanded := True;
	end;
end
47:
How can I assign a picture to a node ( method 3 )

with AxXMLGrid1 do
begin
	set_HTMLPicture('pic1','c:\exontrol\images\zipdisk.gif');
	Nodes.Add('Parent 1',Nil,Nil);
	with Nodes.Add('Parent 2',Nil,Nil) do
	begin
		Picture := 'pic1';
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(102);
			Add('Child <b>3',Nil,Nil).Value := TObject(103);
		end;
		Expanded := True;
	end;
end
46:
How can I save the control's content using a different version of XML DOM
with AxXMLGrid1 do
begin
	d := (ComObj.CreateComObject(ComObj.ProgIDToClassID('Msxml2.DOMDocument.3.0')) as MSXML2.FreeThreadedDOMDocument40);
	LoadXML('<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>');
	SaveXML(d);
	OutputDebugString( d.xml );
	ExpandAll();
end
45:
How can I load the control's content using a different version of XML DOM
with AxXMLGrid1 do
begin
	d := (ComObj.CreateComObject(ComObj.ProgIDToClassID('Msxml2.DOMDocument.3.0')) as MSXML2.FreeThreadedDOMDocument40);
	with d do
	begin
		async := False;
		loadXML('<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>');
	end;
	LoadXML(TObject(d));
	ExpandAll();
end
44:
How can I get the XML string from the control's content
with AxXMLGrid1 do
begin
	d := (ComObj.CreateComObject(ComObj.ProgIDToClassID('MSXML.DOMDocument')) as MSXML2.FreeThreadedDOMDocument40);
	with Nodes.Add('Root',Nil,Nil) do
	begin
		Image := 1;
		with Nodes.Add('Child1',Nil,Nil) do
		begin
			Image := 2;
			Value := 'Value <b>1';
		end;
		with Nodes.Add('Child2',Nil,Nil) do
		begin
			Image := 2;
			Value := 'Value <b>2';
		end;
	end;
	ExpandAll();
	ResizeToFit(TObject(0),Nil);
	SaveXML(d);
	OutputDebugString( d.xml );
end
43:
How can I load the control from a XML DOM object

with AxXMLGrid1 do
begin
	d := (ComObj.CreateComObject(ComObj.ProgIDToClassID('Msxml2.DOMDocument.3.0')) as MSXML2.FreeThreadedDOMDocument40);
	with d do
	begin
		appendChild(createElement('Root'));
		with (childNodes.item[0] as MSXML2.IXMLDOMElement).attributes do
		begin
			setNamedItem(d.createAttribute('Item-1'));
			(item[0] as MSXML2.IXMLDOMAttribute).value := 'value <b>1';
			setNamedItem(d.createAttribute('Item-2'));
			(item[1] as MSXML2.IXMLDOMAttribute).value := 'value <b>2';
		end;
	end;
	LoadXML(TObject(d));
	ExpandAll();
	ResizeToFit(TObject(0),Nil);
	OutputDebugString( d.xml );
end
42:
How can I load XML from http or URL

with AxXMLGrid1 do
begin
	LoadXML('http://www.exontrol.net/testing.xml');
	ExpandAll();
end
41:
How can I load XML from a supplied string

with AxXMLGrid1 do
begin
	LoadXML('<customer><first_name>Joe</first_name><last_name>Smith</last_name></customer>');
	ExpandAll();
end
40:
How do I programatically search for a node
with AxXMLGrid1 do
begin
	Nodes.Add('Parent 1',Nil,Nil);
	with Nodes.Add('Parent 2',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(102);
		end;
	end;
	Nodes.Add('Parent 3',Nil,Nil);
	get_Search('Child 1',TObject(-1)).Selected := True;
end
39:
How can I show the control's selection using your EBN technology

with AxXMLGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'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');
		Add(2,'gBFLBCJwBAEHhEJAEGg4BFIDg6AADACAxRDAMgBQKAAzQFAYahsGCGAAGIYxUgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' + 
	'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQGhsCYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU8lORLUi+M4zSBPcZVTRtGShPDBK' + 
	'TjMKKYgkG4lVpRNa0PC1GTzQ6mazkKQLRADDIDVbAeL3LiMBy9LyLLItSIrFqqaJma7ccgRDj4AY7Ua+czufBZbozOqDYzAey7TDWLRXFDNIzzTgQAyHHrETbHGqzFxM' + 
	'AEa5YGqYpVj2HwzDuQ5oHKIQgggSRAlIYw6B0ThGFGDIAFUDAhBMfZRiGNAkFECZnG4IQdneJwmnsSQrGAAhWAIJBJBIQgFCQIBiEIAglgqYo0i4V4MEgRI9gSToYFSb' + 
	'4Fk6Y4+BmBZhFOJgTC8TBogQAArgqco4muCZOkOMJtgmYpIjYKg7GKE4uCUK4AAKKg2DwI4DiCZw5k6KJ2D6D4OHiag4DwIxiiQAArAqMosnEPBPAOIhOg+DozjIJ4PG' + 
	'SY4iEwPAkhKLhHUUSQsnKFCnkYU9MjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaI' + 
	'CokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEs' + 
	'HJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQgp' + 
	'DOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMhZKEwA5jC6SIyEqfh0kuD4MjAAAwcwBw0iKDwjlKVozmyChPDSThyiMDxGk6awbB6XY1iwfQInkPg0GMEAADEd' + 
	'RDmcVovm8ex3FkPJrH0WJ5w4UAAkcMYMHOaxmjGTxNGcao1jWbYMkcAAMk2RJ7lycxMgMdpEHMTZMnuXBM7uMAOAG1jAED8HAQ47wGjDHgPwEI+RggcGOAmAAqxDj8Do' + 
	'HMTY3BUi7GWPOCAKg3jIBOEIXggBAEBA');
	end;
	ShowFocusRect := False;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelBackColor := $1000000;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelForeColor := $ffffffff;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelBackColorCollapse := $2000000;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelBackColorChild := $ffffffff;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelForeColorChild := $ffffffff;
	AllowDuplicateEntries := True;
	Nodes.Add('Parent 1',Nil,Nil);
	with Nodes.Add('Parent 2',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(102);
		end;
		Expanded := True;
		Selected := True;
	end;
	with Nodes.Add('Parent 3',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(103);
			Add('Child <b>2',Nil,Nil).Value := TObject(104);
		end;
	end;
	Nodes.Add('Parent 4',Nil,Nil);
	EndUpdate();
	set_LevelWidth(0,96);
end
38:
Is it possible to assing a picture to a node (method 2)

with AxXMLGrid1 do
begin
	BeginUpdate();
	set_HTMLPicture('pic1','c:\exontrol\images\zipdisk.gif');
	AlignChildContent := True;
	AllowDuplicateEntries := True;
	SelBackMode := EXMLGRIDLib.BackModeEnum.exTransparent;
	Nodes.Add('Parent 1',Nil,Nil);
	with Nodes.Add('Parent 2',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(102);
		end;
		BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exExpandBackgroundExtState] := 'left[18],client[text=`<img>pic1</img>`,align=0x20]';
		Expanded := True;
	end;
	with Nodes.Add('Parent 3',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(103);
			Add('Child <b>2',Nil,Nil).Value := TObject(104);
		end;
		BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exExpandBackgroundExtState] := 'left[18],client[text=`<img>pic1</img>`,align=0x20]';
		BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exCollapseBackgroundExtState] := 'right[4],client[text=`<img>pic1:19</img>`,align=0x12]';
	end;
	Nodes.Add('Parent 4',Nil,Nil);
	EndUpdate();
	set_LevelWidth(0,96);
end
37:
Is it possible to assing a picture to a node (method 1)

with AxXMLGrid1 do
begin
	BeginUpdate();
	set_HTMLPicture('pic1','c:\exontrol\images\zipdisk.gif');
	AlignChildContent := True;
	AllowDuplicateEntries := True;
	SelBackMode := EXMLGRIDLib.BackModeEnum.exTransparent;
	Nodes.Add('Parent 1',Nil,Nil);
	with Nodes.Add('Parent 2',Nil,Nil) do
	begin
		Picture := AxXMLGrid1.HTMLPicture['pic1'];
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(102);
			Add('Child <b>3',Nil,Nil).Value := TObject(103);
		end;
		Expanded := True;
	end;
	Nodes.Add('Parent 3',Nil,Nil);
	EndUpdate();
end
36:
I get "The key already exists" when adding a new node. What can I do ( method 2 )
with AxXMLGrid1 do
begin
	BeginUpdate();
	with Nodes do
	begin
		Add('Item',Nil,'Key1');
		Add('Item',Nil,'Key2');
		Add('Item',Nil,'Key3');
	end;
	EndUpdate();
end
35:
I get "The key already exists" when adding a new node. What can I do ( method 1 )
with AxXMLGrid1 do
begin
	BeginUpdate();
	AllowDuplicateEntries := True;
	with Nodes do
	begin
		Add('Item',Nil,Nil);
		Add('Item',Nil,Nil);
		Add('Item',Nil,Nil);
	end;
	EndUpdate();
end
34:
How can I mark the node only, without its child

with AxXMLGrid1 do
begin
	BeginUpdate();
	AlignChildContent := True;
	AllowDuplicateEntries := True;
	SelBackMode := EXMLGRIDLib.BackModeEnum.exTransparent;
	Nodes.Add('Parent 1',Nil,Nil);
	with Nodes.Add('Parent 2',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(102);
		end;
		BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exExpandBackgroundExtState] := 'top[20,frame=RGB(0,0,0),framethick]';
		BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exCollapseBackgroundExtState] := BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exExpandBackgroundExtState];
		Expanded := True;
	end;
	Nodes.Add('Parent 3',Nil,Nil);
	EndUpdate();
end
33:
How can I mark the entire node

with AxXMLGrid1 do
begin
	BeginUpdate();
	AlignChildContent := True;
	AllowDuplicateEntries := True;
	SelBackMode := EXMLGRIDLib.BackModeEnum.exTransparent;
	Nodes.Add('Parent 1',Nil,Nil);
	with Nodes.Add('Parent 2',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(102);
		end;
		BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exExpandBackgroundExtState] := '[frame=RGB(0,0,0),framethick]';
		BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exCollapseBackgroundExtState] := BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exExpandBackgroundExtState];
		Expanded := True;
	end;
	Nodes.Add('Parent 3',Nil,Nil);
	EndUpdate();
end
32:
How can I specify aditional information for a node, when it is expanded

with AxXMLGrid1 do
begin
	BeginUpdate();
	AlignChildContent := True;
	SelBackMode := EXMLGRIDLib.BackModeEnum.exTransparent;
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			with Add('Child <b>1',Nil,Nil) do
			begin
				Value := TObject(100);
				BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exCollapseBackgroundExtState] := 'top[2],bottom[2],left[2],right[2],client[pattern=6,frame]';
			end;
			Add('Child <b>2',Nil,Nil).Value := TObject(102);
		end;
		BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exExpandBackgroundExtState] := 'top[4],bottom[4],left[17],right[4],client[text=`<font ;6><fgcolor A0A0A0>Count: 2`,align=0x20]';
		BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exCollapseBackgroundExtState] := 'top[4],bottom[4],left[4],right[4],client[text=`<font ;6><fgcolor A0A0A0>Count: 2`,align=0x02]';
		Expanded := True;
	end;
	ResizeToFit(TObject(0),Nil);
	EndUpdate();
end
31:
Is it possible to show aditional information for a node

with AxXMLGrid1 do
begin
	BeginUpdate();
	AlignChildContent := True;
	SelBackMode := EXMLGRIDLib.BackModeEnum.exTransparent;
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(102);
		end;
		BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exExpandBackgroundExtState] := 'top[4],bottom[4],left[4],right[4],client[text=`<font ;6><fgcolor A0A0A0>Count: 2`,align=0x02]';
		BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exCollapseBackgroundExtState] := BackgroundExt[EXMLGRIDLib.BackgroundExtStateEnum.exExpandBackgroundExtState];
		Expanded := True;
	end;
	ResizeToFit(TObject(0),Nil);
	EndUpdate();
end
30:
How can I hide the expanding bars under each parent node (method 2)

with AxXMLGrid1 do
begin
	BeginUpdate();
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exExpandButtonUp,$ffffffff);
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exExpandButtonDown,$ffffffff);
	AlignChildContent := True;
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			with Add('Child <b>2',Nil,Nil) do
			begin
				with Nodes do
				begin
					Add('Sub Child <b>2.1',Nil,Nil).Value := TObject(101);
					with Add('Sub Child <b>2.2',Nil,Nil) do
					begin
						with Nodes do
						begin
							Add('Sub Child <b>2.1.1',Nil,Nil).Value := TObject(101);
							Add('Sub Child <b>2.2.2',Nil,Nil).Value := TObject(102);
						end;
						Expanded := False;
					end;
				end;
				Expanded := True;
			end;
		end;
		Selected := True;
		Expanded := True;
	end;
	set_LevelWidth(0,64);
	set_LevelWidth(1,96);
	set_LevelWidth(2,96);
	EndUpdate();
end
29:
How can I align the child nodes

with AxXMLGrid1 do
begin
	AlignChildContent := True;
	with Nodes do
	begin
		Add('Parent A',Nil,Nil).Value := TObject(100);
		with Add('Parent B',Nil,Nil) do
		begin
			with Nodes do
			begin
				Add('Child<font ;6><off -4><b>1',Nil,Nil).Value := TObject(101);
				Add('Child<font ;6><off -4><b>2',Nil,Nil).Value := TObject(102);
				with Add('Child<font ;6><off -4><b>3',Nil,Nil) do
				begin
					with Nodes do
					begin
						Add('Node<font ;6><off -4><b>1',Nil,Nil).Value := TObject(103);
						Add('Node<font ;6><off -4><b>2',Nil,Nil).Value := TObject(104);
					end;
				end;
			end;
			Expanded := True;
			Selected := True;
		end;
	end;
end
28:
How do I change the control's visual appearance using the UI Visual Designer
with AxXMLGrid1 do
begin
	BeginUpdate();
	AllowDuplicateEntries := True;
	ShowFocusRect := False;
	GridLinesColor := Color.FromArgb(128,128,128);
	with Nodes do
	begin
		with Add('Parent A',Nil,Nil) do
		begin
			with Nodes do
			begin
				Add('Child<font ;6><off -4><b>1',Nil,Nil).Value := TObject(100);
				Add('Child<font ;6><off -4><b>2',Nil,Nil).Value := TObject(101);
				with Add('Child<font ;6><off -4><b>3',Nil,Nil) do
				begin
					with Nodes do
					begin
						Add('Node<font ;6><off -4><b>1',Nil,Nil).Value := TObject(102);
						Add('Node<font ;6><off -4><b>2',Nil,Nil).Value := TObject(103);
					end;
				end;
			end;
			Expanded := True;
			Selected := True;
		end;
		Add('Parent B',Nil,Nil).Nodes.Add(1,Nil,Nil);
	end;
	set_LevelWidth(0,96);
	VisualDesign := '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';
	EndUpdate();
end
27:
How do I specify to search for name of the nodes only, when the user filters the control

with AxXMLGrid1 do
begin
	BeginUpdate();
	FilterBarPromptVisible := EXMLGRIDLib.FilterBarVisibleEnum.exFilterBarVisible;
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child<font ;6><off -4><b>1',Nil,Nil).Value := TObject(100);
			Add('Child<font ;6><off -4><b>2',Nil,Nil).Value := TObject(101);
			with Add('Child<font ;6><off -4><b>3',Nil,Nil).Nodes do
			begin
				Add('Node<font ;6><off -4><b>1',Nil,Nil).Value := TObject(102);
				Add('Node<font ;6><off -4><b>2',Nil,Nil).Value := TObject(103);
			end;
		end;
		Expanded := True;
	end;
	AutoSearch := EXMLGRIDLib.AutoSearchEnum.exContains;
	FilterBarPromptType := Integer(EXMLGRIDLib.FilterPromptEnum.exFilterPromptApplyOnName) Or Integer(EXMLGRIDLib.FilterPromptEnum.exFilterPromptStartWith);
	FilterBarPromptPattern := 'No';
	EndUpdate();
end
26:
Is it possible to include child-nodes, when do filtering

with AxXMLGrid1 do
begin
	BeginUpdate();
	FilterBarPromptVisible := EXMLGRIDLib.FilterBarVisibleEnum.exFilterBarVisible;
	HideSelection := EXMLGRIDLib.HideSelectionEnum.exHideAlways;
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child<font ;6><off -4><b>1',Nil,Nil).Value := TObject(100);
			Add('Child<font ;6><off -4><b>2',Nil,Nil).Value := TObject(101);
			with Add('Child<font ;6><off -4><b>3',Nil,Nil).Nodes do
			begin
				Add('Node<font ;6><off -4><b>1',Nil,Nil).Value := TObject(102);
				Add('Node<font ;6><off -4><b>2',Nil,Nil).Value := TObject(103);
			end;
		end;
		Expanded := True;
	end;
	AutoSearch := EXMLGRIDLib.AutoSearchEnum.exAnyContains;
	FilterBarPromptType := Integer(EXMLGRIDLib.FilterPromptEnum.exFilterPromptIncludeChild) Or Integer(EXMLGRIDLib.FilterPromptEnum.exFilterPromptApplyOnValue) Or Integer(EXMLGRIDLib.FilterPromptEnum.exFilterPromptApplyOnName) Or Integer(EXMLGRIDLib.FilterPromptEnum.exFilterPromptContainsAny);
	FilterBarPromptPattern := 'Child3';
	EndUpdate();
end
25:
How can I change the control's filtering so it searches for Contains rather than Start

with AxXMLGrid1 do
begin
	BeginUpdate();
	FilterBarPromptVisible := EXMLGRIDLib.FilterBarVisibleEnum.exFilterBarVisible;
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child<font ;6><off -4><b>1',Nil,Nil).Value := TObject(100);
			Add('Child<font ;6><off -4><b>2',Nil,Nil).Value := TObject(101);
			with Add('Child<font ;6><off -4><b>3',Nil,Nil).Nodes do
			begin
				Add('Node<font ;6><off -4><b>1',Nil,Nil).Value := TObject(102);
				Add('Node<font ;6><off -4><b>2',Nil,Nil).Value := TObject(103);
			end;
		end;
		Expanded := True;
	end;
	AutoSearch := EXMLGRIDLib.AutoSearchEnum.exAnyContains;
	FilterBarPromptType := Integer(EXMLGRIDLib.FilterPromptEnum.exFilterPromptApplyOnValue) Or Integer(EXMLGRIDLib.FilterPromptEnum.exFilterPromptApplyOnName) Or Integer(EXMLGRIDLib.FilterPromptEnum.exFilterPromptContainsAny);
	FilterBarPromptPattern := 'Child3';
	EndUpdate();
end
24:
How do I enable the control's filtering support

with AxXMLGrid1 do
begin
	BeginUpdate();
	FilterBarPromptVisible := EXMLGRIDLib.FilterBarVisibleEnum.exFilterBarVisible;
	HideSelection := EXMLGRIDLib.HideSelectionEnum.exHideAlways;
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(101);
			Add('Child <b>3',Nil,Nil).Value := TObject(102);
		end;
		Expanded := True;
	end;
	EndUpdate();
end
23:
How can I hide the expanding bars under each parent node (method 1)

with AxXMLGrid1 do
begin
	BeginUpdate();
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAChABDEMACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXI' + 
	'UBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhT' + 
	'SYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4k' + 
	'jGY4vnQeAEBaCYOkQYYslYCpvA+D5FmSc55j0PhfF8eYHlwQZ2nQTImDsFRaioVB9j8Hx/k+c53n4fogAeTJFHuXY3HCTAygyAociMKBKEKBIeCiCZyHYEAnCEOBUh+B' + 
	'QhBgNIegKCgYBySAgh2SAUgINAMmMNIgCcCYjn4KoKmKSI2C6CpiHIagkDMYgCAoIg1A0IxEhsJgJFiPg+g+Y4yFYOA0GMWIIloNhNGIaIXCUI5CE4SwkEkchOFCFIlB' + 
	'kThQCUCQZDYSglCQcxaEUX5IBmBJhDeDZZDYOwlgmQhghaGZmkmKhnhoZo5ioTYYk2WYEgEYAnGOGJlDkCQyECDqfCkNoCCUSQ6A6BYhCgCZ0g6HoOEmWR9GFYw4m0Ow' + 
	'IlIJIHCRc4shGJhpjoaocieaZiC6GAimkUgehIOwnGYEYGGiah6jaE4rg6SpCjKK5rEOMYjGGGIChKOgglmdoij6L5aEYfo6CkGIEAQgIA==');
	VisualAppearance.Add(2,'gBFLBCJwBAEHhEJAAChABC0MACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXI' + 
	'UBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhT' + 
	'SYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4k' + 
	'jGY4vnQeAEBaCYOkQYYslYCpvA+D5FmQf56D0PhPF+G5Fl4YZ3BAfY9BMKYOkUVoqhUH4PleZ53mkehfjgBZ9H4XxTBWcR2l2QwwkoMgKHKDIhCkCgSHiIgnkmWBMhwf' + 
	'5egglInGEAh6A0KBgiMIICHdLIIlAM4MlKAIcCaIYIjYLoLGKIhqCcMxiR8JQ1A0IxEhsJgJFiPg+guI4yFYOA0GMWIUloNhNGIaIXCUI5CE4SwkEkchMhGCxlBkQIUC' + 
	'QZJZCiFIRk0aQVH8IBmAOBJeDcZJYmyFgnAmAhaGaCxmGmIhqhoZJZgiXYYAgFgCHQOYOFOEITCQCJpCyEoTVUNoACUZJiFCEoekiaZgmSHQXlYEh0DuDpTjCDQiEgch' + 
	'Ag0IpJBoXoZiYKYqHaHAimkYguhMIZpAOMh0GEGBmg6JYqmkGowmyK4rAqNoyDsGg2BmCApCuAgNh8agrkqdYkGea4ChGCBAEAgI');
	VisualAppearance.Add(3,'gBFLBCJwBAEHhEJAAChABa8GACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIzkKJpAAiCRQGiYZyHKcxMYgQrAZBEbKMLwrAYUIRCCaofA' + 
	'AGIaRDIcZPXQjZSMdSkHRpKi6Mo2TpPUpSDpUM6VCL3KhqKxXeq1cp2XpfWBYNhVbTafyyaiqKiSWy0EQRBSDXBcNxXHalazhNpCbTSWoqLrhRzDMCwC6rUwCeYJQzCc' + 
	'LxLCcMwjA5/MDeFLXCwjBJ+W5aFhzBYsbx1NKcZ7nWgaAqOKp/OKnECuBh2EYNMywK5rew7BqTf5tW7ZNx2TYNMYPKiDajcDJMOwqWpUVDjOQ4fidXzfSbPcrxfBsLp/' + 
	'FOKhmDKGQKHUGoFEiIRPCiE5pl8ChzhuNpyHgU49mSdxtEOWBkCCNRdGQExBhyTRQCcExeG+X5zneeAmh8Uw1nEIIfDMUJSDQSYyGCFR/GCR5yAkJRgGMRgDHyTYjGSV' + 
	'gmgkchSAoJJhhIRIXCSSQXm4H4HgkQhGBuBgJEgVJWgSVJSAYLg4E2Yx2BuAhJGIcIYCWIxHm4NINiOCJeBuDANliOIBFOJAjhiZQ5AkMhAg6BhJCgbgbH6ZJiFYHAlA' + 
	'kKQkg6EYOEkCRLFTQw4m0OwIlIJIHCRVAshGGRmHmGhohqZoiC4ZAimYEgeF4OwkCUSRUFwZw5mYX4eg6SZyH6HpoAOMRxFUFRihKBgglaVZagqIpXCWNoGCkFRkAQgI' + 
	'');
	HideSelection := EXMLGRIDLib.HideSelectionEnum.exHideAlways;
	ExpandButtons := EXMLGRIDLib.ExpandButtonEnum.exCustom;
	set_ExpandButtonsCustom(True,16777216);
	set_ExpandButtonsCustom(False,33554432);
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exExpandButtonUp,$3000000);
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exExpandButtonDown,$3000000);
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			with Add('Child <b>2',Nil,Nil) do
			begin
				with Nodes do
				begin
					Add('Sub Child <b>2.1',Nil,Nil).Value := TObject(101);
					with Add('Sub Child <b>2.2',Nil,Nil) do
					begin
						with Nodes do
						begin
							Add('Sub Child <b>2.1.1',Nil,Nil).Value := TObject(101);
							Add('Sub Child <b>2.2.2',Nil,Nil).Value := TObject(102);
						end;
						Expanded := False;
					end;
				end;
				Expanded := True;
			end;
		end;
		Selected := True;
		Expanded := True;
	end;
	set_LevelWidth(0,64);
	set_LevelWidth(1,96);
	set_LevelWidth(2,96);
	EndUpdate();
end
22:
How can I change the visual appearance for expand/collapse buttons

with AxXMLGrid1 do
begin
	BeginUpdate();
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAChABDEMACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXI' + 
	'UBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhT' + 
	'SYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4k' + 
	'jGY4vnQeAEBaCYOkQYYslYCpvA+D5FmSc55j0PhfF8eYHlwQZ2nQTImDsFRaioVB9j8Hx/k+c53n4fogAeTJFHuXY3HCTAygyAociMKBKEKBIeCiCZyHYEAnCEOBUh+B' + 
	'QhBgNIegKCgYBySAgh2SAUgINAMmMNIgCcCYjn4KoKmKSI2C6CpiHIagkDMYgCAoIg1A0IxEhsJgJFiPg+g+Y4yFYOA0GMWIIloNhNGIaIXCUI5CE4SwkEkchOFCFIlB' + 
	'kThQCUCQZDYSglCQcxaEUX5IBmBJhDeDZZDYOwlgmQhghaGZmkmKhnhoZo5ioTYYk2WYEgEYAnGOGJlDkCQyECDqfCkNoCCUSQ6A6BYhCgCZ0g6HoOEmWR9GFYw4m0Ow' + 
	'IlIJIHCRc4shGJhpjoaocieaZiC6GAimkUgehIOwnGYEYGGiah6jaE4rg6SpCjKK5rEOMYjGGGIChKOgglmdoij6L5aEYfo6CkGIEAQgIA==');
	VisualAppearance.Add(2,'gBFLBCJwBAEHhEJAAChABC0MACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzXI' + 
	'UBxAAqXZZFUaKAgOMJDTLBAzUTCUKx7HynQACCCaTpGVo8hYhEoDJKMdB1HIZIwyBBcqBNWTFdLAAJFKTdKAMIyiGp4DbudjyXg6V5OTblez9P7AMBvS6nKrhcp2PrhT' + 
	'SYWr+Gp5R7IMhyLI8Uw/DS/Yq1GDYIiuOoIQhCUD0LQ9EyXJqnaJnaC5aiuCT7VRjWDYFgFdTpQC8bZuGz7Trmd59XTadhYHSsAyNRDCL6tayLDxSZabZ5aOa6HoOS4k' + 
	'jGY4vnQeAEBaCYOkQYYslYCpvA+D5FmQf56D0PhPF+G5Fl4YZ3BAfY9BMKYOkUVoqhUH4PleZ53mkehfjgBZ9H4XxTBWcR2l2QwwkoMgKHKDIhCkCgSHiIgnkmWBMhwf' + 
	'5egglInGEAh6A0KBgiMIICHdLIIlAM4MlKAIcCaIYIjYLoLGKIhqCcMxiR8JQ1A0IxEhsJgJFiPg+guI4yFYOA0GMWIUloNhNGIaIXCUI5CE4SwkEkchMhGCxlBkQIUC' + 
	'QZJZCiFIRk0aQVH8IBmAOBJeDcZJYmyFgnAmAhaGaCxmGmIhqhoZJZgiXYYAgFgCHQOYOFOEITCQCJpCyEoTVUNoACUZJiFCEoekiaZgmSHQXlYEh0DuDpTjCDQiEgch' + 
	'Ag0IpJBoXoZiYKYqHaHAimkYguhMIZpAOMh0GEGBmg6JYqmkGowmyK4rAqNoyDsGg2BmCApCuAgNh8agrkqdYkGea4ChGCBAEAgI');
	HideSelection := EXMLGRIDLib.HideSelectionEnum.exHideAlways;
	ExpandButtons := EXMLGRIDLib.ExpandButtonEnum.exCustom;
	set_ExpandButtonsCustom(True,16777216);
	set_ExpandButtonsCustom(False,33554432);
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			with Add('Child <b>2',Nil,Nil) do
			begin
				with Nodes do
				begin
					Add('Sub Child <b>2.1',Nil,Nil).Value := TObject(101);
					with Add('Sub Child <b>2.2',Nil,Nil) do
					begin
						with Nodes do
						begin
							Add('Sub Child <b>2.1.1',Nil,Nil).Value := TObject(101);
							Add('Sub Child <b>2.2.2',Nil,Nil).Value := TObject(102);
						end;
						Expanded := False;
					end;
				end;
				Expanded := True;
			end;
		end;
		Selected := True;
		Expanded := True;
	end;
	set_LevelWidth(0,64);
	set_LevelWidth(1,96);
	set_LevelWidth(2,96);
	EndUpdate();
end
21:
Does your control support transparent selection

with AxXMLGrid1 do
begin
	BeginUpdate();
	SelBackMode := EXMLGRIDLib.BackModeEnum.exTransparent;
	SelBackColorChild := SelBackColor;
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			with Add('Child <b>2',Nil,Nil) do
			begin
				with Nodes do
				begin
					Add('Sub Child <b>2.1',Nil,Nil).Value := TObject(101);
					with Add('Sub Child <b>2.2',Nil,Nil) do
					begin
						with Nodes do
						begin
							Add('Sub Child <b>2.1.1',Nil,Nil).Value := TObject(101);
							Add('Sub Child <b>2.2.2',Nil,Nil).Value := TObject(102);
						end;
						Expanded := True;
					end;
				end;
				Expanded := True;
			end;
		end;
		Selected := True;
		Expanded := True;
	end;
	set_LevelWidth(0,64);
	set_LevelWidth(1,96);
	set_LevelWidth(2,96);
	EndUpdate();
end
20:
How can I show the selection with some transparent marker

with AxXMLGrid1 do
begin
	BeginUpdate();
	AllowDuplicateEntries := True;
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(101);
		end;
		Selected := True;
		Expanded := True;
	end;
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(101);
		end;
	end;
	set_LevelWidth(0,64);
	set_LevelWidth(1,96);
	set_LevelWidth(2,96);
	ShowFocusRect := False;
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAChABdcGACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYJhGBQxAJCI4DBCIZBwGKQBjASQpUhqHYDTbIMByBI' + 
	'UIxMGiYIRoGAxTiAMo8RrSEZTdD8ExTAZ/XzfMAKRpOFo/ULEUw0NR8aRABiNQbkWjYDp1f5nVRaFTxYKoSxbNqIRpGCzoJrKdI1SBEMTWBAddSdBKzX7tHArLgSQJdS' + 
	'rLMrzDIka4cACcZxkCioXozBpZVjRMaZJC2KAbMaBQgsQALGqjAaVUJQEgZTTmHS/BLPYDsLQdDyXAqnYTkFwWZa4ATtOK5b6jK6dQgmfAAaJGWzYHpGL4QGCYZKGapM' + 
	'gsKaVmwYp8j2RoCCWB4VHQIQjD6FIjF2RpumyewRj6XYrjoMpdk4Pgbm4DZXmmSpRnWeJ9hiN4zAkSRCECBAkFAGhGDGUB1ByBhVGUCxAkQIQ2AsRZRFQDAoEIXoXCUI' + 
	'QGBSNg9BoYBNjMbJ/DGTBznyQAwCIKISCOCRigiHgqgmIhIgCfw3k2dgFn6DAihiMg1g2Yo4mINoNBCEwMkOCgPDOTgyhCZBJBYRIQTGmYOGQaQ2E6EQjhkLg2hOZRJD' + 
	'oURAmSSRWFqEJlHAAhZhaZgJHYX4YCWKYKFOGQljmGgohoJoYloUoambTxqgmZwZkoboWCYeZWFaHaOBDRIkCmahDhIIh5nmfoHGOKgmDmIpjGiHoIEIVQjnyXA3A+cw' + 
	'gkiIooloZgoiWD5zgCYIMhCFAEIC');
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelBackColor := $1000000;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelForeColor := $ffffffff;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelBackColorChild := $ffffffff;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelForeColorChild := $ffffffff;
	EndUpdate();
end
19:
How can I highlight the focused/selected node only, instead highlighting its childrend collection (method 3)

with AxXMLGrid1 do
begin
	BeginUpdate();
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(101);
		end;
		Selected := True;
		Expanded := True;
	end;
	set_LevelWidth(0,64);
	set_LevelWidth(1,96);
	set_LevelWidth(2,96);
	ShowFocusRect := False;
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAChABGYDg6AADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjAIoBQ4GACJBmKKodgONYYTLFYCwTJ' + 
	'ETw5FKEZTEWQBTjGOY5TbNcgUPCMex7IiVJYpOK6ThqTYfQjLUBvfTgAS4f6Laaneg4JDOUYtTjIADRWBMeSxAatK6rWr7BqOYoDUJZcQyDIcNzXAa9aLjO5wAiWPp4V' + 
	'JZM54FKVEzfQSrZqoDIrEgOZpBYjMdSgADFXQGDbHbhuS5IWwTBpQZhaGZQTb+mZtZ7oMI6HTuSztW7EMLAC6bJx7LoDazoGKSDo0TZRXLNYqzPIdf4OVq4YTxVi2PZG' + 
	'nmLJfGwOY8m2NhTAmPJcmAZBbmiDo3DuW4ZEgAQQhKAYkkYdA6hyDIjBkAIqBgQgmn0YxRFgGIjF8CRwhOB4ZAkPQdFYMRfCsYICFYCgkEkEhCA0JDeEICglgqYo0i4X' + 
	'QMEgZI9gaToYHSb4Hk6Y4+CGB5hlOJgbC8TBoiQAArgqco4muC5OkOMJtguYxIlYMg7GME4uC0K4AAKKg+DwJADiCZw5k6KQWEaEYOHkChADwI5izIKwKjKzQ8E8A4iF' + 
	'aEYOjOMgvhEZRjiIVA8CUEouE9SRJEycoWCMCJmFvUAzkYZArAACAgi0PInEkGhauKCYsmqHQPCmSAAgsSp5lCc4dg6WgUm6DkQhicw8g8OiDiwKQDk6EoNCgU40m6JZ' + 
	'pFiUoSDyaQCokLIqAobh3iWKRogaB4MmWKhsjMLJLCAAorCyagokYIoImsM46DEOwPEoSovABZR0nSL5pFgfgfhALAqFaPw9CuUrgC2CxSlidQ9E8SoSkSEpsZXj5LFs' + 
	'NAAC2bZLDydYwiaW4GFOMIPGsPpcC2QACmSOQuA8a42EvYoZnKcVsAOPJwD0bpSmKagAAuO52m0PYsCmcoLkCLhLjSOwuguIAAjyQpvnkLobkOaQpC6f5CkuQAAj6BpP' + 
	'HwZwCkQKYzkqcQ9k8Y5cj2RejH8JpGE8eZykeSprnmcwoC+TADAAAJMEwA5jDaSoyksHh8rmDLgDBzoHDyJIPCOUpejWbQKG8PJQHMIwPE6UJrhsPpljeLJ9CieQ+DSY' + 
	'wQAAMR1kOZxejGb57hcYQ8mufR4nmVwMFAAJHDGDBzmsbozk8TYHHKN42G2LJHAADJNmSe5enOTIjH6Rhzk2Nke4vBMt8GAHADY5wbgUD8HEQ47wOjHHiPwMI+RigcGO' + 
	'AmAorgjj8EIHMTY3B0i7GePQDoBwdBvGSCcIQ6BACAIC');
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelBackColor := $1000000;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelForeColor := $ffffffff;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelBackColorChild := $ffffffff;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelForeColorChild := $ffffffff;
	EndUpdate();
end
18:
How can I highlight the focused/selected node only, instead highlighting its childrend collection (method 2)

with AxXMLGrid1 do
begin
	BeginUpdate();
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(101);
		end;
		Selected := True;
		Expanded := True;
	end;
	set_LevelWidth(0,64);
	set_LevelWidth(1,96);
	set_LevelWidth(2,96);
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAChABJUIQAAYAQGKIaBoAKBQAGaAoDDQMw1QwAAwjSK0EwsACEIrjKCRShyCYZRhGcTSAAUEhiGKQBgiGDhViWAwyDABEbwS78agBFyRlqyfKccx' + 
	'9DaAQEBA');
	ShowFocusRect := False;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelBackColor := $1a0a0a0;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelForeColor := $ffffffff;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelBackColorChild := $ffffffff;
	(GetOcx() as EXMLGRIDLib.XMLGrid).SelForeColorChild := $ffffffff;
	EndUpdate();
end
17:
How can I highlight the focused/selected node only, instead highlighting its childrend collection (method 1)

with AxXMLGrid1 do
begin
	BeginUpdate();
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child <b>1',Nil,Nil).Value := TObject(100);
			Add('Child <b>2',Nil,Nil).Value := TObject(101);
		end;
		Selected := True;
		Expanded := True;
	end;
	set_LevelWidth(0,64);
	set_LevelWidth(1,96);
	set_LevelWidth(2,96);
	HideSelection := EXMLGRIDLib.HideSelectionEnum.exHideAlways;
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAChABdcGACAADACAxRDQNABQKAAzQFAYaBmGqGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYJhGBQxAJCI4DBCIZBwGKQBjASQpUhqHYDTbIMByBI' + 
	'UIxMGiYIRoGAxTiAMo8RrSEZTdD8ExTAZ/XzfMAKRpOFo/ULEUw0NR8aRABiNQbkWjYDp1f5nVRaFTxYKoSxbNqIRpGCzoJrKdI1SBEMTWBAddSdBKzX7tHArLgSQJdS' + 
	'rLMrzDIka4cACcZxkCioXozBpZVjRMaZJC2KAbMaBQgsQALGqjAaVUJQEgZTTmHS/BLPYDsLQdDyXAqnYTkFwWZa4ATtOK5b6jK6dQgmfAAaJGWzYHpGL4QGCYZKGapM' + 
	'gsKaVmwYp8j2RoCCWB4VHQIQjD6FIjF2RpumyewRj6XYrjoMpdk4Pgbm4DZXmmSpRnWeJ9hiN4zAkSRCECBAkFAGhGDGUB1ByBhVGUCxAkQIQ2AsRZRFQDAoEIXoXCUI' + 
	'QGBSNg9BoYBNjMbJ/DGTBznyQAwCIKISCOCRigiHgqgmIhIgCfw3k2dgFn6DAihiMg1g2Yo4mINoNBCEwMkOCgPDOTgyhCZBJBYRIQTGmYOGQaQ2E6EQjhkLg2hOZRJD' + 
	'oURAmSSRWFqEJlHAAhZhaZgJHYX4YCWKYKFOGQljmGgohoJoYloUoambTxqgmZwZkoboWCYeZWFaHaOBDRIkCmahDhIIh5nmfoHGOKgmDmIpjGiHoIEIVQjnyXA3A+cw' + 
	'gkiIooloZgoiWD5zgCYIMhCFAEIC');
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exShowFocusRect,$1000000);
	EndUpdate();
end
16:
How do I enable the scrollbar-extension, as thumb to be shown outside of the control's client area

with AxXMLGrid1 do
begin
	BeginUpdate();
	with Nodes.Add('Parent <font ;6><off 4>1',Nil,Nil) do
	begin
		with Nodes do
		begin
			with Add('Child 1',Nil,Nil) do
			begin
				Value := '<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1';
			end;
			Add('Child 2',Nil,Nil);
		end;
		ExpandAll();
	end;
	with Nodes.Add('Parent <font ;6><off 4>2',Nil,Nil).Nodes do
	begin
		Add('Child 1',Nil,Nil);
		Add('Child 2',Nil,Nil);
	end;
	ScrollBars := EXMLGRIDLib.ScrollBarsEnum.exBoth;
	set_ScrollPartVisible(EXMLGRIDLib.ScrollBarEnum.exVScroll,EXMLGRIDLib.ScrollPartEnum.exExtentThumbPart,True);
	set_ScrollPartVisible(EXMLGRIDLib.ScrollBarEnum.exHScroll,EXMLGRIDLib.ScrollPartEnum.exExtentThumbPart,True);
	set_ScrollPartVisible(EXMLGRIDLib.ScrollBarEnum($2),EXMLGRIDLib.ScrollPartEnum.exExtentThumbPart,True);
	ScrollWidth := 4;
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exVSBack,$f0f0f0);
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exVSThumb,$808080);
	ScrollHeight := 4;
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exHSBack,get_Background(EXMLGRIDLib.BackgroundPartEnum.exVSBack));
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exHSThumb,get_Background(EXMLGRIDLib.BackgroundPartEnum.exVSThumb));
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exScrollSizeGrip,get_Background(EXMLGRIDLib.BackgroundPartEnum.exVSBack));
	EndUpdate();
end
15:
Does your control support Fit-To-Page, Print and Print-Preview

with AxXMLGrid1 do
begin
	with Nodes.Add('Parent <b>1',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child 1',Nil,Nil).Selected := True;
			Add('Child 2',Nil,Nil);
		end;
		ExpandAll();
	end;
	with Nodes.Add('Parent <b>2',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child 1',Nil,Nil);
			Add('Child 2',Nil,Nil);
		end;
	end;
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print')) as EXPRINTLib.Print) do
	begin
		Options := 'FitToPage = 1x1';
		PrintExt := (AxXMLGrid1.GetOcx() as EXMLGRIDLib.XMLGrid).DefaultDispatch;
		Preview();
	end;
end
14:
How do I print the control
with AxXMLGrid1 do
begin
	with Nodes.Add('Parent <b>1',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child 1',Nil,Nil).Selected := True;
			Add('Child 2',Nil,Nil);
		end;
		ExpandAll();
	end;
	with Nodes.Add('Parent <b>2',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child 1',Nil,Nil);
			Add('Child 2',Nil,Nil);
		end;
	end;
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print')) as EXPRINTLib.Print) do
	begin
		PrintExt := (AxXMLGrid1.GetOcx() as EXMLGRIDLib.XMLGrid).DefaultDispatch;
		Preview();
	end;
end
13:
How can we can customize a context menu based on the node type

// MouseUp event - Occurs when the user releases a mouse button.
procedure TWinForm1.AxXMLGrid1_MouseUpEvent(sender: System.Object; e: AxEXMLGRIDLib._IXMLGridEvents_MouseUpEvent);
begin
	with AxXMLGrid1 do
	begin
		OutputDebugString( 'Node:' );
		OutputDebugString( get_NodeFromPoint(e.x,e.y) );
		with (ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ContextMenu')) as EXCONTEXTMENULib.ExContextMenu) do
		begin
			Items.ToString := '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' + 
		'dio 3[id=102][typ=2][edit=],ComboBox[id=90]';
			OutputDebugString( Select(Nil,Nil,Nil) );
		end;
	end
end;

with AxXMLGrid1 do
begin
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child 1',Nil,Nil);
			Add('Child 2',Nil,Nil);
		end;
		Expanded := True;
	end;
end
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.
procedure TWinForm1.AxXMLGrid1_UserEditorClose(sender: System.Object; e: AxEXMLGRIDLib._IXMLGridEvents_UserEditorCloseEvent);
begin
	// Node.Value = Object.Value
end;

// UserEditorOpen event - Occurs when an user editor is about to be opened.
procedure TWinForm1.AxXMLGrid1_UserEditorOpen(sender: System.Object; e: AxEXMLGRIDLib._IXMLGridEvents_UserEditorOpenEvent);
begin
	// Object.Value = Node.Value
end;

with AxXMLGrid1 do
begin
	NodeHeight := 24;
	with Editors do
	begin
		with Add('ExCalendarUserEditor',EXMLGRIDLib.EditTypeEnum.UserEditorType) do
		begin
			UserEditor('ExCalendar.CalendarCombo','');
			with (UserEditorObject as EXCALENDARLib.CalendarCombo) do
			begin
			end;
		end;
	end;
	with Nodes.Add('Date',Nil,Nil) do
	begin
		Editor := 'ExCalendarUserEditor';
		Value := '1/1/2001';
	end;
end
11:
How can change the visual appearance of the expand/collapse buttons

with AxXMLGrid1 do
begin
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
	VisualAppearance.Add(2,'c:\exontrol\images\pushed.ebn');
	with Nodes.Add('Parent <b>1',Nil,Nil) do
	begin
		with Nodes do
		begin
			with Add('Child 1',Nil,Nil) do
			begin
				Value := '<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1';
				Selected := True;
			end;
			Add('Child 2',Nil,Nil);
		end;
		ExpandAll();
	end;
	with Nodes.Add('Parent <b>2',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child 1',Nil,Nil);
			Add('Child 2',Nil,Nil);
		end;
	end;
	ExpandBarVisible := True;
	ExpandButtons := EXMLGRIDLib.ExpandButtonEnum.exCustom;
	set_ExpandButtonsCustom(False,1);
	set_ExpandButtonsCustom(True,2);
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exExpandButtonDown,$1808080);
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exExpandButtonUp,$1000000);
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exExpandBarButtonDown,$2808080);
	set_Background(EXMLGRIDLib.BackgroundPartEnum.exExpandBarButtonUp,$2000000);
	ShowFocusRect := False;
	SelBackColor := Color.FromArgb(0,0,0);
	SelBackColorChild := SelBackColor;
	SelForeColor := Color.FromArgb(255,255,255);
	SelForeColorChild := SelForeColor;
end
10:
How can change the visual appearance of the selected node

with AxXMLGrid1 do
begin
	with Nodes.Add('Parent <b>1',Nil,Nil) do
	begin
		with Nodes do
		begin
			with Add('Child 1',Nil,Nil) do
			begin
				Value := '<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1';
				Selected := True;
			end;
			Add('Child 2',Nil,Nil);
		end;
		ExpandAll();
	end;
	with Nodes.Add('Parent <b>2',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child 1',Nil,Nil);
			Add('Child 2',Nil,Nil);
		end;
	end;
	ShowFocusRect := False;
	SelBackColor := Color.FromArgb(0,0,0);
	SelBackColorChild := SelBackColor;
	SelForeColor := Color.FromArgb(255,255,255);
	SelForeColorChild := SelForeColor;
end
9:
How can I select programatically a node

with AxXMLGrid1 do
begin
	with Nodes.Add('Parent <b>1',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child 1',Nil,Nil).Selected := True;
			Add('Child 2',Nil,Nil);
		end;
		ExpandAll();
	end;
	with Nodes.Add('Parent <b>2',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child 1',Nil,Nil);
			Add('Child 2',Nil,Nil);
		end;
	end;
end
8:
How can I expand all nodes

with AxXMLGrid1 do
begin
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child 1',Nil,Nil);
			Add('Child 2',Nil,Nil);
		end;
		ExpandAll();
	end;
end
7:
Does your control support subscript or superscript

with AxXMLGrid1 do
begin
	with Nodes.Add('Parent <font ;6><off 4>1',Nil,Nil) do
	begin
		with Nodes do
		begin
			with Add('Child 1',Nil,Nil) do
			begin
				Value := '<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1';
			end;
			Add('Child 2',Nil,Nil);
		end;
		ExpandAll();
	end;
	with Nodes.Add('Parent <font ;6><off 4>2',Nil,Nil).Nodes do
	begin
		Add('Child 1',Nil,Nil);
		Add('Child 2',Nil,Nil);
	end;
end
6:
How can I add a UserType editor ( ActiveX )

// UserEditorClose event - Fired the user editor is about to be opened.
procedure TWinForm1.AxXMLGrid1_UserEditorClose(sender: System.Object; e: AxEXMLGRIDLib._IXMLGridEvents_UserEditorCloseEvent);
begin
	// Node.Value = Object.Value
end;

// UserEditorOpen event - Occurs when an user editor is about to be opened.
procedure TWinForm1.AxXMLGrid1_UserEditorOpen(sender: System.Object; e: AxEXMLGRIDLib._IXMLGridEvents_UserEditorOpenEvent);
begin
	// Object.Value = Node.Value
end;

with AxXMLGrid1 do
begin
	NodeHeight := 24;
	with Editors do
	begin
		with Add('ExComboUserEditor',EXMLGRIDLib.EditTypeEnum.UserEditorType) do
		begin
			UserEditor('Exontrol.ComboBox','');
			with (UserEditorObject as EXCOMBOBOXLib.ComboBox) do
			begin
				MinHeightList := 164;
				MinWidthList := 264;
				AllowSizeGrip := True;
				IntegralHeight := True;
				Alignment := 0;
				ColumnAutoResize := True;
				BeginUpdate();
				MarkSearchColumn := False;
				with Columns do
				begin
					with (Add('Car') as EXCOMBOBOXLib.Column) do
					begin
						Width := 32;
						DisplayFilterButton := True;
					end;
					with (Add('Equipment') as EXCOMBOBOXLib.Column) do
					begin
						DisplayFilterButton := True;
						DisplayFilterPattern := False;
						CustomFilter := 'Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*';
						FilterType := 3;
					end;
				end;
				with Items do
				begin
					CellCaption[TObject(AddItem('Mazda')),TObject(1)] := 'Air Bag';
					CellCaption[TObject(AddItem('Toyota')),TObject(1)] := 'Air Bag,Air condition';
					CellCaption[TObject(AddItem('Ford')),TObject(1)] := 'Air condition';
					CellCaption[TObject(AddItem('Nissan')),TObject(1)] := 'Air Bag,ABS,ESP';
				end;
				EndUpdate();
			end;
		end;
	end;
	with Nodes.Add('Car',Nil,Nil) do
	begin
		Editor := 'ExComboUserEditor';
		Value := 'Mazda';
	end;
end
5:
How can I load a XML file

with AxXMLGrid1 do
begin
	LoadXML('C:\Windows\Ultimate.xml');
end
4:
How can I assign a tooltip to a node

with AxXMLGrid1 do
begin
	with Nodes.Add('Title',Nil,Nil) do
	begin
		Value := 'value';
		ToolTip := 'This is a bit of <b>HTML</b> text to be shown when the cursor hovers the node.';
	end;
end
3:
How can I edit the node using a DateType editor

with AxXMLGrid1 do
begin
	with Editors do
	begin
		with Add('DateEditor',EXMLGRIDLib.EditTypeEnum.DateType) do
		begin
			Option[EXMLGRIDLib.EditorOptionEnum.exDateMarkToday] := TObject(True);
		end;
	end;
	with Nodes.Add('Date',Nil,Nil) do
	begin
		Editor := 'DateEditor';
		Value := '1/1/2001';
	end;
end
2:
How can I expand a node

with AxXMLGrid1 do
begin
	with Nodes.Add('Parent',Nil,Nil) do
	begin
		with Nodes do
		begin
			Add('Child 1',Nil,Nil);
			Add('Child 2',Nil,Nil);
		end;
		Expanded := True;
	end;
end
1:
How can I add a node

with AxXMLGrid1 do
begin
	with Nodes.Add('Parent',Nil,Nil).Nodes do
	begin
		Add('Child 1',Nil,Nil);
		Add('Child 2',Nil,Nil);
	end;
end