617:
Do you have any Fit-To-Page options when printing the control (W x T, Fit-To )

public void init()
{
	COM com_Print,com_rs;
	anytype rs,var_Print;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(false);
	extree1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\Access2007\\sample.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	extree1.DataSource(rs);
	extree1.EndUpdate();
	// 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 =2 x 1");
		com_Print.PrintExt(extree1);
		com_Print.Preview();
}
616:
Do you have any Fit-To-Page options when printing the control ( x T, Fit-To Tall )

public void init()
{
	COM com_Print,com_rs;
	anytype rs,var_Print;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(false);
	extree1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\Access2007\\sample.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	extree1.DataSource(rs);
	extree1.EndUpdate();
	// 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 = x 2");
		com_Print.PrintExt(extree1);
		com_Print.Preview();
}
615:
Do you have any Fit-To-Page options when printing the control ( W x, Fit-To Wide )

public void init()
{
	COM com_Print,com_rs;
	anytype rs,var_Print;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(false);
	extree1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\Access2007\\sample.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	extree1.DataSource(rs);
	extree1.EndUpdate();
	// 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 = 2 x");
		com_Print.PrintExt(extree1);
		com_Print.Preview();
}
614:
Do you have any Fit-To-Page options when printing the control ( percent view, Adjust-To )

public void init()
{
	COM com_Print,com_rs;
	anytype rs,var_Print;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(false);
	extree1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\Access2007\\sample.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	extree1.DataSource(rs);
	extree1.EndUpdate();
	// 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 = 50%");
		com_Print.PrintExt(extree1);
		com_Print.Preview();
}
613:
How do I prevent changing the cell's state ( check-box state )
// CellStateChanging event - Fired before cell's state is about to be changed.
void onEvent_CellStateChanging(int   _Item,int   _ColIndex,COMVariant /*long*/   _NewState)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = extree1.Items(); com_Items = var_Items;
		_NewState = com_Items.CellState(_Item,_ColIndex);
}

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("P1")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_Column1 = COM::createFromVariant(extree1.Columns().Add("P2")); com_Column1 = var_Column1;
		com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column1.PartialCheck(true);
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
	extree1.EndUpdate();
}
612:
How can I use the CellState with ConditionalFormat/ComputedField/FormatColumn

// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int   _Item,int   _ColIndex)
{
	;
}

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(4/*exGroupLinesInsideLeaf*/);
	extree1.SelBackMode(1/*exTransparent*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_Column1 = COM::createFromVariant(extree1.Columns().Add("Format")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("%CS0");
		com_Column1.Caption(com_Column1.FormatColumn());
		com_Column1.Def(5/*exCellForeColor*/,COMVariant::createFromInt(8421504));
		com_Column1.Def(8/*exHeaderForeColor*/,com_Column1.Def(5/*exCellForeColor*/));
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Item 1");
		com_Items.CellState(com_Items.InsertItem(h,,"Item 2"),COMVariant::createFromInt(0),1);
		com_Items.CellState(com_Items.InsertItem(h,,"Item 3"),COMVariant::createFromInt(0),1);
		com_Items.ExpandItem(h,true);
	extree1.EndUpdate();
}
611:
How can I use the CellData with ConditionalFormat/ComputedField/FormatColumn

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.Columns().Add("Items");
	var_Column = COM::createFromVariant(extree1.Columns().Add("Format")); com_Column = var_Column;
		com_Column.FormatColumn("%CD0");
		com_Column.Caption(com_Column.FormatColumn());
		com_Column.Def(5/*exCellForeColor*/,COMVariant::createFromInt(8421504));
		com_Column.Def(8/*exHeaderForeColor*/,com_Column.Def(5/*exCellForeColor*/));
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellData(com_Items.AddItem("Item 1"),COMVariant::createFromInt(0),COMVariant::createFromInt(1234));
		com_Items.CellData(com_Items.AddItem("Item 2"),COMVariant::createFromInt(0),"this is just an user data");
		com_Items.CellData(com_Items.AddItem("Item 3"),COMVariant::createFromInt(0),COMVariant::createFromDate(str2Date("1/1/2001",213)));
	extree1.EndUpdate();
}
610:
How can I use the CellCaption with ConditionalFormat/ComputedField/FormatColumn

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.Columns().Add("Items");
	var_Column = COM::createFromVariant(extree1.Columns().Add("Format")); com_Column = var_Column;
		com_Column.FormatColumn("%0");
		com_Column.Caption(com_Column.FormatColumn());
		com_Column.Def(5/*exCellForeColor*/,COMVariant::createFromInt(8421504));
		com_Column.Def(8/*exHeaderForeColor*/,com_Column.Def(5/*exCellForeColor*/));
		com_Column.Width(96);
		com_Column.AllowSizing(false);
	var_Column1 = COM::createFromVariant(extree1.Columns().Add("Format")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("%C0");
		com_Column1.Caption(com_Column1.FormatColumn());
		com_Column1.Def(5/*exCellForeColor*/,COMVariant::createFromInt(8421504));
		com_Column1.Def(8/*exHeaderForeColor*/,com_Column1.Def(5/*exCellForeColor*/));
		com_Column1.Width(96);
		com_Column1.AllowSizing(false);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(1));
		h = com_Items.AddItem(COMVariant::createFromInt(0));
		com_Items.CellCaption(h,COMVariant::createFromInt(0),"<b>HTML</b> Text");
		com_Items.CellCaptionFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.AddItem(COMVariant::createFromInt(2));
	extree1.EndUpdate();
}
609:
Can I display the radio-button with a solid color

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.RadioImage(0,32699122);
	extree1.RadioImage(1,16777216);
	COM::createFromVariant(extree1.Columns().Add("Check")).Def(1/*exCellHasRadioButton*/,COMVariant::createFromBoolean(true));
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Radio 1");
		com_Items.CellState(com_Items.AddItem("Radio 2"),COMVariant::createFromInt(0),1);
		com_Items.AddItem("Radio 1");
	extree1.EndUpdate();
}
608:
Can I display the check-box with a solid color

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.CheckImage(0/*Unchecked*/,32699122);
	extree1.CheckImage(1/*Checked*/,16777216);
	COM::createFromVariant(extree1.Columns().Add("Check")).Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Check 1");
		com_Items.CellState(com_Items.AddItem("Check 2"),COMVariant::createFromInt(0),1);
		com_Items.AddItem("Check 3");
	extree1.EndUpdate();
}
607:
Can I display the column's multiple-lines caption vertically oriented (method 2)

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.HeaderHeight(48);
	extree1.ColumnAutoResize(true);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("And others ...");
		var_Column = COM::createFromVariant(com_Columns.Add("")); com_Column = var_Column;
			com_Column.HTMLCaption("First Column");
			com_Column.HeaderVertical(true);
			com_Column.Width(36);
			com_Column.AllowSizing(false);
			com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(8));
			com_Column.Position(0);
		var_Column1 = COM::createFromVariant(com_Columns.Add("")); com_Column1 = var_Column1;
			com_Column1.HTMLCaption("<c><b>Second Column");
			com_Column1.HeaderVertical(true);
			com_Column1.Width(36);
			com_Column1.AllowSizing(false);
			com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column1.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(8));
			com_Column1.Position(1);
		var_Column2 = COM::createFromVariant(com_Columns.Add("")); com_Column2 = var_Column2;
			com_Column2.HTMLCaption("<r>Third Column");
			com_Column2.HeaderVertical(true);
			com_Column2.Width(36);
			com_Column2.AllowSizing(false);
			com_Column2.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column2.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(8));
			com_Column2.Position(2);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellState(com_Items.AddItem("Item 1"),COMVariant::createFromInt(3),1);
		com_Items.CellState(com_Items.AddItem("Item 2"),COMVariant::createFromInt(2),1);
		com_Items.CellState(com_Items.AddItem("Item 3"),COMVariant::createFromInt(1),1);
	extree1.EndUpdate();
}
606:
Can I display the column's multiple-lines caption vertically oriented (method 1)

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.HeaderHeight(48);
	extree1.HeaderSingleLine(false);
	extree1.ColumnAutoResize(true);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("And others ...");
		var_Column = COM::createFromVariant(com_Columns.Add("First Column")); com_Column = var_Column;
			com_Column.HeaderVertical(true);
			com_Column.Width(36);
			com_Column.AllowSizing(false);
			com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(8));
			com_Column.Position(0);
		var_Column1 = COM::createFromVariant(com_Columns.Add("Second Column")); com_Column1 = var_Column1;
			com_Column1.HeaderBold(true);
			com_Column1.HeaderVertical(true);
			com_Column1.Width(36);
			com_Column1.AllowSizing(false);
			com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column1.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(8));
			com_Column1.Position(1);
		var_Column2 = COM::createFromVariant(com_Columns.Add("Third Column")); com_Column2 = var_Column2;
			com_Column2.HeaderVertical(true);
			com_Column2.Width(36);
			com_Column2.AllowSizing(false);
			com_Column2.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column2.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(8));
			com_Column2.Position(2);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellState(com_Items.AddItem("Item 1"),COMVariant::createFromInt(3),1);
		com_Items.CellState(com_Items.AddItem("Item 2"),COMVariant::createFromInt(2),1);
		com_Items.CellState(com_Items.AddItem("Item 3"),COMVariant::createFromInt(1),1);
	extree1.EndUpdate();
}
605:
Can I display the column's caption vertically oriented (method 2)

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.HeaderHeight(48);
	extree1.ColumnAutoResize(true);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("And others ...");
		var_Column = COM::createFromVariant(com_Columns.Add("")); com_Column = var_Column;
			com_Column.HTMLCaption("First");
			com_Column.HeaderVertical(true);
			com_Column.Width(20);
			com_Column.AllowSizing(false);
			com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column.Position(0);
		var_Column1 = COM::createFromVariant(com_Columns.Add("")); com_Column1 = var_Column1;
			com_Column1.HTMLCaption("<c><b>Second");
			com_Column1.HeaderVertical(true);
			com_Column1.Width(20);
			com_Column1.AllowSizing(false);
			com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column1.Position(1);
		var_Column2 = COM::createFromVariant(com_Columns.Add("")); com_Column2 = var_Column2;
			com_Column2.HTMLCaption("<r>Third");
			com_Column2.HeaderVertical(true);
			com_Column2.Width(20);
			com_Column2.AllowSizing(false);
			com_Column2.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column2.Position(2);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellState(com_Items.AddItem("Item 1"),COMVariant::createFromInt(3),1);
		com_Items.CellState(com_Items.AddItem("Item 2"),COMVariant::createFromInt(2),1);
		com_Items.CellState(com_Items.AddItem("Item 3"),COMVariant::createFromInt(1),1);
	extree1.EndUpdate();
}
604:
Can I display the column's caption vertically oriented (method 1)

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.HeaderHeight(48);
	extree1.ColumnAutoResize(true);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("And others ...");
		var_Column = COM::createFromVariant(com_Columns.Add("First")); com_Column = var_Column;
			com_Column.HeaderVertical(true);
			com_Column.Width(20);
			com_Column.AllowSizing(false);
			com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column.Position(0);
		var_Column1 = COM::createFromVariant(com_Columns.Add("Second")); com_Column1 = var_Column1;
			com_Column1.HeaderBold(true);
			com_Column1.HeaderVertical(true);
			com_Column1.Width(20);
			com_Column1.AllowSizing(false);
			com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column1.Position(1);
		var_Column2 = COM::createFromVariant(com_Columns.Add("Third")); com_Column2 = var_Column2;
			com_Column2.HeaderVertical(true);
			com_Column2.Width(20);
			com_Column2.AllowSizing(false);
			com_Column2.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
			com_Column2.Position(2);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellState(com_Items.AddItem("Item 1"),COMVariant::createFromInt(3),1);
		com_Items.CellState(com_Items.AddItem("Item 2"),COMVariant::createFromInt(2),1);
		com_Items.CellState(com_Items.AddItem("Item 3"),COMVariant::createFromInt(1),1);
	extree1.EndUpdate();
}
603:
How do I automatically bold items being checked

// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int   _Item,int   _ColIndex)
{
	;
}

public void init()
{
	COM com_ConditionalFormat,com_Items;
	anytype var_ConditionalFormat,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.SelBackMode(1/*exTransparent*/);
	var_ConditionalFormat = COM::createFromObject(extree1.ConditionalFormats()).Add("%CS0","check"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.Bold(true);
	COM::createFromVariant(extree1.Columns().Add("Items")).Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
	COM::createFromVariant(extree1.Columns().Add(extree1.ConditionalFormats().Item("check").Expression())).FormatColumn(extree1.ConditionalFormats().Item("check").Expression());
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.CellState(com_Items.AddItem("Item 2"),COMVariant::createFromInt(0),1);
		com_Items.AddItem("Item 3");
	extree1.EndUpdate();
}
602:
How can I include the child items, when a filter is applied

public void init()
{
	COM com_Columns,com_Items;
	anytype var_Columns,var_Items;
	int h0;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(true);
	extree1.ContinueColumnScroll(0);
	extree1.MarkSearchColumn(false);
	extree1.SearchColumnIndex(1);
	extree1.Indent(16);
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.FilterBarPromptVisible(true);
	extree1.FilterBarPromptPattern("Nancy");
	extree1.FilterInclude(1/*exItemsWithChilds*/);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Name")).Width(96);
		COM::createFromVariant(com_Columns.Add("Title")).Width(96);
		com_Columns.Add("City");
	var_Items = extree1.Items(); com_Items = var_Items;
		h0 = com_Items.AddItem("Nancy Davolio");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Seattle");
		h0 = com_Items.InsertItem(h0,,"Andrew Fuller");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Vice President, Sales");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Tacoma");
		h0 = com_Items.InsertItem(h0,,"Michael Suyama");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"London");
		h0 = com_Items.AddItem("Janet Leverling");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Kirkland");
		h0 = com_Items.InsertItem(h0,,"Margaret Peacock");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Redmond");
	extree1.ApplyFilter();
	extree1.EndUpdate();
}
601:
How do I get sorted the column as string, numeric, date, date and time. Also how can it be applied to drop down filter panel

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	var_Column = COM::createFromVariant(extree1.Columns().Add("Date")); com_Column = var_Column;
		com_Column.SortType(2/*SortDate*/);
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.DisplayFilterDate(true);
		com_Column.FilterList(1296/*exShowFocusItem | exShowCheckBox | exSortItemsDesc*/);
	var_Column1 = COM::createFromVariant(extree1.Columns().Add("DateTime")); com_Column1 = var_Column1;
		com_Column1.SortType(3/*SortDateTime*/);
		com_Column1.DisplayFilterButton(true);
		com_Column1.DisplayFilterPattern(false);
		com_Column1.FilterList(1296/*exShowFocusItem | exShowCheckBox | exSortItemsDesc*/);
	var_Column2 = COM::createFromVariant(extree1.Columns().Add("Time")); com_Column2 = var_Column2;
		com_Column2.SortType(4/*SortTime*/);
		com_Column2.DisplayFilterButton(true);
		com_Column2.DisplayFilterPattern(false);
		com_Column2.FilterList(1296/*exShowFocusItem | exShowCheckBox | exSortItemsDesc*/);
		com_Column2.FormatColumn("time(value)");
	var_Column3 = COM::createFromVariant(extree1.Columns().Add("Numeric")); com_Column3 = var_Column3;
		com_Column3.SortType(1/*SortNumeric*/);
		com_Column3.DisplayFilterButton(true);
		com_Column3.FilterList(1296/*exShowFocusItem | exShowCheckBox | exSortItemsDesc*/);
	var_Column4 = COM::createFromVariant(extree1.Columns().Add("String")); com_Column4 = var_Column4;
		com_Column4.DisplayFilterButton(true);
		com_Column4.FilterList(1296/*exShowFocusItem | exShowCheckBox | exSortItemsDesc*/);
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem(COMVariant::createFromDate(str2Date("1/27/2010",213)));
		com_Items.CellCaption(h,COMVariant::createFromInt(1),COMVariant::createFromUtcDateTime(str2Datetime("1/27/2010 10:00:00",213)));
		com_Items.CellCaption(h,COMVariant::createFromInt(2),com_Items.CellCaption(h,COMVariant::createFromInt(1)));
		com_Items.CellCaption(h,COMVariant::createFromInt(3),COMVariant::createFromInt(1));
		com_Items.CellCaption(h,COMVariant::createFromInt(4),com_Items.CellCaption(h,COMVariant::createFromInt(3)));
		h = com_Items.AddItem(COMVariant::createFromDate(str2Date("1/27/2011",213)));
		com_Items.CellCaption(h,COMVariant::createFromInt(1),COMVariant::createFromUtcDateTime(str2Datetime("1/27/2011 9:00:00",213)));
		com_Items.CellCaption(h,COMVariant::createFromInt(2),com_Items.CellCaption(h,COMVariant::createFromInt(1)));
		com_Items.CellCaption(h,COMVariant::createFromInt(3),COMVariant::createFromInt(11));
		com_Items.CellCaption(h,COMVariant::createFromInt(4),com_Items.CellCaption(h,COMVariant::createFromInt(3)));
		h = com_Items.AddItem(COMVariant::createFromDate(str2Date("11/2/2010",213)));
		com_Items.CellCaption(h,COMVariant::createFromInt(1),COMVariant::createFromUtcDateTime(str2Datetime("11/2/2010 9:00:00",213)));
		com_Items.CellCaption(h,COMVariant::createFromInt(2),com_Items.CellCaption(h,COMVariant::createFromInt(1)));
		com_Items.CellCaption(h,COMVariant::createFromInt(3),COMVariant::createFromInt(2));
		com_Items.CellCaption(h,COMVariant::createFromInt(4),com_Items.CellCaption(h,COMVariant::createFromInt(3)));
	var_Column5 = COM::createFromObject(extree1.Columns()).Item("DateTime"); com_Column5 = var_Column5;
	com_Column5.DisplayFilterDate(false);
	extree1.EndUpdate();
}
600:
I am using Layout property to sort multiple columns at once. The problem is that all items get expanded. How do I prevent that

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("P1")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.PartialCheck(true);
	var_Column1 = COM::createFromVariant(extree1.Columns().Add("P2")); com_Column1 = var_Column1;
		com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column1.PartialCheck(true);
		com_Column1.FormatColumn("1 index ``");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child A");
		com_Items.InsertItem(h,,"Child B");
		com_Items.InsertItem(h,,"Child A");
		com_Items.InsertItem(h,,"Child B");
		com_Items.AddItem("Root");
		com_Items.AddItem("Root");
	extree1.SingleSort(false);
	extree1.Layout("multiplesort=\"C0:1 C1:2\";collapse=\"\"");
	extree1.EndUpdate();
}
599:
How can I get ride / hide the image being dragged by OLE Drag and Drop
// OLEStartDrag event is not supported. Use the DragEnter,DragLeave,DragOver, DragDrop ... events.
public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.OLEDropMode(1/*exOLEDropManual*/);
	extree1.Background(34/*exDragDropAfter*/,WinApi::RGB2int(255,255,255));
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.Columns().Add("Default");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
}
598:
How can I export checked items only

public void init()
{
	COM com_Columns,com_Items;
	anytype var_Columns,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.MarkSearchColumn(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("C1")).Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		COM::createFromVariant(com_Columns.Add("C2")).FormatColumn("1 index `A-Z`");
		COM::createFromVariant(com_Columns.Add("C3")).FormatColumn("100 index ``");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.CellState(com_Items.AddItem("Item 2"),COMVariant::createFromInt(0),1);
		com_Items.CellState(com_Items.AddItem("Item 3"),COMVariant::createFromInt(0),1);
	extree1.EndUpdate();
	print( "Export CSV Checked Items Only:" );
	print( extree1.Export("","chk") );
}
597:
How can I export a hidden column

public void init()
{
	COM com_Column,com_Column1,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Columns,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.MarkSearchColumn(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("C1");
		var_Column = COM::createFromVariant(com_Columns.Add("C2")); com_Column = var_Column;
			com_Column.FormatColumn("1 index `A-Z`");
			com_Column.Visible(false);
		var_Column1 = COM::createFromVariant(com_Columns.Add("C3")); com_Column1 = var_Column1;
			com_Column1.FormatColumn("100 index ``");
			com_Column1.Visible(false);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
	extree1.EndUpdate();
	print( "Export CSV Hidden Columns (1,2):" );
	print( extree1.Export("","|1,2") );
}
596:
I'm trying to use automatic numbering of the outline. How can I have A, B, C for root items, 1, 2, 3 for the sub-items, and a, b, c for sub-sub-items (sample 3)

public void init()
{
	COM com_Column,com_Columns,com_Items;
	anytype var_Column,var_Columns,var_Items;
	int h,hChild;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.DrawGridLines(-2/*exRowLines*/);
	extree1.AutoDrag(3/*exAutoDragPositionAny*/);
	extree1.HasLines(1/*exSolidLine*/);
	extree1.Indent(16);
	extree1.MarkSearchColumn(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("")); com_Column = var_Column;
			com_Column.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
			com_Column.FormatColumn("((1:=(0 :=(1 rpos '.|A-Z||a-z|')) rfind `.`) < 0 ? `<b>` + =:0 + `` :  (=:0 mid (1 + 1 + =:1) )  + `)` ) + ` ` + value");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child");
		hChild = com_Items.InsertItem(h,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(h,,"Child");
		com_Items.ExpandItem(0,true);
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child");
		hChild = com_Items.InsertItem(h,,"Child");
		com_Items.CellState(hChild,COMVariant::createFromInt(0),1);
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(h,,"Child");
	extree1.EndUpdate();
}
595:
I'm trying to use automatic numbering of the outline. How can I have A, B, C for root items, 1, 2, 3 for the sub-items, and a, b, c for sub-sub-items (sample 2)

public void init()
{
	COM com_Column,com_Columns,com_Items;
	anytype var_Column,var_Columns,var_Items;
	int h,hChild;
	str var_s;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.GridLineColor(WinApi::RGB2int(190,190,190));
	extree1.DrawGridLines(-2/*exRowLines*/);
	extree1.AutoDrag(3/*exAutoDragPositionAny*/);
	extree1.HasLines(1/*exSolidLine*/);
	extree1.Indent(16);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Default");
		var_Column = COM::createFromVariant(com_Columns.Add("")); com_Column = var_Column;
			com_Column.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
			com_Column.Def(49/*exCellPaddingRight*/,COMVariant::createFromInt(4));
			com_Column.AllowSizing(false);
			com_Column.Width(36);
			com_Column.Position(0);
			var_s = "(1:=(0 :=(1 rpos '.|A-Z||a-z|')) rfind `.`) < 0 ? `<b>` + =:0 : (`............` left 2 * (=:0 count `.`)) + (=:0 mid (1 + 1 + =:";
			var_s = var_s + "1) ) ";
			com_Column.FormatColumn(var_s);
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child");
		hChild = com_Items.InsertItem(h,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(h,,"Child");
		com_Items.ExpandItem(0,true);
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child");
		hChild = com_Items.InsertItem(h,,"Child");
		com_Items.CellState(hChild,COMVariant::createFromInt(0),1);
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(h,,"Child");
	extree1.EndUpdate();
}
594:
I'm trying to use automatic numbering of the outline. How can I have A, B, C for root items, 1, 2, 3 for the sub-items, and a, b, c for sub-sub-items (sample 1)

public void init()
{
	COM com_Column,com_Columns,com_Items;
	anytype var_Column,var_Columns,var_Items;
	int h,hChild;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.DrawGridLines(-2/*exRowLines*/);
	extree1.AutoDrag(3/*exAutoDragPositionAny*/);
	extree1.HasLines(1/*exSolidLine*/);
	extree1.Indent(16);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Default");
		var_Column = COM::createFromVariant(com_Columns.Add("")); com_Column = var_Column;
			com_Column.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
			com_Column.Def(49/*exCellPaddingRight*/,COMVariant::createFromInt(4));
			com_Column.Alignment(2/*RightAlignment*/);
			com_Column.AllowSizing(false);
			com_Column.Width(24);
			com_Column.Position(0);
			com_Column.FormatColumn("(1:=(0 :=(1 rpos '.|A-Z||a-z|')) rfind `.`) < 0 ? `<b>` + =:0 : `<i>` + (=:0 mid (1 + 1 + =:1) ) ");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child");
		hChild = com_Items.InsertItem(h,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(h,,"Child");
		com_Items.ExpandItem(0,true);
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child");
		hChild = com_Items.InsertItem(h,,"Child");
		com_Items.CellState(hChild,COMVariant::createFromInt(0),1);
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(hChild,,"Child");
		com_Items.InsertItem(h,,"Child");
	extree1.EndUpdate();
}
593:
Is it possible to have a different alignment for parts of the cell's caption

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.TreeColumnIndex(-1);
	extree1.DrawGridLines(-2/*exRowLines*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Default")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellHAlignment(com_Items.AddItem("all-left"),COMVariant::createFromInt(0),0/*LeftAlignment*/);
		com_Items.CellHAlignment(com_Items.AddItem("all-center"),COMVariant::createFromInt(0),1/*CenterAlignment*/);
		com_Items.CellHAlignment(com_Items.AddItem("all-right"),COMVariant::createFromInt(0),2/*RightAlignment*/);
		h = com_Items.AddItem("left<c>center<r>right");
		com_Items.CellCaptionFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
	extree1.EndUpdate();
}
592:
I have a column with Def(exCellSingleLine) property on False, word-wrapping, and I am wondering if possible to update the column's content while user is resizing it
public void init()
{
	COM com_Column,com_Column1,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Columns,var_Items;
	;

	super();

	extree1.BeginUpdate();
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("MultipleLine")); com_Column = var_Column;
			com_Column.Width(32);
			com_Column.Def(16/*exCellSingleLine*/,COMVariant::createFromBoolean(false));
			com_Column.Def(64/*exColumnResizeContiguously*/,COMVariant::createFromBoolean(true));
		var_Column1 = COM::createFromVariant(com_Columns.Add("SingleLine")); com_Column1 = var_Column1;
			com_Column1.Def(16/*exCellSingleLine*/,COMVariant::createFromBoolean(false));
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellCaption(com_Items.AddItem("This is a bit of long text that should break the line"),COMVariant::createFromInt(1),"This is a bit of long text that should break the line");
	extree1.EndUpdate();
}
591:
How do I sort the index column as numeric

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellData(_Item,COMVariant::createFromInt(1),com_Items.ItemToIndex(_Item));
}

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.DrawGridLines(-1/*exAllLines*/);
	extree1.ColumnAutoResize(true);
	extree1.ShowFocusRect(false);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Next")); com_Column = var_Column;
		com_Column.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(4));
		com_Column.Def(52/*exHeaderPaddingLeft*/,COMVariant::createFromInt(4));
	var_Column1 = COM::createFromVariant(extree1.Columns().Add("Index")); com_Column1 = var_Column1;
		com_Column1.AllowSizing(false);
		com_Column1.Width(48);
		com_Column1.FormatColumn("(((0 := (1 index ``)) mod 3) case ( default: ``; 0 : `<r><fgcolor=B0B0B0>`; 1: ``; 2 : `<c><fgcolor=808080>` )) + str(=:0)");
		com_Column1.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
		com_Column1.SortType(5/*SortUserData*/);
		com_Column1.Position(0);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
		com_Items.AddItem("Item 4");
		com_Items.AddItem("Item 5");
		com_Items.AddItem("Item 6");
		com_Items.AddItem("Item 7");
		com_Items.AddItem("Item 8");
		com_Items.AddItem("Item 9");
		com_Items.AddItem("Item 10");
	extree1.EndUpdate();
}
590:
How can I put icons/images into buttons

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	str var_s;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(true);
	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=";
	extree1.Images(COMVariant::createFromStr(var_s));
	var_Column = COM::createFromVariant(extree1.Columns().Add("C+B")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.Width(48);
		com_Column.FormatColumn("` <img>` + ( 1 + (1 index ``) mod 3 ) + `</img> `");
		com_Column.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.Def(2/*exCellHasButton*/,COMVariant::createFromBoolean(true));
		com_Column.Def(3/*exCellButtonAutoWidth*/,COMVariant::createFromBoolean(true));
	extree1.Columns().Add("");
	extree1.DrawGridLines(2/*exVLines*/);
	extree1.DefaultItemHeight(20);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.AddItem("");
		com_Items.AddItem("");
		com_Items.AddItem("");
		com_Items.AddItem("");
		com_Items.AddItem("");
		com_Items.AddItem("");
		com_Items.AddItem("");
	extree1.EndUpdate();
}
589:
Is it possible to have a CheckBox and Button TOGETHER on all cells in a column

// CellButtonClick event - Fired after the user clicks on the cell of button type. 
void onEvent_CellButtonClick(int   _Item,int   _ColIndex)
{
	;
	print( "CellButtonClick" );
	print( _Item );
}

// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int   _Item,int   _ColIndex)
{
	;
	print( "CellStateChanged" );
	print( _Item );
}

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(true);
	var_Column = COM::createFromVariant(extree1.Columns().Add("")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.Width(32);
		com_Column.FormatColumn("1 index ``");
	var_Column1 = COM::createFromVariant(extree1.Columns().Add("Def")); com_Column1 = var_Column1;
		com_Column1.AllowSizing(false);
		com_Column1.Width(48);
		com_Column1.FormatColumn("`     `");
		com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column1.Def(2/*exCellHasButton*/,COMVariant::createFromBoolean(true));
		com_Column1.Def(3/*exCellButtonAutoWidth*/,COMVariant::createFromBoolean(true));
	extree1.Columns().Add("");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("");
		com_Items.AddItem("");
		com_Items.AddItem("");
		com_Items.AddItem("");
		com_Items.AddItem("");
		com_Items.AddItem("");
		com_Items.AddItem("");
		com_Items.AddItem("");
	extree1.EndUpdate();
}
588:
Does filtering work with umlauts / accents characters
public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	;

	super();

	extree1.BeginUpdate();
	var_Column = COM::createFromVariant(extree1.Columns().Add("Names")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterType(3/*exPattern*/);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Mantel");
		com_Items.AddItem("Mechanik");
		com_Items.AddItem("Motor");
		com_Items.AddItem("Murks");
		com_Items.AddItem("Märchen");
		com_Items.AddItem("Möhren");
		com_Items.AddItem("Mühle");
		com_Items.AddItem("Sérigraphie");
	var_Column1 = COM::createFromObject(extree1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
	com_Column1.Filter("*ä*");
	extree1.ApplyFilter();
	extree1.EndUpdate();
}
587:
The Items.FirstVisibleItem property is read-only. How can I change the first visible item

public void init()
{
	COM com_Column,com_rs;
	anytype rs,var_Column;
	;

	super();

	extree1.BeginUpdate();
	extree1.MarkSearchColumn(false);
	extree1.ColumnAutoResize(false);
	extree1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\VB\\SAMPLE.MDB",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	extree1.DataSource(rs);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Pos")); com_Column = var_Column;
		com_Column.Position(0);
		com_Column.FormatColumn("0 index ``");
		com_Column.Width(32);
		com_Column.Def(4/*exCellBackColor*/,COMVariant::createFromInt(15790320));
	extree1.ScrollPos(true,13);
	extree1.EndUpdate();
}
586:
How FullPath method works

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.Columns().Add("C1");
	extree1.Columns().Add("C2");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.CellCaption(h,COMVariant::createFromInt(1),"A");
		com_Items.CellCaption(com_Items.InsertItem(h,,"Child 1"),COMVariant::createFromInt(1),"B");
		com_Items.CellCaption(com_Items.InsertItem(h,,"Child 2"),COMVariant::createFromInt(1),"C");
		com_Items.ExpandItem(h,true);
	extree1.SearchColumnIndex(1);
	print( extree1.SearchColumnIndex() );
	print( .FullPath(extree1.Items().ItemByIndex(2)) );
	extree1.SearchColumnIndex(0);
	print( extree1.SearchColumnIndex() );
	print( .FullPath(extree1.Items().ItemByIndex(2)) );
	extree1.EndUpdate();
}
585:
How can I filter for multiple captions on a single column, using OR clause

public void init()
{
	COM com_Column,com_Columns,com_Items;
	anytype var_Column,var_Columns,var_Items;
	int h0;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(true);
	extree1.ContinueColumnScroll(0);
	extree1.MarkSearchColumn(true);
	extree1.SearchColumnIndex(1);
	extree1.FilterBarPromptVisible(true);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Name")).Width(96);
		var_Column = COM::createFromVariant(com_Columns.Add("Title")); com_Column = var_Column;
			com_Column.Width(96);
		com_Columns.Add("City");
	var_Items = extree1.Items(); com_Items = var_Items;
		h0 = com_Items.AddItem("Nancy Davolio");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Seattle");
		h0 = com_Items.AddItem("Andrew Fuller");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Vice President, Sales");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Tacoma");
		com_Items.SelectItem(h0,true);
		h0 = com_Items.AddItem("Janet Leverling");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Kirkland");
		h0 = com_Items.AddItem("Margaret Peacock");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Redmond");
		h0 = com_Items.AddItem("Steven Buchanan");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Manager");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"London");
		h0 = com_Items.AddItem("Michael Suyama");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"London");
		h0 = com_Items.AddItem("Robert King");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"London");
		h0 = com_Items.AddItem("Laura Callahan");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Inside Sales Coordinator");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Seattle");
		h0 = com_Items.AddItem("Anne Dodsworth");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"London");
	extree1.FilterBarPromptColumns("1");
	extree1.FilterBarPromptPattern("Vice Inside");
	extree1.FilterBarPromptType(2/*exFilterPromptContainsAny*/);
	extree1.EndUpdate();
}
584:
How can I filter for multiple captions on a single column, using AND clause

public void init()
{
	COM com_Column,com_Columns,com_Items;
	anytype var_Column,var_Columns,var_Items;
	int h0;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(true);
	extree1.ContinueColumnScroll(0);
	extree1.MarkSearchColumn(true);
	extree1.SearchColumnIndex(1);
	extree1.FilterBarPromptVisible(true);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Name")).Width(96);
		var_Column = COM::createFromVariant(com_Columns.Add("Title")); com_Column = var_Column;
			com_Column.Width(96);
		com_Columns.Add("City");
	var_Items = extree1.Items(); com_Items = var_Items;
		h0 = com_Items.AddItem("Nancy Davolio");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Seattle");
		h0 = com_Items.AddItem("Andrew Fuller");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Vice President, Sales");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Tacoma");
		com_Items.SelectItem(h0,true);
		h0 = com_Items.AddItem("Janet Leverling");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Kirkland");
		h0 = com_Items.AddItem("Margaret Peacock");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Redmond");
		h0 = com_Items.AddItem("Steven Buchanan");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Manager");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"London");
		h0 = com_Items.AddItem("Michael Suyama");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"London");
		h0 = com_Items.AddItem("Robert King");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"London");
		h0 = com_Items.AddItem("Laura Callahan");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Inside Sales Coordinator");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Seattle");
		h0 = com_Items.AddItem("Anne Dodsworth");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"London");
	extree1.FilterBarPromptColumns("1");
	extree1.FilterBarPromptPattern("Vice Sales");
	extree1.FilterBarPromptType(1/*exFilterPromptContainsAll*/);
	extree1.EndUpdate();
}
583:
Can I set the search box / filterbarprompt to invisible, so I can use my own input and *string* via VBA
public void init()
{
	COM com_Columns,com_Items;
	anytype var_Columns,var_Items;
	int h0;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(true);
	extree1.ContinueColumnScroll(0);
	extree1.MarkSearchColumn(false);
	extree1.SearchColumnIndex(1);
	extree1.FilterBarHeight(0);
	extree1.FilterBarPromptVisible(true);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Name")).Width(96);
		COM::createFromVariant(com_Columns.Add("Title")).Width(96);
		com_Columns.Add("City");
	var_Items = extree1.Items(); com_Items = var_Items;
		h0 = com_Items.AddItem("Nancy Davolio");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Seattle");
		h0 = com_Items.AddItem("Andrew Fuller");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Vice President, Sales");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Tacoma");
		com_Items.SelectItem(h0,true);
		h0 = com_Items.AddItem("Janet Leverling");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Kirkland");
		h0 = com_Items.AddItem("Margaret Peacock");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Redmond");
		h0 = com_Items.AddItem("Steven Buchanan");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Manager");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"London");
		h0 = com_Items.AddItem("Michael Suyama");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"London");
		h0 = com_Items.AddItem("Robert King");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"London");
		h0 = com_Items.AddItem("Laura Callahan");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Inside Sales Coordinator");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"Seattle");
		h0 = com_Items.AddItem("Anne Dodsworth");
		com_Items.CellCaption(h0,COMVariant::createFromInt(1),"Sales Representative");
		com_Items.CellCaption(h0,COMVariant::createFromInt(2),"London");
	extree1.FilterBarPromptPattern("London");
	extree1.EndUpdate();
}
582:
How to load a hierarchy using the control's DataSource property (Parent-ID-Relation)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.SetParent(_Item,com_Items.FindItem(com_Items.CellCaption(_Item,"ReportsTo"),"EmployeeID"));
}

public void init()
{
	COM com_Items,com_rs;
	anytype rs,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.ColumnAutoResize(false);
	extree1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("SELECT * FROM Employees ORDER BY ReportsTo","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\VB\\SAMPLE.MDB",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	extree1.DataSource(rs);
	extree1.Items().ExpandItem(0,true);
	extree1.EndUpdate();
}
581:
Is there any option to control where I can drop the items when using the AutoDrag property
// AllowAutoDrag event - Occurs when the user drags the item between InsertA and InsertB as child of NewParent.
void onEvent_AllowAutoDrag(int   _Item,int   _NewParent,int   _InsertA,int   _InsertB,COMVariant /*bool*/   _Cancel)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = extree1.Items(); com_Items = var_Items;
		print( "NewParent" );
		print( com_Items.CellCaption(_NewParent,COMVariant::createFromInt(0)) );
		print( "After" );
		print( com_Items.CellCaption(_InsertA,COMVariant::createFromInt(0)) );
		print( "Before" );
		print( com_Items.CellCaption(_InsertB,COMVariant::createFromInt(0)) );
	_Cancel = true;
}

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h,h1,h2,h3;
	;

	super();

	extree1.BeginUpdate();
	extree1.AutoDrag(3/*exAutoDragPositionAny*/);
	extree1.LinesAtRoot(0/*exNoLinesAtRoot*/);
	extree1.HasLines(2/*exThinLine*/);
	extree1.ShowFocusRect(false);
	extree1.Columns().Add("Task");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Group 1");
		com_Items.ItemDivider(h,0);
		com_Items.ItemBold(h,true);
		h1 = com_Items.InsertItem(h,,"Task 1");
		h2 = com_Items.InsertItem(h,,"Task 2");
		h3 = com_Items.InsertItem(h,,"Task 3");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Group 2");
		com_Items.ItemBold(h,true);
		com_Items.ItemDivider(h,0);
	extree1.EndUpdate();
}
580:
The FindPath is not case sensitive. How can I make it work case sensitive

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.Columns().Add("Default");
	extree1.ASCIIUpper("");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("L:");
		com_Items.InsertItem(h,,"test");
		com_Items.InsertItem(h,,"Test");
		com_Items.InsertItem(h,,"TEST");
		com_Items.ExpandItem(h,true);
		com_Items.ItemBold(com_Items.FindPath("L:\\TEST"),true);
	extree1.EndUpdate();
}
579:
How do I enable / display a tooltip while user selects new items from the drop down filter panel

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(13568/*exShowExclude | exEnableToolTip | exShowFocusItem | exShowCheckBox*/);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
		com_Items.AddItem("Item 4");
	var_Column1 = COM::createFromObject(extree1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(752/*exFilterExclude | exFilter*/);
		com_Column1.Filter("Item 1|Item 4");
	extree1.ApplyFilter();
	extree1.EndUpdate();
}
578:
How can I align captions of items with checkbox, with items with no checkbox

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.Columns().Add("Default");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellImages(com_Items.AddItem(COMVariant::createFromInt(0)),COMVariant::createFromInt(0),"1");
		com_Items.CellHasCheckBox(com_Items.AddItem(COMVariant::createFromInt(1)),COMVariant::createFromInt(0),true);
		com_Items.CellImages(com_Items.AddItem(COMVariant::createFromInt(2)),COMVariant::createFromInt(0),"1");
	extree1.EndUpdate();
}
577:
The control does not ensure the item to fit the control's client area once the user clicks the cell's button or check box. What can be done
// MouseDown event - Occurs when the user presses a mouse button.
void onEvent_MouseDown(int   _Button,int   _Shift,int   _X,int   _Y)
{
	// Items.EnsureVisibleItem(ItemFromPoint(-1,-1,c,hit))
	;
}

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.TreeColumnIndex(-1);
	extree1.SelForeColor(extree1.ForeColor());
	var_Column = COM::createFromVariant(extree1.Columns().Add("Buttons")); com_Column = var_Column;
		com_Column.Alignment(1/*CenterAlignment*/);
		com_Column.Def(2/*exCellHasButton*/,COMVariant::createFromBoolean(true));
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Button A");
		com_Items.AddItem("Button B");
		com_Items.AddItem("Button C");
	extree1.EndUpdate();
}
576:
Does the title of the cell's tooltip supports HTML format

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	str var_s;
	;

	super();

	extree1.BeginUpdate();
	var_Column = COM::createFromVariant(extree1.Columns().Add("")); com_Column = var_Column;
		com_Column.Caption("");
		com_Column.HTMLCaption("Column");
	var_Items = extree1.Items(); com_Items = var_Items;
		var_s = "<c><b><fgcolor=FF0000>Title</fgcolor></b><br>This is bit of text that's shown when the user hovers the cell. This shows the titl";
		var_s = var_s + "e centered with a different color.";
		com_Items.CellToolTip(com_Items.AddItem("tooltip w/h different title"),COMVariant::createFromInt(0),var_s);
	extree1.EndUpdate();
}
575:
How do I specify a different title for the cell's tooltip

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	extree1.BeginUpdate();
	var_Column = COM::createFromVariant(extree1.Columns().Add("")); com_Column = var_Column;
		com_Column.Caption("This is the title");
		com_Column.HTMLCaption("Column");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellToolTip(com_Items.AddItem("tooltip w/h different title"),COMVariant::createFromInt(0),"This is bit of text that's shown when the user hovers the cell.");
	extree1.EndUpdate();
}
574:
The cell's tooltip displays the column's caption in its title. How can I get ride of that

public void init()
{
	COM com_Column,com_Columns,com_Items;
	anytype var_Column,var_Columns,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("C1");
		com_Columns.Add("C2");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("tooltip w/h caption");
		com_Items.CellToolTip(h,COMVariant::createFromInt(0),"This is bit of text that's shown when the user hovers the cell. This shows the column's caption in the title.");
		com_Items.CellCaption(h,COMVariant::createFromInt(1),"tooltip no caption");
		com_Items.CellToolTip(h,COMVariant::createFromInt(1),"This is bit of text that's shown when the user hovers the cell. This shows no column's caption in the title.");
	var_Column = COM::createFromObject(extree1.Columns()).Item("C2"); com_Column = var_Column;
		com_Column.HTMLCaption(com_Column.Caption());
		com_Column.Caption("");
	extree1.EndUpdate();
}
573:
How can I programmatically show the column's filter

// RClick event - Fired when right mouse button is clicked
void onEvent_RClick()
{
	COM com_Column;
	anytype var_Column;
	int i;
	;
	i = extree1.ItemFromPoint(-1,-1,c,hit);
	var_Column = COM::createFromObject(extree1.Columns()).Item(c); com_Column = var_Column;
	com_Column.ShowFilter("-1,-1,128,128");
}

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int i;
	;

	super();

	extree1.BeginUpdate();
	extree1.ShowFocusRect(false);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Items ")); com_Column = var_Column;
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
	extree1.EndUpdate();
}
572:
I want to be able to click on one of the headers, and sort by other column. How can I do that (method 2)

// ColumnClick event - Fired after the user clicks on column's header.
void onEvent_ColumnClick(COM   _Column)
{
	// Column.SortOrder = 1
	COM com_Column;
	anytype var_Column;
	;
	extree1.SortOnClick(-1/*exDefaultSort*/);
	var_Column = COM::createFromObject(extree1.Columns()).Item("Sort"); com_Column = var_Column;
	com_Column.SortOrder(1/*SortAscending*/);
	extree1.SortOnClick(1/*exUserSort*/);
}

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.MarkSearchColumn(false);
	extree1.SortOnClick(1/*exUserSort*/);
	extree1.Columns().Add("Items");
	COM::createFromVariant(extree1.Columns().Add("Sort")).Visible(false);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellCaption(com_Items.AddItem("Item 1 (3)"),COMVariant::createFromInt(1),COMVariant::createFromInt(3));
		com_Items.CellCaption(com_Items.AddItem("Item 2 (1)"),COMVariant::createFromInt(1),COMVariant::createFromInt(1));
		com_Items.CellCaption(com_Items.AddItem("Item 3 (2)"),COMVariant::createFromInt(1),COMVariant::createFromInt(2));
	extree1.EndUpdate();
}
571:
I want to be able to click on one of the headers, and sort by other column. How can I do that (method 1)

// ColumnClick event - Fired after the user clicks on column's header.
void onEvent_ColumnClick(COM   _Column)
{
	// Column.SortOrder = 1
	;
	extree1.Items().SortChildren(0,"Sort",true);
}

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.MarkSearchColumn(false);
	extree1.SortOnClick(1/*exUserSort*/);
	extree1.Columns().Add("Items");
	COM::createFromVariant(extree1.Columns().Add("Sort")).Visible(false);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellCaption(com_Items.AddItem("Item 1 (3)"),COMVariant::createFromInt(1),COMVariant::createFromInt(3));
		com_Items.CellCaption(com_Items.AddItem("Item 2 (1)"),COMVariant::createFromInt(1),COMVariant::createFromInt(1));
		com_Items.CellCaption(com_Items.AddItem("Item 3 (2)"),COMVariant::createFromInt(1),COMVariant::createFromInt(2));
	extree1.EndUpdate();
}
570:
I have a 3 level hierarchy in the treeview, and I want to create a filter that only shows the items in the 2nd level of the hierarchy, is this possible

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h,hChild,hSubChild;
	;

	super();

	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.MarkSearchColumn(false);
	extree1.Columns().Add("Items");
	COM::createFromVariant(extree1.Columns().Add("Level")).Visible(false);
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Parent");
		com_Items.CellCaption(h,COMVariant::createFromInt(1),COMVariant::createFromInt(0));
		hChild = com_Items.InsertItem(h,,"Child 1.1");
		com_Items.CellCaption(hChild,COMVariant::createFromInt(1),COMVariant::createFromInt(1));
		hSubChild = com_Items.InsertItem(hChild,,"SubChild A");
		com_Items.CellCaption(hSubChild,COMVariant::createFromInt(1),COMVariant::createFromInt(2));
		hChild = com_Items.InsertItem(h,,"Child 1.2");
		com_Items.CellCaption(hChild,COMVariant::createFromInt(1),COMVariant::createFromInt(1));
		hSubChild = com_Items.InsertItem(hChild,,"SubChild B");
		com_Items.CellCaption(hSubChild,COMVariant::createFromInt(1),COMVariant::createFromInt(2));
		com_Items.ExpandItem(h,true);
	extree1.FilterInclude(4/*exMatchingItemsOnly*/);
	var_Column = COM::createFromObject(extree1.Columns()).Item("Level"); com_Column = var_Column;
		com_Column.FilterType(240/*exFilter*/);
		com_Column.Filter(2);
	extree1.ApplyFilter();
}
569:
How can I sort by two-columns, one by date and one by time

public void init()
{
	COM com_Column,com_Columns,com_Items;
	anytype var_Column,var_Columns,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.SingleSort(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Index")).FormatColumn("1 index ``");
		COM::createFromVariant(com_Columns.Add("Date")).SortType(2/*SortDate*/);
		var_Column = COM::createFromVariant(com_Columns.Add("Time")); com_Column = var_Column;
			com_Column.SortType(4/*SortTime*/);
			com_Column.FormatColumn("time(value)");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem(COMVariant::createFromInt(0));
		com_Items.CellCaption(h,COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("1/1/2001",213)));
		com_Items.CellCaption(h,COMVariant::createFromInt(2),COMVariant::createFromUtcDateTime(str2Datetime("1/1/2001 10:00:00",213)));
		h = com_Items.AddItem(COMVariant::createFromInt(0));
		com_Items.CellCaption(h,COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/31/2000",213)));
		com_Items.CellCaption(h,COMVariant::createFromInt(2),COMVariant::createFromUtcDateTime(str2Datetime("1/1/2001 10:00:00",213)));
		h = com_Items.AddItem(COMVariant::createFromInt(0));
		com_Items.CellCaption(h,COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("1/1/2001",213)));
		com_Items.CellCaption(h,COMVariant::createFromInt(2),COMVariant::createFromUtcDateTime(str2Datetime("1/1/2001 6:00:00",213)));
		h = com_Items.AddItem(COMVariant::createFromInt(0));
		com_Items.CellCaption(h,COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/31/2000",213)));
		com_Items.CellCaption(h,COMVariant::createFromInt(2),COMVariant::createFromUtcDateTime(str2Datetime("1/1/2001 8:00:00",213)));
		h = com_Items.AddItem(COMVariant::createFromInt(0));
		com_Items.CellCaption(h,COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("1/1/2001",213)));
		com_Items.CellCaption(h,COMVariant::createFromInt(2),COMVariant::createFromUtcDateTime(str2Datetime("1/1/2001 8:00:00",213)));
		h = com_Items.AddItem(COMVariant::createFromInt(0));
		com_Items.CellCaption(h,COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/31/2000",213)));
		com_Items.CellCaption(h,COMVariant::createFromInt(2),COMVariant::createFromUtcDateTime(str2Datetime("1/1/2001 6:00:00",213)));
	extree1.Layout("multiplesort=\"C1:1 C2:1\"");
	extree1.EndUpdate();
}
568:
We are using custom buttons for the +/- on the treeview control, is there a way to control the size of the image

public void init()
{
	COM com_Appearance,com_Items;
	anytype var_Appearance,var_Items;
	int h;
	str var_s,var_s1;
	;

	super();

	extree1.BeginUpdate();
	var_Appearance = extree1.VisualAppearance(); com_Appearance = var_Appearance;
		var_s = "gBFLBCJwBAEHhEJAAChABDEMACAADACAxRDQNABQKAAzQFAYbBkGqGAAGIYxYgmFgAQhFcZQSKUOQTDKMIziaQIRg8JYlDTJcIjKKEVQHFiXIrAKKwEgmEQMQiCcbzXI";
		var_s = var_s + "UBxAAqVZZFUaKAi+Qg4TLBAzUSAAYhtHqeJBjID4JA6UJXRpIAIQSSBUjGOg6TiMUYZAguAxCEzZUT0fAYUQSCC3ZzDCKoRpiCT7Xg8V5OVbjUz9P7AMBwLA7erxap6P";
		var_s = var_s + "JeD54QymGp/R5eMhyLI8UxXFqRY6veKtJhGDIrT5CEIQVA9EyXJqnahqOiaCguPorQy/dYYdg2BYBPS6MAvG4bVrOd59XrgN42fY2ByzAqlMQwS7rOqiY6YWTnehWToH";
		var_s = var_s + "E+JZUmoLB5CufQuAkBYkGO+ZrDWAo7keZZyHmH5+i8X4bluaJyHgGB9mQHx3JjBpViqJRHmueZ7H8Xo3i2fYAl+d5tncMRfDcdZeDMDIjCCJwokoEoQiEJ4KCIfIdgUS";
		var_s = var_s + "ZIAWaoGCEUh2BIJ4gnKBgMDICAnHoCggg0Aw4k0KAJkIagaguYwIj4LAmiKEw2CUIIiHMUJSDQSYyGCFYMGQCJCD0JRjiMRg3gmTYjGSVgmgkchSD4JJklIRIXCSSQYj";
		var_s = var_s + "4U4UgkQhGE+EwJEkJJWhGpgGGIOBNmMdhPg8SRiHCGAlibNhohqJpJi4T4ZA2WYIgEYInGOGJlDkCQyECDoTEkKQ+E+C5oCIVhQCUCQpnSDoeg4SZZH8YdhjibQ7AiUg";
		var_s = var_s + "kgcJFyiyEYmGmOhqhyJ5pmILoYCKaRSB6Eg7CcZgZggaRqHqNoTiuDpKkKMormsQ4xiUYgYiKEo6CCWgWiqPovloZoGjoKQYiQBCAg==";
		com_Appearance.Add(3,COMVariant::createFromStr(var_s));
		var_s1 = "gBFLBCJwBAEHhEJAAChABDcMACAADACAxRDQNABQKAAzQFAYbBkGqGAAGIYxYgmFgAQhFcZQSKUOQTDKMIziaQIRg8JYlDTJcIjKKEVQHFiXIrAKKwEgmEQMQiCcbzXI";
		var_s1 = var_s1 + "UBxAAqVZZFUaKAi+Qg4TLBAzUSAAYhtHqeJBjID4JA6UJXRpIAIQSSBUjGOg6TiMUYZAguAxCEzZUT0fAYUQSCC3ZzDCKoRpiCT7Xg8V5OVbjUz9P7AMBwLA7erxap6P";
		var_s1 = var_s1 + "JeD54QymGp/R5eMhyLI8UxXFqRY6veKtJhGDIrT5CEIQVA9EyXJqnahqOiaCguPorQy/dYYdg2BYBPS6MAvG4bVrOd59XrgN42fY2ByzAqlMQwS7rOqiY6YWTnehWToH";
		var_s1 = var_s1 + "E+JZUmoLB5CufQuAkBYkGO+ZrDWAo7keZZyHmPQ+g8X4fluYBhneEB9l0Iwpg6RRWiqFQfg+V5nnefh/GAB5yAIfRMFeRZdHeDJDCiSApkoMoEiQKBJmKCIfCcYQiHIF";
		var_s1 = var_s1 + "YFkmeBaBOA5JmgMIhgITICAmXoBkgIxAk4MxKAIcIaD+YpIjYLoLmMCI2CkJoiGMNgiCCIhDFCUg0EmMhghWDBkAkBg9CUY4jEYN4JA2IxklYJoJHIUg+CSZJSESFwkm";
		var_s1 = var_s1 + "UKRSFOFRlCIUIRhOZJCFISQ1iQdgEgGGJOBMeJdhOY5SFiHAmAkaYmG6GwmhmLhthsJJ5hSXYYkgFgKHgOYOFOEITCQCJpDSEoTmgQhUhOIRoHoGoCh+SJpnCZIeBedg";
		var_s1 = var_s1 + "aHgO4OlOMINCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYYYgaFopiuaRakCbIsisSpGjYOwaFYIYKCkK5CA2IRqiwCwFiYaBrkKEYKEAQCAgA==";
		com_Appearance.Add(4,COMVariant::createFromStr(var_s1));
		com_Appearance.Add(1,"CP:3 -4 -4 4 4");
		com_Appearance.Add(2,"CP:4 -4 -4 4 4");
	extree1.DefaultItemHeight(22);
	extree1.LinesAtRoot(1/*exGroupLinesAtRoot*/);
	extree1.HasButtons(4/*exCustom*/);
	extree1.HasButtonsCustom(0,16777216);
	extree1.HasButtonsCustom(1,33554432);
	extree1.Columns().Add("Column");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child");
	extree1.EndUpdate();
}
567:
How can I connect to a DBF file
public void init()
{
	COM com_rs;
	anytype rs;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(false);
	extree1.ContinueColumnScroll(false);
	extree1.MarkSearchColumn(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Select * From foxcode.DBF","Provider=vfpoledb;Data Source=C:\\Program Files\\Microsoft Visual FoxPro 9\\",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	extree1.DataSource(rs);
	extree1.EndUpdate();
}
566:
Do you have any Fit-To-Page options when printing the control

public void init()
{
	COM com_Print,com_rs;
	anytype rs,var_Print;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\VB\\SAMPLE.MDB",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	extree1.DataSource(rs);
	extree1.EndUpdate();
	// 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 = On");
		com_Print.PrintExt(extree1);
		com_Print.Preview();
}
565:
Does your control supports scrolling by touching the screen

public void init()
{
	COM com_rs;
	anytype rs;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\VB\\SAMPLE.MDB",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	extree1.DataSource(rs);
	extree1.AutoDrag(4112/*exAutoDragScrollOnShortTouch | exAutoDragScroll*/);
	extree1.ScrollBySingleLine(true);
	extree1.ContinueColumnScroll(true);
	extree1.EndUpdate();
}
564:
How do I prevent showing the control's BackColorAlternate property on empty / non-items part of the control

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	extree1.BackColorAlternate(0x7ff0f0f0);
	extree1.Columns().Add("Column");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
		com_Items.AddItem("Item 4");
		com_Items.AddItem("Item 5");
}
563:
Is there a syntax for conditional formatting of items, based on CellState/CellStateChange

// CellStateChanged event - Fired after cell's state has been changed.
void onEvent_CellStateChanged(int   _Item,int   _ColIndex)
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellCaption(_Item,COMVariant::createFromInt(2),com_Items.CellState(_Item,COMVariant::createFromInt(0)));
}

public void init()
{
	COM com_Column,com_ConditionalFormat,com_Items;
	anytype var_Column,var_ConditionalFormat,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.ShowFocusRect(false);
	extree1.MarkSearchColumn(false);
	extree1.SelBackMode(1/*exTransparent*/);
	var_ConditionalFormat = COM::createFromObject(extree1.ConditionalFormats()).Add("%2 != 0"); com_ConditionalFormat = var_ConditionalFormat;
		com_ConditionalFormat.Bold(true);
		com_ConditionalFormat.ForeColor(WinApi::RGB2int(255,0,0));
		com_ConditionalFormat.ApplyTo(-1/*exFormatToItems*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.Width(16);
		com_Column.AllowSizing(false);
	extree1.Columns().Add("Information");
	COM::createFromVariant(extree1.Columns().Add("Hidden")).Visible(false);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellCaption(com_Items.AddItem(""),COMVariant::createFromInt(1),"This is a bit of text associated");
		h = com_Items.AddItem("");
		com_Items.CellCaption(h,COMVariant::createFromInt(1),"This is a bit of text associated");
		com_Items.CellState(h,COMVariant::createFromInt(0),1);
		com_Items.CellCaption(com_Items.AddItem(""),COMVariant::createFromInt(1),"This is a bit of text associated");
	extree1.EndUpdate();
}
562:
How can I start editing the cell as soon as the user clicks a cell

// AfterCellEdit event - Occurs after data in the current cell is edited.
void onEvent_AfterCellEdit(int   _Item,int   _ColIndex,str   _NewCaption)
{
	;
	extree1.Items().CellCaption(_Item,_ColIndex,_NewCaption);
}

// CancelCellEdit event - Occurs if the edit operation is canceled.
void onEvent_CancelCellEdit(int   _Item,int   _ColIndex,COMVariant   _Reserved)
{
	;
	extree1.Items().CellCaption(_Item,_ColIndex,_Reserved);
}

// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
void onEvent_Click()
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.Edit(com_Items.FocusItem(),COMVariant::createFromInt(0));
}

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	extree1.AllowEdit(true);
	extree1.Columns().Add("Column");
	extree1.Items().AddItem("Item 1");
	extree1.Items().AddItem("Item 2");
	extree1.Items().AddItem("");
}
561:
How do I programmatically exclude items from the filter

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.FilterList(9472/*exShowExclude | exShowFocusItem | exShowCheckBox*/);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
		com_Items.AddItem("Item 4");
	var_Column1 = COM::createFromObject(extree1.Columns()).Item(COMVariant::createFromInt(0)); com_Column1 = var_Column1;
		com_Column1.FilterType(752/*exFilterExclude | exFilter*/);
		com_Column1.Filter("Item 1|Item 4");
	extree1.ApplyFilter();
	extree1.EndUpdate();
}
560:
How can I sort the columns to be displayed on the columns floating bar

public void init()
{
	COM com_Columns;
	anytype var_Columns;
	;

	super();

	extree1.ColumnAutoResize(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("City")).Visible(false);
		COM::createFromVariant(com_Columns.Add("Start")).Visible(false);
		COM::createFromVariant(com_Columns.Add("End")).Visible(false);
	extree1.ColumnsFloatBarVisible(true);
	extree1.ColumnsFloatBarSortOrder(1/*SortAscending*/);
}
559:
How can I add a vertical padding

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.DrawGridLines(-1/*exAllLines*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Padding")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.Def(16/*exCellSingleLine*/,COMVariant::createFromBoolean(false));
		com_Column.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(6));
		com_Column.Def(49/*exCellPaddingRight*/,COMVariant::createFromInt(6));
		com_Column.Def(50/*exCellPaddingTop*/,COMVariant::createFromInt(6));
		com_Column.Def(51/*exCellPaddingBottom*/,COMVariant::createFromInt(6));
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("padding");
		com_Items.AddItem("padding");
	extree1.EndUpdate();
}
558:
Is the PutItems method running .AddItem event

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void onEvent_AddItem(int   _Item)
{
	;
	print( "Adding ..." );
	print( extree1.Items().CellCaption(_Item,COMVariant::createFromInt(0)) );
}

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.Columns().Add("Def");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
	print( "Call PutItems" );
	extree1.PutItems(extree1.GetItems(COMVariant::createFromInt(-1)));
}
557:
How do you embed HTML options into the anchor click string

// AnchorClick event - Occurs when an anchor element is clicked.
void onEvent_AnchorClick(str   _AnchorID,str   _Options)
{
	;
	print( _AnchorID );
	print( _Options );
}

public void init()
{
	COM com_Columns,com_Items;
	anytype var_Columns,var_Items;
	;

	super();

	extree1.BeginUpdate();
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		COM::createFromVariant(com_Columns.Add("Car")).Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("<a mazda_1;options for 1>Mazda <b>1</b></a>");
		com_Items.AddItem("<a mazda_2;options for 2>Mazda <b>2</b></a>");
		com_Items.AddItem("<a mazda_3;options for 3a>Mazda <b>3.a</b></a>");
		com_Items.AddItem("<a mazda_3;options for 3b>Mazda <b>3.b</b></a>");
	extree1.EndUpdate();
}
556:
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 3)

public void init()
{
	COM com_Items;
	anytype var_Items;
	str var_s;
	;

	super();

	extree1.BeginUpdate();
	var_s = "gBFLBCJwBAEHhEJAEGg4BVEIQAAYAQGKIYBkAKBQAGaAoDDMOQwQwAAxjGKEEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQCWIAzATGYBRfIUEgjBM6ExwG78eg";
	var_s = var_s + "BHp/ZpkACIJJAaRjHQdJxGKKMQB9DIhCZpeKhWgkKIJBzOEyBRC4ERBGqNGrsIgLEqWZpnWhaNpWXYTLyBN64LhuK46g53O6wLxvK6hEr2dJ/YBcIAOfghf4NQ7EMRxL";
	var_s = var_s + "C8Mw3BDvYDkOAABAIgI=";
	extree1.VisualAppearance().Add(1,COMVariant::createFromStr(var_s));
	extree1.SelBackColor(0x1fffffe);
	extree1.ShowFocusRect(false);
	extree1.Columns().Add("Items");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.ItemBackColor(com_Items.AddItem("red"),WinApi::RGB2int(255,0,0));
		com_Items.ItemBackColor(com_Items.AddItem("blue"),WinApi::RGB2int(0,0,255));
		com_Items.ItemBackColor(com_Items.AddItem("green"),WinApi::RGB2int(0,255,0));
	extree1.EndUpdate();
}
555:
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 2)

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.SelBackMode(1/*exTransparent*/);
	extree1.ShowFocusRect(false);
	extree1.Columns().Add("Items");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.ItemBackColor(com_Items.AddItem("red"),WinApi::RGB2int(255,0,0));
		com_Items.ItemBackColor(com_Items.AddItem("blue"),WinApi::RGB2int(0,0,255));
		com_Items.ItemBackColor(com_Items.AddItem("green"),WinApi::RGB2int(0,255,0));
	extree1.EndUpdate();
}
554:
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 1)

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.SelBackColor(extree1.BackColor());
	extree1.SelForeColor(extree1.ForeColor());
	extree1.ShowFocusRect(true);
	extree1.Columns().Add("Items");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.ItemBackColor(com_Items.AddItem("red"),WinApi::RGB2int(255,0,0));
		com_Items.ItemBackColor(com_Items.AddItem("blue"),WinApi::RGB2int(0,0,255));
		com_Items.ItemBackColor(com_Items.AddItem("green"),WinApi::RGB2int(0,255,0));
	extree1.EndUpdate();
}
553:
How do I arrange my columns on multiple levels

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns;
	anytype var_Column,var_Column1,var_Column2,var_Columns;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(false);
	extree1.DrawGridLines(-1/*exAllLines*/);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("C0")); com_Column = var_Column;
			com_Column.ExpandColumns("1,2");
			com_Column.DisplayExpandButton(false);
		com_Columns.Add("C1");
		com_Columns.Add("C2");
		com_Columns.Add("C3");
		var_Column1 = COM::createFromVariant(com_Columns.Add("C4")); com_Column1 = var_Column1;
			com_Column1.ExpandColumns("5,6");
			com_Column1.DisplayExpandButton(false);
		com_Columns.Add("C5");
		var_Column2 = COM::createFromVariant(com_Columns.Add("C6")); com_Column2 = var_Column2;
			com_Column2.ExpandColumns("6,7");
			com_Column2.DisplayExpandButton(false);
		com_Columns.Add("C7");
	extree1.EndUpdate();
}
552:
Does your control support expandable header or columns, so I can arrange it on multiple levels

public void init()
{
	COM com_Column,com_Column1,com_Columns;
	anytype var_Column,var_Column1,var_Columns;
	;

	super();

	extree1.BeginUpdate();
	extree1.DrawGridLines(-1/*exAllLines*/);
	extree1.BackColorLevelHeader(WinApi::RGB2int(240,240,240));
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Photo")); com_Column = var_Column;
			com_Column.AllowSizing(false);
			com_Column.Width(32);
		com_Columns.Add("Personal Info");
		com_Columns.Add("Title");
		com_Columns.Add("Name");
		com_Columns.Add("First");
		com_Columns.Add("Last");
		com_Columns.Add("Address");
		var_Column1 = COM::createFromObject(com_Columns.Item("Personal Info")); com_Column1 = var_Column1;
		com_Column1.ExpandColumns("2,3");
		var_Column1 = com_Columns.Item("Name"); com_Column1 = var_Column1;
			com_Column1.ExpandColumns("4,5");
			com_Column1.Expanded(false);
	extree1.EndUpdate();
}
551:
Does your control support subscript or superscript, in HTML captions

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	int h;
	;

	super();

	extree1.ColumnAutoResize(false);
	extree1.HeaderHeight(28);
	extree1.DefaultItemHeight(24);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Column 1")); com_Column = var_Column;
			com_Column.HTMLCaption("Column <b><off 2><font ;6>1");
			com_Column.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
		var_Column1 = COM::createFromVariant(com_Columns.Add("Column 2")); com_Column1 = var_Column1;
			com_Column1.HTMLCaption("Column <b><off 2><font ;6>2");
			com_Column1.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
		var_Column2 = COM::createFromVariant(com_Columns.Add("Column 3")); com_Column2 = var_Column2;
			com_Column2.HTMLCaption("Column <b><off 2><font ;6>3");
			com_Column2.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Item <font ;6><off 4>1");
		com_Items.CellCaption(h,COMVariant::createFromInt(1),"Item <font ;6><off -6>2");
		com_Items.CellCaption(h,COMVariant::createFromInt(2),"Item <b><font ;6><off -6>2<off 4>3<off 4>1");
}
550:
Is there any property I can save and restore automatically the current setting, column position, size, and so on (2)

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.Columns().Add("Column");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
	extree1.Layout("Select=\"0\";SingleSort=\"C0:2\";Columns=1");
	extree1.EndUpdate();
}
549:
Is there any property I can save and restore automatically the current setting, column position, size, and so on (1)

public void init()
{
	COM com_Items;
	anytype var_Items;
	str var_s;
	;

	super();

	extree1.BeginUpdate();
	extree1.Columns().Add("Column");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.AddItem("Item 2");
		com_Items.AddItem("Item 3");
	var_s = "gBjAAwAAuABmABpABsAB0ABlAByhoAPIAOEPAA9gYABoABQAgUEg0XN4AOcJicKkpujMbjsfkMFk0YhkQgUOjUEl8gjcGO0ok8KMULjEaGMcj08kQAO8oMkTNEtGwAGQ";
	var_s = var_s + "Aqc7gUlhh1ABtAEsk9GpEfhElgVcsMupNlnlonlaAFcr0shUsp8QPEtnVJqJhmcIhUMh0QiU5sYAqMngUSuEMw07k8Qv0SgVRrNEuVflF2jF5x9JyNEm0TjQijemyE0j";
	var_s = var_s + "E3t+YruauoAu4Az1qj9BzRn0UzksSnAA0xDjY6qnAw8OiUQ0dwzN0zWz2t7j8/xURAGNvWH6k8xlEhklhEI0O/6QAgI=";
	extree1.Layout(var_s);
	extree1.EndUpdate();
}
548:
I have noticed that the column's header is changed once the cursor hovers it. Is it possible to change that visual appearance

public void init()
{
	COM com_Columns;
	anytype var_Columns;
	;

	super();

	extree1.VisualAppearance().Add(1,"c:\\exontrol\\images\\normal.ebn");
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Column 1");
		com_Columns.Add("Column 2");
	extree1.BackColorHeader(0x1000000);
	extree1.Background(32/*exCursorHoverColumn*/,0x12d86ff);
}
547:
Is it possible to change the visual appearance of the columns selector/floating bar(3)

public void init()
{
	COM com_Columns;
	anytype var_Columns;
	;

	super();

	extree1.ColumnAutoResize(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Column 1");
		COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
	extree1.VisualAppearance().Add(2,"c:\\exontrol\\images\\normal.ebn");
	extree1.VisualAppearance().Add(3,"c:\\exontrol\\images\\pushed.ebn");
	extree1.Background(92/*exColumnsFloatAppearance*/,0x2000000);
	extree1.Background(87/*exColumnsFloatBackColor*/,0x3000000);
	extree1.Background(93/*exColumnsFloatCaptionBackColor*/,WinApi::RGB2int(246,245,240));
	extree1.ColumnsFloatBarVisible(true);
}
546:
Is it possible to change the visual appearance of the columns selector/floating bar(2)

public void init()
{
	COM com_Columns;
	anytype var_Columns;
	;

	super();

	extree1.ColumnAutoResize(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Column 1");
		COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
	extree1.VisualAppearance().Add(3,"c:\\exontrol\\images\\pushed.ebn");
	extree1.Background(87/*exColumnsFloatBackColor*/,0x3000000);
	extree1.ColumnsFloatBarVisible(true);
}
545:
Is it possible to change the visual appearance of the columns selector/floating bar(1)

public void init()
{
	;

	super();

	extree1.VisualAppearance().Add(2,"c:\\exontrol\\images\\normal.ebn");
	extree1.Background(92/*exColumnsFloatAppearance*/,0x2000000);
	extree1.Background(87/*exColumnsFloatBackColor*/,WinApi::RGB2int(246,245,240));
	extree1.Background(93/*exColumnsFloatCaptionBackColor*/,WinApi::RGB2int(246,245,240));
	extree1.ColumnsFloatBarVisible(true);
}
544:
I am using the ColumnsFloatBarVisible property on True, but still not able to add any column on that list

public void init()
{
	COM com_Columns;
	anytype var_Columns;
	;

	super();

	extree1.ColumnAutoResize(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Column 1");
		COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
	extree1.ColumnsFloatBarVisible(true);
}
543:
Is it possible to list a column to columns selector/floating bar, but still user can use it

public void init()
{
	COM com_Column,com_Columns;
	anytype var_Column,var_Columns;
	;

	super();

	extree1.ColumnAutoResize(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Column 1");
		COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
		var_Column = COM::createFromVariant(com_Columns.Add("Column 3")); com_Column = var_Column;
			com_Column.Visible(false);
			com_Column.Enabled(false);
	extree1.ColumnsFloatBarVisible(true);
}
542:
How can I prevent a specific column not to be listed in the columns selector/floating bar

public void init()
{
	COM com_Column,com_Columns;
	anytype var_Column,var_Columns;
	;

	super();

	extree1.ColumnAutoResize(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Column 1");
		COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
		var_Column = COM::createFromVariant(com_Columns.Add("Column 3")); com_Column = var_Column;
			com_Column.Visible(false);
			com_Column.AllowDragging(false);
	extree1.ColumnsFloatBarVisible(true);
}
541:
Is it possible to change the "Columns" caption being shown in the columns selector/floating bar

public void init()
{
	COM com_Columns;
	anytype var_Columns;
	;

	super();

	extree1.ColumnAutoResize(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Column 1");
		COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
	extree1.Description(26/*exColumnsFloatBar*/,"Hidden Columns");
	extree1.ColumnsFloatBarVisible(true);
}
540:
How can I show the columns selector, so the user can drag and drop columns to the view

public void init()
{
	COM com_Columns;
	anytype var_Columns;
	;

	super();

	extree1.ColumnAutoResize(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Column 1");
		COM::createFromVariant(com_Columns.Add("Column 2")).Visible(false);
	extree1.ColumnsFloatBarVisible(true);
}
539:
The column's header is changed while the cursor hovers it. Is it possible to prevent that

public void init()
{
	COM com_Columns;
	anytype var_Columns;
	;

	super();

	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Column 1");
		com_Columns.Add("Column 2");
	extree1.Background(32/*exCursorHoverColumn*/,-1);
}
538:
Is there any public method to export the selected data

public void init()
{
	COM com_Columns,com_Items;
	anytype var_Columns,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.MarkSearchColumn(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("C1");
		COM::createFromVariant(com_Columns.Add("C2")).FormatColumn("1 index `A-Z`");
		COM::createFromVariant(com_Columns.Add("C3")).FormatColumn("100 index ``");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Item 1");
		com_Items.SelectItem(com_Items.AddItem("Item 2"),true);
		com_Items.AddItem("Item 3");
	extree1.EndUpdate();
	print( "Export CSV Selected Items Only:" );
	print( extree1.Export("","sel") );
}
537:
Is it possible to auto-numbering the children items but still keeps the position after filtering

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Column6,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Column6,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Items")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterType(240/*exFilter*/);
		com_Column.Filter("Child 2");
	var_Column1 = COM::createFromVariant(extree1.Columns().Add("Pos.1")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("1 ropos ''");
		com_Column1.Position(0);
		com_Column1.Width(32);
		com_Column1.AllowSizing(false);
	var_Column2 = COM::createFromVariant(extree1.Columns().Add("Pos.2")); com_Column2 = var_Column2;
		com_Column2.FormatColumn("1 ropos ':'");
		com_Column2.Position(1);
		com_Column2.Width(32);
		com_Column2.AllowSizing(false);
	var_Column3 = COM::createFromVariant(extree1.Columns().Add("Pos.3")); com_Column3 = var_Column3;
		com_Column3.FormatColumn("1 ropos ':|A-Z'");
		com_Column3.Position(2);
		com_Column3.Width(32);
		com_Column3.AllowSizing(false);
	var_Column4 = COM::createFromVariant(extree1.Columns().Add("Pos.4")); com_Column4 = var_Column4;
		com_Column4.FormatColumn("1 ropos '|A-Z|'");
		com_Column4.Position(3);
		com_Column4.Width(32);
		com_Column4.AllowSizing(false);
	var_Column5 = COM::createFromVariant(extree1.Columns().Add("Pos.5")); com_Column5 = var_Column5;
		com_Column5.FormatColumn("'<font Tahoma;7>' + 1 ropos '-<b>||A-Z'");
		com_Column5.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
		com_Column5.Position(4);
		com_Column5.Width(32);
		com_Column5.AllowSizing(false);
	var_Column6 = COM::createFromVariant(extree1.Columns().Add("Pos.6")); com_Column6 = var_Column6;
		com_Column6.FormatColumn("'<b>'+ 1 ropos '</b>:<fgcolor=FF0000>|A-Z|'");
		com_Column6.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
		com_Column6.Position(5);
		com_Column6.Width(48);
		com_Column6.AllowSizing(false);
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
	extree1.ApplyFilter();
	extree1.EndUpdate();
}
536:
Is it possible to auto-numbering the children items too

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Column4,com_Column5,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Column4,var_Column5,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.Columns().Add("Items");
	var_Column = COM::createFromVariant(extree1.Columns().Add("Pos.1")); com_Column = var_Column;
		com_Column.FormatColumn("1 rpos ''");
		com_Column.Position(0);
		com_Column.Width(32);
		com_Column.AllowSizing(false);
	var_Column1 = COM::createFromVariant(extree1.Columns().Add("Pos.2")); com_Column1 = var_Column1;
		com_Column1.FormatColumn("1 rpos ':'");
		com_Column1.Position(1);
		com_Column1.Width(32);
		com_Column1.AllowSizing(false);
	var_Column2 = COM::createFromVariant(extree1.Columns().Add("Pos.3")); com_Column2 = var_Column2;
		com_Column2.FormatColumn("1 rpos ':|A-Z'");
		com_Column2.Position(2);
		com_Column2.Width(32);
		com_Column2.AllowSizing(false);
	var_Column3 = COM::createFromVariant(extree1.Columns().Add("Pos.4")); com_Column3 = var_Column3;
		com_Column3.FormatColumn("1 rpos '|A-Z|'");
		com_Column3.Position(3);
		com_Column3.Width(32);
		com_Column3.AllowSizing(false);
	var_Column4 = COM::createFromVariant(extree1.Columns().Add("Pos.5")); com_Column4 = var_Column4;
		com_Column4.FormatColumn("'<font Tahoma;7>' + 1 rpos '-<b>||A-Z'");
		com_Column4.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
		com_Column4.Position(4);
		com_Column4.Width(32);
		com_Column4.AllowSizing(false);
	var_Column5 = COM::createFromVariant(extree1.Columns().Add("Pos.6")); com_Column5 = var_Column5;
		com_Column5.FormatColumn("'<b>'+ 1 rpos '</b>:<fgcolor=FF0000>|A-Z|'");
		com_Column5.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
		com_Column5.Position(5);
		com_Column5.Width(48);
		com_Column5.AllowSizing(false);
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
	extree1.EndUpdate();
}
535:
How can I find if there is any filter applied to the control

// FilterChange event - Notifies your application that the filter is changed.
void onEvent_FilterChange()
{
	;
	print( "If negative, the filter is present, else not" );
	print( extree1.Items().VisibleItemCount() );
}

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.TreeColumnIndex(-1);
	extree1.FilterInclude(4/*exMatchingItemsOnly*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Column")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterType(240/*exFilter*/);
		com_Column.Filter("C1");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("R1");
		com_Items.InsertItem(h,,"C1");
		com_Items.InsertItem(h,,"C2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("R2");
		com_Items.InsertItem(h,,"C1");
		com_Items.InsertItem(h,,"C2");
	extree1.ApplyFilter();
	extree1.EndUpdate();
}
534:
How can I prevent showing the lines for the hierarchy while using the exMatchingItemsOnly option

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.TreeColumnIndex(-1);
	extree1.FilterInclude(4/*exMatchingItemsOnly*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Column")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterType(240/*exFilter*/);
		com_Column.Filter("C1|C2");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("R1");
		com_Items.InsertItem(h,,"C1");
		com_Items.InsertItem(h,,"C2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("R2");
		com_Items.InsertItem(h,,"C1");
		com_Items.InsertItem(h,,"C2");
	extree1.ApplyFilter();
	extree1.EndUpdate();
}
533:
Is there any method to get only the matched items and not the items with his parent

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.FilterInclude(4/*exMatchingItemsOnly*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Column")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.FilterType(240/*exFilter*/);
		com_Column.Filter("C1|C2");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("R1");
		com_Items.InsertItem(h,,"C1");
		com_Items.InsertItem(h,,"C2");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("R2");
		com_Items.InsertItem(h,,"C1");
		com_Items.InsertItem(h,,"C2");
	extree1.ApplyFilter();
	extree1.EndUpdate();
}
532:
How can I add or change the padding (spaces) for captions in the control's header

public void init()
{
	COM com_Column;
	anytype var_Column;
	;

	super();

	extree1.BeginUpdate();
	COM::createFromVariant(extree1.Columns().Add("Padding-Left")).Def(52/*exHeaderPaddingLeft*/,COMVariant::createFromInt(18));
	var_Column = COM::createFromVariant(extree1.Columns().Add("Padding-Right")); com_Column = var_Column;
		com_Column.Def(53/*exHeaderPaddingRight*/,COMVariant::createFromInt(18));
		com_Column.HeaderAlignment(2/*RightAlignment*/);
	extree1.EndUpdate();
}
531:
Do you have any plans to add cell spacing and cell padding to the cells

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.DrawGridLines(-2/*exRowLines*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Padding-Left")); com_Column = var_Column;
		com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
		com_Column.Def(48/*exCellPaddingLeft*/,COMVariant::createFromInt(18));
	COM::createFromVariant(extree1.Columns().Add("No-Padding")).Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
	COM::createFromVariant(extree1.Columns().Add("Empty")).Position(0);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellCaption(com_Items.AddItem("Item A.1"),COMVariant::createFromInt(1),"Item A.2");
		com_Items.CellCaption(com_Items.AddItem("Item B.1"),COMVariant::createFromInt(1),"Item B.2");
		com_Items.CellCaption(com_Items.AddItem("Item C.1"),COMVariant::createFromInt(1),"Item C.2");
	extree1.EndUpdate();
}
530:
Is it possible display numbers in the same format no matter of regional settings in the control panel

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	COM::createFromVariant(extree1.Columns().Add("Def")).Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem(COMVariant::createFromReal(100000.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '') +  ' <fgcolor=808080>(default positive)'");
		h = com_Items.AddItem(COMVariant::createFromReal(100000.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '2|.|3|,|1|1')");
		h = com_Items.AddItem(COMVariant::createFromReal(-100000.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '') +  ' <fgcolor=808080>(default negative)'");
		h = com_Items.AddItem(COMVariant::createFromReal(-100000.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '2|.|3|,|1|1')");
	extree1.EndUpdate();
}
529:
Is it possible to add a 0 for numbers less than 1 instead .7 to show 0.8

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	COM::createFromVariant(extree1.Columns().Add("Def")).Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem(COMVariant::createFromReal(0.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '') +  ' <fgcolor=808080>(default)'");
		h = com_Items.AddItem(COMVariant::createFromReal(0.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '|||||0') +  ' <fgcolor=808080>(Display no leading zeros)'");
	extree1.EndUpdate();
}
528:
How can I specify the format for negative numbers

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	COM::createFromVariant(extree1.Columns().Add("Def")).Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem(COMVariant::createFromReal(-100000.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '') +  ' <fgcolor=808080>(default)'");
		h = com_Items.AddItem(COMVariant::createFromReal(-100000.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '||||1') +  ' <fgcolor=808080>(Negative sign, number; for example, -1.1)'");
	extree1.EndUpdate();
}
527:
Is it possible to change the grouping character when display numbers

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	COM::createFromVariant(extree1.Columns().Add("Def")).Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem(COMVariant::createFromReal(100000.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '') +  ' <fgcolor=808080>(default)'");
		h = com_Items.AddItem(COMVariant::createFromReal(100000.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '|||-') +  ' <fgcolor=808080>(grouping character is -)'");
	extree1.EndUpdate();
}
526:
How can I display numbers with 2 digits in each group

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	COM::createFromVariant(extree1.Columns().Add("Def")).Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem(COMVariant::createFromReal(100000.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '') +  ' <fgcolor=808080>(default)'");
		h = com_Items.AddItem(COMVariant::createFromReal(100000.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '||2') +  ' <fgcolor=808080>(grouping by 2 digits)'");
	extree1.EndUpdate();
}
525:
How can I display my numbers using a different decimal separator

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	COM::createFromVariant(extree1.Columns().Add("Def")).Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem(COMVariant::createFromReal(100.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '') +  ' <fgcolor=808080>(default)'");
		h = com_Items.AddItem(COMVariant::createFromReal(100.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '|;') +  ' <fgcolor=808080>(decimal separator is <b>;</b>)'");
	extree1.EndUpdate();
}
524:
Is it possible to display the numbers using 3 (three) digits

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	COM::createFromVariant(extree1.Columns().Add("Def")).Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem(COMVariant::createFromReal(100.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '') +  ' <fgcolor=808080>(default)'");
		h = com_Items.AddItem(COMVariant::createFromReal(100.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format '3') +  ' <fgcolor=808080>(3 digits)'");
		h = com_Items.AddItem(COMVariant::createFromReal(100.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format 2) +  '  <fgcolor=808080>(2 digits)'");
		h = com_Items.AddItem(COMVariant::createFromReal(100.27));
		com_Items.FormatCell(h,COMVariant::createFromInt(0),"(value format 1) +  ' <fgcolor=808080>(1 digit)'");
	extree1.EndUpdate();
}
523:
Is it possible to format numbers

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Column3,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Column3,var_Columns,var_Items;
	int h,h1;
	str var_s;
	;

	super();

	extree1.BeginUpdate();
	extree1.MarkSearchColumn(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Name");
		var_Column = COM::createFromVariant(com_Columns.Add("A")); com_Column = var_Column;
			com_Column.SortType(1/*SortNumeric*/);
			com_Column.AllowSizing(false);
			com_Column.Width(36);
			com_Column.FormatColumn("len(value) ? value + ' +'");
		var_Column1 = COM::createFromVariant(com_Columns.Add("B")); com_Column1 = var_Column1;
			com_Column1.SortType(1/*SortNumeric*/);
			com_Column1.AllowSizing(false);
			com_Column1.Width(36);
			com_Column1.FormatColumn("len(value) ? value + ' +'");
		var_Column2 = COM::createFromVariant(com_Columns.Add("C")); com_Column2 = var_Column2;
			com_Column2.SortType(1/*SortNumeric*/);
			com_Column2.AllowSizing(false);
			com_Column2.Width(36);
			com_Column2.FormatColumn("len(value) ? value + ' ='");
		var_Column3 = COM::createFromVariant(com_Columns.Add("A+B+C")); com_Column3 = var_Column3;
			com_Column3.SortType(1/*SortNumeric*/);
			com_Column3.Width(64);
			com_Column3.ComputedField("dbl(%1)+dbl(%2)+dbl(%3)");
			var_s = "type(value) in (0,1) ? 'null' : ( dbl(value)<0 ? '<fgcolor=FF0000>'+ (value format '2|.|3|,|1' ) : (dbl(value)>0 ? '<fgcolor=000";
			var_s = var_s + "0FF>+'+(value format '2|.|3|,' ): '0.00') )";
			com_Column3.FormatColumn(var_s);
			com_Column3.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root");
		com_Items.CellCaptionFormat(h,COMVariant::createFromInt(4),2/*exComputedField*/);
		h1 = com_Items.InsertItem(h,,"Child 1");
		com_Items.CellCaption(h1,COMVariant::createFromInt(1),COMVariant::createFromInt(7));
		com_Items.CellCaption(h1,COMVariant::createFromInt(2),COMVariant::createFromInt(3));
		com_Items.CellCaption(h1,COMVariant::createFromInt(3),COMVariant::createFromInt(1));
		h1 = com_Items.InsertItem(h,,"Child 2");
		com_Items.CellCaption(h1,COMVariant::createFromInt(1),COMVariant::createFromInt(-2));
		com_Items.CellCaption(h1,COMVariant::createFromInt(2),COMVariant::createFromInt(-2));
		com_Items.CellCaption(h1,COMVariant::createFromInt(3),COMVariant::createFromInt(-4));
		h1 = com_Items.InsertItem(h,,"Child 3");
		com_Items.CellCaption(h1,COMVariant::createFromInt(1),COMVariant::createFromInt(2));
		com_Items.CellCaption(h1,COMVariant::createFromInt(2),COMVariant::createFromInt(2));
		com_Items.CellCaption(h1,COMVariant::createFromInt(3),COMVariant::createFromInt(-4));
		com_Items.ExpandItem(h,true);
	extree1.EndUpdate();
}
522:
I am using the FormatColumn/FormatCell to format my columns. Is it possible to ignore the SelForeColor, so the foreground color for selected items does not override my settings

// SelectionChanged event - Fired after a new item has been selected.
void onEvent_SelectionChanged()
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.ClearItemBackColor(0);
		com_Items.ItemBackColor(com_Items.SelectedItem(0),WinApi::RGB2int(128,255,255));
}

public void init()
{
	COM com_Column,com_Columns,com_Items;
	anytype var_Column,var_Columns,var_Items;
	str var_s;
	;

	super();

	extree1.BeginUpdate();
	extree1.MarkSearchColumn(false);
	extree1.SelForeColor(extree1.ForeColor());
	extree1.SelBackColor(extree1.BackColor());
	extree1.ShowFocusRect(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Format")); com_Column = var_Column;
			var_s = "type(value) in (0,1) ? 'null' : ( dbl(value)<0 ? '<fgcolor=FF0000>'+ (value format '2|.|3|,|1' ) : (dbl(value)>0 ? '<fgcolor=000";
			var_s = var_s + "0FF>+'+(value format '2|.|3|,' ): '0.00') )";
			com_Column.FormatColumn(var_s);
			com_Column.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromInt(10));
		com_Items.AddItem(COMVariant::createFromInt(-8));
	extree1.EndUpdate();
}
521:
Is it possible to change the height for all items at once

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	extree1.Columns().Add("Items");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		h = com_Items.AddItem("Root 2");
		com_Items.InsertItem(h,,"Child 1");
		com_Items.InsertItem(h,,"Child 2");
		com_Items.ExpandItem(0,true);
	extree1.EndUpdate();
	extree1.DefaultItemHeight(12);
	extree1.Items().ItemHeight(0,12);
}
520:
How can I add a footer row

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.ShowLockedItems(true);
	extree1.DrawGridLines(2/*exVLines*/);
	extree1.Columns().Add("C1");
	extree1.Columns().Add("C2");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.LockedItemCount(2/*BottomAlignment*/,1);
		h = com_Items.LockedItem(2/*BottomAlignment*/,0);
		com_Items.ItemBackColor(h,WinApi::RGB2int(128,128,128));
		com_Items.ItemForeColor(h,WinApi::RGB2int(255,255,255));
		com_Items.CellCaption(h,COMVariant::createFromInt(0),"footer c1");
		com_Items.CellCaption(h,COMVariant::createFromInt(1),"footer c2");
		com_Items.CellCaption(com_Items.AddItem("cell"),COMVariant::createFromInt(1),"cell");
}
519:
How can I add a header row

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.ShowLockedItems(true);
	extree1.DrawGridLines(2/*exVLines*/);
	extree1.Columns().Add("C1");
	extree1.Columns().Add("C2");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.LockedItemCount(0/*TopAlignment*/,1);
		h = com_Items.LockedItem(0/*TopAlignment*/,0);
		com_Items.ItemBackColor(h,WinApi::RGB2int(128,128,128));
		com_Items.ItemForeColor(h,WinApi::RGB2int(255,255,255));
		com_Items.CellCaption(h,COMVariant::createFromInt(0),"footer c1");
		com_Items.CellCaption(h,COMVariant::createFromInt(1),"footer c2");
		com_Items.CellCaption(com_Items.AddItem("cell"),COMVariant::createFromInt(1),"cell");
}
518:
When I'm trying to show string with "line break" character (vbCrLF) in a textbox, it shows 2 squares. Is there any way to hide these squares

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	;

	super();

	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Value");
		var_Column = COM::createFromVariant(com_Columns.Add("CellSingleLine = False")); com_Column = var_Column;
			com_Column.ComputedField("%0");
			com_Column.Def(16/*exCellSingleLine*/,COMVariant::createFromBoolean(false));
		var_Column1 = COM::createFromVariant(com_Columns.Add("FormatColumn/replace CRLF")); com_Column1 = var_Column1;
			com_Column1.ComputedField("%0");
			com_Column1.FormatColumn("value replace `\\r\\n` with ``");
		var_Column2 = COM::createFromVariant(com_Columns.Add("FormatColumn/replace TAB,CRLF")); com_Column2 = var_Column2;
			com_Column2.ComputedField("%0");
			com_Column2.FormatColumn("(value replace `\\t` with ``) replace `\\r\\n` with ``");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("a\\ta\\r\\nb\\tb");
}
517:
Is there any way to "unselect" radio group

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
void onEvent_DblClick(int   _Shift,int   _X,int   _Y)
{
	COM com_Items;
	anytype var_Items;
	int h;
	;
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.CellChecked(1234);
		com_Items.CellHasCheckBox(COMVariant::createFromInt(0),h,true);
		com_Items.CellState(COMVariant::createFromInt(0),h,0);
		com_Items.CellHasCheckBox(COMVariant::createFromInt(0),h,false);
}

// SelectionChanged event - Fired after a new item has been selected.
void onEvent_SelectionChanged()
{
	COM com_Items;
	anytype var_Items;
	;
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.CellState(com_Items.FocusItem(),COMVariant::createFromInt(0),1);
}

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h;
	;

	super();

	extree1.MarkSearchColumn(false);
	extree1.SelBackColor(WinApi::RGB2int(255,255,128));
	extree1.SelForeColor(WinApi::RGB2int(0,0,0));
	extree1.Columns().Add("Default");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Radio 1");
		com_Items.CellHasRadioButton(h,COMVariant::createFromInt(0),true);
		com_Items.CellRadioGroup(h,COMVariant::createFromInt(0),1234);
		h = com_Items.AddItem("Radio 2");
		com_Items.CellHasRadioButton(h,COMVariant::createFromInt(0),true);
		com_Items.CellRadioGroup(h,COMVariant::createFromInt(0),1234);
		com_Items.CellState(h,COMVariant::createFromInt(0),1);
		h = com_Items.AddItem("Radio 3");
		com_Items.CellHasRadioButton(h,COMVariant::createFromInt(0),true);
		com_Items.CellRadioGroup(h,COMVariant::createFromInt(0),1234);
}
516:
The Column.Alignment property does not seem to work for cells with images in them. What can be done

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	str var_s;
	;

	super();

	extree1.BeginUpdate();
	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=";
	extree1.Images(COMVariant::createFromStr(var_s));
	extree1.TreeColumnIndex(-1);
	extree1.DrawGridLines(-1/*exAllLines*/);
	extree1.HeaderHeight(24);
	extree1.MarkSearchColumn(false);
	extree1.DefaultItemHeight(24);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Image")); com_Column = var_Column;
		com_Column.AllowSizing(false);
		com_Column.Width(32);
		com_Column.HTMLCaption("<img>1</img>");
		com_Column.HeaderAlignment(1/*CenterAlignment*/);
		com_Column.Alignment(1/*CenterAlignment*/);
		com_Column.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
	extree1.Columns().Add("Rest");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("<img>1</img>");
		com_Items.AddItem("<img>2</img>");
		com_Items.AddItem("<img>3</img>");
	extree1.EndUpdate();
}
515:
Can I change the format of date to be shown in the control

public void init()
{
	COM com_Column,com_Column1,com_Column2,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Column2,var_Columns,var_Items;
	str var_s;
	;

	super();

	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		com_Columns.Add("Default");
		var_Column = COM::createFromVariant(com_Columns.Add("Format.1")); com_Column = var_Column;
			com_Column.ComputedField("%0");
			com_Column.FormatColumn("dateF(value) replace `/` with `-`");
		var_Column1 = COM::createFromVariant(com_Columns.Add("Format.2")); com_Column1 = var_Column1;
			com_Column1.ComputedField("%0");
			com_Column1.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
			com_Column1.FormatColumn("`<b>`+ shortdate(value) + `</b> ` + timeF(value)");
		var_Column2 = COM::createFromVariant(com_Columns.Add("Format.3")); com_Column2 = var_Column2;
			com_Column2.ComputedField("%0");
			com_Column2.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
			var_s = "( dateF(value) replace `/` with `-` ) + ` <b>`+ ( weekday(value) case ( 0 : `Su`; 1 : `Mo`; 2 : `Tu`; 3 : `We`; 4 : `Th`; 5 : `F";
			var_s = var_s + "r`; 6 : `Sa`) )";
			com_Column2.FormatColumn(var_s);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromUtcDateTime(str2Datetime("1/1/2001 10:00:00",213)));
		com_Items.AddItem(COMVariant::createFromUtcDateTime(str2Datetime("1/2/2001 10:00:00",213)));
}
514:
Is it possible to scroll the control's content by clicking and dragging

public void init()
{
	COM com_rs;
	anytype rs;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(false);
	extree1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\VB\\SAMPLE.MDB",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	extree1.DataSource(rs);
	extree1.AutoDrag(16/*exAutoDragScroll*/);
	extree1.EndUpdate();
}
513:
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a snapshot
public void init()
{
	COM com_Items;
	anytype var_Items;
	int h,h1,h2,h3;
	;

	super();

	extree1.BeginUpdate();
	extree1.VisualAppearance().Add(1,"c:\\exontrol\\images\\normal.ebn");
	extree1.HTMLPicture("p1","c:\\exontrol\\images\\card.png");
	extree1.HTMLPicture("p2","c:\\exontrol\\images\\sun.png");
	extree1.AutoDrag(11/*exAutoDragCopySnapShot*/);
	extree1.LinesAtRoot(0/*exNoLinesAtRoot*/);
	extree1.HasLines(2/*exThinLine*/);
	extree1.ShowFocusRect(false);
	extree1.DefaultItemHeight(26);
	extree1.Columns().Add("Task");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("<img>p1:32</img>Group 1");
		com_Items.CellCaptionFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.ItemDivider(h,0);
		com_Items.ItemBold(h,true);
		h1 = com_Items.InsertItem(h,,"Task 1");
		h2 = com_Items.InsertItem(h,,"Task 2");
		h3 = com_Items.InsertItem(h,,"Task 3");
		h = com_Items.AddItem("<img>p2:32</img>Group 2");
		com_Items.CellCaptionFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.ItemBold(h,true);
		com_Items.ItemDivider(h,0);
		h1 = com_Items.InsertItem(h,,"Task");
		com_Items.ExpandItem(0,true);
	extree1.EndUpdate();
}
512:
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a image

public void init()
{
	COM com_Column,com_Items,com_rs;
	COMVariant var_HTMLPicture;
	anytype rs,var_Column,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.HTMLPicture("p1","c:\\exontrol\\images\\card.png");
	extree1.HTMLPicture("p2","c:\\exontrol\\images\\sun.png");
	var_HTMLPicture = extree1.HTMLPicture("aka1");
	extree1.HeaderHeight(24);
	extree1.DefaultItemHeight(48);
	extree1.DrawGridLines(-2/*exRowLines*/);
	extree1.GridLineColor(WinApi::RGB2int(240,240,240));
	extree1.SelBackMode(1/*exTransparent*/);
	extree1.ColumnAutoResize(false);
	extree1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\VB\\SAMPLE.MDB",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	extree1.DataSource(rs);
	var_Column = COM::createFromObject(extree1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.Def(17/*exCellCaptionFormat*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(extree1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.FormatColumn("value + ` <img>p` + (1 + (value mod 3 ) ) + `</img>`");
	var_Column = COM::createFromObject(extree1.Columns()).Item(COMVariant::createFromInt(0)); com_Column = var_Column;
	com_Column.Width(112);
	var_Column = COM::createFromObject(extree1.Columns()).Item(COMVariant::createFromInt(1)); com_Column = var_Column;
	com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromInt(1));
	var_Column = COM::createFromObject(extree1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.LevelKey("1");
	var_Column = COM::createFromObject(extree1.Columns()).Item(COMVariant::createFromInt(3)); com_Column = var_Column;
	com_Column.LevelKey("1");
	var_Column = COM::createFromObject(extree1.Columns()).Item(COMVariant::createFromInt(4)); com_Column = var_Column;
	com_Column.LevelKey("1");
	extree1.AutoDrag(10/*exAutoDragCopyImage*/);
	extree1.SingleSel(false);
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.ItemByIndex(1);
		com_Items.SelectItem(h,true);
		h = com_Items.ItemByIndex(2);
		com_Items.SelectItem(h,true);
		h = com_Items.ItemByIndex(3);
		com_Items.SelectItem(h,true);
		com_Items.LockedItemCount(2/*BottomAlignment*/,1);
		h = com_Items.LockedItem(2/*BottomAlignment*/,0);
		com_Items.CellCaption(h,COMVariant::createFromInt(1),"<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, ...");
		com_Items.CellSingleLine(h,COMVariant::createFromInt(1),false);
		com_Items.CellCaptionFormat(h,COMVariant::createFromInt(1),1/*exHTML*/);
		com_Items.CellHAlignment(h,COMVariant::createFromInt(1),1/*CenterAlignment*/);
		com_Items.ItemDivider(h,1);
		com_Items.ItemDividerLineAlignment(h,2/*DividerTop*/);
	extree1.EndUpdate();
}
511:
How can copy and paste the selection to Microsoft Word, Excel or any OLE compliant application, as a text

public void init()
{
	COM com_Column,com_Items,com_rs;
	anytype rs,var_Column,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.ColumnAutoResize(false);
	extree1.ContinueColumnScroll(false);
	// Add 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' reference to your project.
	rs = COM::createFromObject(new ADODB.Recordset()); com_rs = rs;
		rs.Open("Orders","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\VB\\SAMPLE.MDB",3/*adOpenStatic*/,3/*adLockOptimistic*/);
	extree1.DataSource(rs);
	var_Column = COM::createFromObject(extree1.Columns()).Item(COMVariant::createFromInt(2)); com_Column = var_Column;
	com_Column.LevelKey("1");
	var_Column = COM::createFromObject(extree1.Columns()).Item(COMVariant::createFromInt(3)); com_Column = var_Column;
	com_Column.LevelKey("1");
	var_Column = COM::createFromObject(extree1.Columns()).Item(COMVariant::createFromInt(4)); com_Column = var_Column;
	com_Column.LevelKey("1");
	extree1.AutoDrag(9/*exAutoDragCopyText*/);
	extree1.SingleSel(false);
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.ItemByIndex(1);
		com_Items.SelectItem(h,true);
		h = com_Items.ItemByIndex(3);
		com_Items.SelectItem(h,true);
		h = com_Items.ItemByIndex(4);
		com_Items.SelectItem(h,true);
		h = com_Items.ItemByIndex(5);
		com_Items.SelectItem(h,true);
		com_Items.LockedItemCount(2/*BottomAlignment*/,1);
		h = com_Items.LockedItem(2/*BottomAlignment*/,0);
		com_Items.CellCaption(h,COMVariant::createFromInt(0),"<font ;16>Click the selection and <b>wait to start dragging</b>, and then drop to Microsoft Word, Excel, ...");
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),false);
		com_Items.CellCaptionFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
		com_Items.CellHAlignment(h,COMVariant::createFromInt(0),1/*CenterAlignment*/);
		com_Items.ItemDivider(h,0);
		com_Items.ItemDividerLineAlignment(h,2/*DividerTop*/);
	extree1.EndUpdate();
}
510:
Is it possible to change the indentation during the drag and drop

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h,h1,h2,h3;
	str var_s;
	;

	super();

	extree1.BeginUpdate();
	extree1.VisualAppearance().Add(1,"c:\\exontrol\\images\\normal.ebn");
	extree1.AutoDrag(3/*exAutoDragPositionAny*/);
	extree1.LinesAtRoot(0/*exNoLinesAtRoot*/);
	extree1.HasLines(1/*exSolidLine*/);
	extree1.HasButtons(3/*exWPlus*/);
	extree1.ShowFocusRect(false);
	extree1.SelBackMode(1/*exTransparent*/);
	extree1.Columns().Add("Task");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Group 1");
		com_Items.ItemBold(h,true);
		com_Items.ItemDivider(h,0);
		h1 = com_Items.InsertItem(h,,"Task 1");
		h2 = com_Items.InsertItem(h1,,"Task 2");
		h2 = com_Items.InsertItem(h1,,"Task 3");
		h3 = com_Items.InsertItem(h,,"Task 3");
		com_Items.ExpandItem(h,true);
		com_Items.ExpandItem(h1,true);
		h = com_Items.AddItem("Group 2");
		com_Items.ItemBold(h,true);
		com_Items.ItemDivider(h,0);
		com_Items.LockedItemCount(2/*BottomAlignment*/,1);
		h = com_Items.LockedItem(2/*BottomAlignment*/,0);
		var_s = "Click a row, and move by dragging <b>up, down</b> to change the row's parent or <b>left,right</b> to increase or decrease the in";
		var_s = var_s + "dentation.";
		com_Items.CellCaption(h,COMVariant::createFromInt(0),COMVariant::createFromStr(var_s));
		com_Items.CellSingleLine(h,COMVariant::createFromInt(0),false);
		com_Items.CellCaptionFormat(h,COMVariant::createFromInt(0),1/*exHTML*/);
	extree1.EndUpdate();
}
509:
Is it possible to allow moving an item to another, but keeping its indentation

public void init()
{
	COM com_Items;
	anytype var_Items;
	int h,h1,h2,h3;
	;

	super();

	extree1.BeginUpdate();
	extree1.VisualAppearance().Add(1,"c:\\exontrol\\images\\normal.ebn");
	extree1.AutoDrag(2/*exAutoDragPositionKeepIndent*/);
	extree1.LinesAtRoot(0/*exNoLinesAtRoot*/);
	extree1.HasLines(2/*exThinLine*/);
	extree1.ShowFocusRect(false);
	extree1.Columns().Add("Task");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Group 1");
		com_Items.ItemDivider(h,0);
		com_Items.ItemBold(h,true);
		h1 = com_Items.InsertItem(h,,"Task 1");
		h2 = com_Items.InsertItem(h,,"Task 2");
		h3 = com_Items.InsertItem(h,,"Task 3");
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Group 2");
		com_Items.ItemBold(h,true);
		com_Items.ItemDivider(h,0);
	extree1.EndUpdate();
}
508:
How can I change the row's position to another, by drag and drop. Is it possible

public void init()
{
	COM com_Items;
	anytype var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.ShowFocusRect(false);
	extree1.VisualAppearance().Add(1,"c:\\exontrol\\images\\normal.ebn");
	extree1.AutoDrag(1/*exAutoDragPosition*/);
	extree1.Columns().Add("Task");
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem("Task 1");
		com_Items.AddItem("Task 2");
		com_Items.AddItem("Task 3");
		com_Items.AddItem("Task 4");
	extree1.EndUpdate();
}
507:
How do I enable the scrollbar-extension, as thumb to be shown outside of the control's client area

public void init()
{
	;

	super();

	extree1.BeginUpdate();
	extree1.ScrollBars(15/*exDisableBoth*/);
	extree1.ScrollPartVisible(0/*exVScroll*/,65536/*exExtentThumbPart*/,true);
	extree1.ScrollPartVisible(1/*exHScroll*/,65536/*exExtentThumbPart*/,true);
	extree1.ScrollPartVisible(2,65536/*exExtentThumbPart*/,true);
	extree1.ScrollWidth(4);
	extree1.Background(276/*exVSBack*/,WinApi::RGB2int(240,240,240));
	extree1.Background(260/*exVSThumb*/,WinApi::RGB2int(128,128,128));
	extree1.ScrollHeight(4);
	extree1.Background(404/*exHSBack*/,extree1.Background(276/*exVSBack*/));
	extree1.Background(388/*exHSThumb*/,extree1.Background(260/*exVSThumb*/));
	extree1.Background(511/*exScrollSizeGrip*/,extree1.Background(276/*exVSBack*/));
	extree1.EndUpdate();
}
506:
How can I have a case-insensitive filter (exFilterDoCaseSensitive flag is not set)

public void init()
{
	COM com_Column,com_Column1,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Columns,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.MarkSearchColumn(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Car")); com_Column = var_Column;
			com_Column.DisplayFilterButton(true);
			com_Column.FilterType(240/*exFilter*/);
			com_Column.Filter("MAZDA");
		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*/);
			com_Column1.Filter("AIR BAG");
	var_Items = extree1.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_Items.CellCaption(com_Items.AddItem("Mazda"),COMVariant::createFromInt(1),"Air Bag, ABS,ESP");
		com_Items.CellCaption(com_Items.AddItem("Mazda"),COMVariant::createFromInt(1),"ABS,ESP");
	extree1.ApplyFilter();
	extree1.EndUpdate();
}
505:
How can I have a case-sensitive filter

public void init()
{
	COM com_Column,com_Column1,com_Columns,com_Items;
	anytype var_Column,var_Column1,var_Columns,var_Items;
	;

	super();

	extree1.BeginUpdate();
	extree1.MarkSearchColumn(false);
	var_Columns = extree1.Columns(); com_Columns = var_Columns;
		var_Column = COM::createFromVariant(com_Columns.Add("Car")); com_Column = var_Column;
			com_Column.DisplayFilterButton(true);
			com_Column.FilterType(496/*exFilterDoCaseSensitive | exFilter*/);
			com_Column.Filter("Mazda");
		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(259/*exFilterDoCaseSensitive | exPattern*/);
			com_Column1.Filter("Air Bag");
	var_Items = extree1.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_Items.CellCaption(com_Items.AddItem("Mazda"),COMVariant::createFromInt(1),"Air Bag, ABS,ESP");
		com_Items.CellCaption(com_Items.AddItem("Mazda"),COMVariant::createFromInt(1),"ABS,ESP");
	extree1.ApplyFilter();
	extree1.EndUpdate();
}
504:
I have several columns, but noticed that the filter is using AND between columns, but I need OR clause for filtering. Is it possible

public void init()
{
	COM com_Column,com_Column1,com_Items;
	anytype var_Column,var_Column1,var_Items;
	int h;
	;

	super();

	extree1.BeginUpdate();
	extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
	var_Column = COM::createFromVariant(extree1.Columns().Add("Item")); com_Column = var_Column;
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.Filter("Child 1");
		com_Column.FilterType(240/*exFilter*/);
	var_Column1 = COM::createFromVariant(extree1.Columns().Add("Date")); com_Column1 = var_Column1;
		com_Column1.DisplayFilterButton(true);
		com_Column1.DisplayFilterPattern(false);
		com_Column1.DisplayFilterDate(true);
		com_Column1.FilterList(9474/*exShowExclude | exShowFocusItem | exShowCheckBox | exNoItems*/);
		com_Column1.Filter(str2Date("12/28/2010",213));
		com_Column1.FilterType(4/*exDate*/);
	extree1.FilterCriteria("%0 or %1");
	extree1.Description(23/*exFilterBarOr*/,"<font ;18><fgcolor=FF0000>or</fgcolor></font>");
	extree1.Description(11/*exFilterBarAnd*/,"<font ;18><fgcolor=FF0000>and</fgcolor></font>");
	var_Items = extree1.Items(); com_Items = var_Items;
		h = com_Items.AddItem("Root 1");
		com_Items.CellCaption(com_Items.InsertItem(h,,"Child 1"),COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/27/2010",213)));
		com_Items.CellCaption(com_Items.InsertItem(h,,"Child 2"),COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/28/2010",213)));
		com_Items.ExpandItem(h,true);
		h = com_Items.AddItem("Root 2");
		com_Items.CellCaption(com_Items.InsertItem(h,,"Child 1"),COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/29/2010",213)));
		com_Items.CellCaption(com_Items.InsertItem(h,,"Child 2"),COMVariant::createFromInt(1),COMVariant::createFromDate(str2Date("12/30/2010",213)));
	extree1.ApplyFilter();
	extree1.EndUpdate();
}
503:
Is it possible exclude the dates being selected in the drop down filter window

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	extree1.BeginUpdate();
	var_Column = COM::createFromVariant(extree1.Columns().Add("Date")); com_Column = var_Column;
		com_Column.SortType(2/*SortDate*/);
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.DisplayFilterDate(true);
		com_Column.FilterList(9474/*exShowExclude | exShowFocusItem | exShowCheckBox | exNoItems*/);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/27/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/28/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/29/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/30/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/31/2010",213)));
	extree1.EndUpdate();
}
502:
How can I display a calendar control inside the drop down filter window

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	extree1.BeginUpdate();
	var_Column = COM::createFromVariant(extree1.Columns().Add("Date")); com_Column = var_Column;
		com_Column.SortType(2/*SortDate*/);
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(false);
		com_Column.DisplayFilterDate(true);
		com_Column.FilterList(1282/*exShowFocusItem | exShowCheckBox | exNoItems*/);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/27/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/28/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/29/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/30/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/31/2010",213)));
	extree1.EndUpdate();
}
501:
Is it possible to include the dates as checkb-boxes in the drop down filter window

public void init()
{
	COM com_Column,com_Items;
	anytype var_Column,var_Items;
	;

	super();

	extree1.BeginUpdate();
	var_Column = COM::createFromVariant(extree1.Columns().Add("Dates")); com_Column = var_Column;
		com_Column.SortType(2/*SortDate*/);
		com_Column.DisplayFilterButton(true);
		com_Column.DisplayFilterPattern(true);
		com_Column.DisplayFilterDate(true);
		com_Column.FilterList(1280/*exShowFocusItem | exShowCheckBox*/);
		com_Column.Filter("to 12/27/2010");
		com_Column.FilterType(4/*exDate*/);
	var_Items = extree1.Items(); com_Items = var_Items;
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/27/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/28/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/29/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/30/2010",213)));
		com_Items.AddItem(COMVariant::createFromDate(str2Date("12/31/2010",213)));
	extree1.ApplyFilter();
	extree1.EndUpdate();
}