1900:
InsertControlItem / UserEditor / A2X:

G2antt1->BeginUpdate();
G2antt1->BackColor = RGB(240,240,240);
G2antt1->Chart->set_PaneWidth(true,0);
G2antt1->ConditionalFormats->Add(L"1 = 1",TNoParam())->Bold = true;
G2antt1->Columns->Add(L"Type")->Alignment = Exg2anttlib_tlb::AlignmentEnum::RightAlignment;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("1. A ProgID such as \"MSCAL.Calendar.7\""));
	var_Items->set_ItemDivider(h,0);
	long hX = var_Items->InsertControlItem(0,L"MSCAL.Calendar",TVariant(""));
	(IDispatch*)var_Items->get_ItemObject(hX)->BackColor = RGB(255,255,255);
	h = var_Items->AddItem(TVariant("2. A CLSID such as \"{0036F83C-D892-4B7B-AA0B-BEDD8D16A738}\""));
	var_Items->set_ItemDivider(h,0);
	hX = var_Items->InsertControlItem(0,L"{0036F83C-D892-4B7B-AA0B-BEDD8D16A738}",TVariant(""));
	(IDispatch*)var_Items->get_ItemObject(hX)->BackColor = RGB(255,255,255);
	h = var_Items->AddItem(TVariant("3. A URL such as \"http://www.exontrol.com\""));
	var_Items->set_ItemDivider(h,0);
	hX = var_Items->InsertControlItem(0,L"http://www.exontrol.com",TVariant(""));
	h = var_Items->AddItem(TVariant("4. A reference to an Active document such as \"file://\\\\Documents\\MyDoc.doc\""));
	var_Items->set_ItemDivider(h,0);
	hX = var_Items->InsertControlItem(0,L"file://C:\\empesting.xml",TVariant(""));
	h = var_Items->AddItem(TVariant("5.A fragment of HTML such as \"MSHTML:<HTML><BODY>This is a line of text</BODY></HTML>\""));
	var_Items->set_ItemDivider(h,0);
	hX = var_Items->InsertControlItem(0,L"MSHTML:<HTML><BODY>This is a <b>line of</b> text</BODY></HTML>",TVariant(""));
	var_Items->set_ItemHeight(hX,56);
	h = var_Items->AddItem(TVariant("6.Anything, if it is preffixed by \"A2X:\""));
	var_Items->set_ItemDivider(h,0);
	hX = var_Items->InsertControlItem(0,L"A2X:TOC24.Toc24Ctrl.1",TVariant(""));
G2antt1->EndUpdate();

1899:
How do I add a RichTextBox editor
// UserEditorOleEvent event - Occurs when an user editor fires an event.
void __fastcall TForm1::G2antt1UserEditorOleEvent(TObject *Sender,IDispatch   *Object,Exg2anttlib_tlb::IOleEvent   *Ev,VARIANT_BOOL *   CloseEditor,Exg2anttlib_tlb::HITEM   Item,long   ColIndex)
{
	OutputDebugString( L"Ev" );
}

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->DefaultItemHeight = 32;
Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->Add(L"RICHTEXT")->Editor;
	var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::UserEditorType;
	var_Editor->UserEditor(L"RICHTEXT.RichtextCtrl",L"");
	/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft Rich Textbox Control 6.0 (SP4)

	TypeLib: richtx32.ocx

	to define the namespace: Richtextlib_tlb
*/
//#include "RICHTEXTLIB_TLB.h"
	Richtextlib_tlb::IRichTextPtr var_RichTextBox = (IDispatch*)var_Editor->UserEditorObject;
		var_RichTextBox->AutoVerbMenu = true;
		var_RichTextBox->TextRTF = L"{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\f0\\pard\\r\\nThis is some {\\b bold} text.\\par\\r\\n}";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("RICHTEXT.RichtextCtrl"));
G2antt1->EndUpdate();

1898:
Is it possible to trap a double-click event on a specific cell and when that happens, to set the cell to a specific value
// DblClick event - Occurs when the user dblclk the left mouse button over an object.
void __fastcall TForm1::G2antt1DblClick(TObject *Sender,short   Shift,int   X,int   Y)
{
	long h = G2antt1->ItemFromPoint[-1,-1,c,hit];
	OutputDebugString( PChar(G2antt1->Items->get_CellValue(TVariant(h),TVariant(c))) );
}

G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->Columns->Add(L"C1");
G2antt1->Columns->Add(L"C2");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item 1"))),TVariant(1),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item 3"))),TVariant(1),TVariant("Item 4"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item 5"))),TVariant(1),TVariant("Item 6"));
G2antt1->EndUpdate();

1897:
How can I display dates in DD/MM/YYYY format

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = false;
G2antt1->Columns->Add(L"Date");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_ItemDivider(var_Items->AddItem(TVariant("Different Date Formats")),0);
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"((shortdateF(value) mid 4) left 2) + `/` + (shortdateF (value) left 2) + `/` + (shortdateF (value) right 4)");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"(1 array (0:=(shortdateF(value) split `/`))) + `/` + (0 array (=:0) ) + `/` + (2 array (=:0) )");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"((`0` + day(value) ) right 2) + `/` + ((`0` + month(value) ) right 2) + `/` + year(value)");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"day(value) + `/` + month(value) + `/` + year(value)");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"year(value) + ` - ` + day(value) + ` - ` + month(value)");
	long h = var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()));
	var_Items->set_ItemHeight(h,24);
	var_Items->set_CellValueFormat(TVariant(h),TVariant(0),Exg2anttlib_tlb::ValueFormatEnum::exHTML);
	var_Items->set_FormatCell(TVariant(h),TVariant(0),L"`<b>` + year(value) + `</b><off -4> ` + day(value) + ` - ` + month(value)");
	var_Items->set_ItemDivider(var_Items->AddItem(TVariant("Predefined Date Formats")),0);
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"value");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"shortdateF(value)");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"shortdate(value)");
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(TDateTime(1971,12,1).operator double()))),TVariant(0),L"longdate(value)");
G2antt1->EndUpdate();

1896:
I have noticed that the column gets resized once I release the mouse. I have a column that displays multiple-lines cells, and the text gets wrapped only when user releases the mouse. Is it possible to get resized contiguously as I had before
G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = false;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines;
G2antt1->ColumnsAllowSizing = true;
G2antt1->Columns->Add(L"Column A (cont)")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exColumnResizeContiguously,TVariant(true));
G2antt1->Columns->Add(L"Column 1");
G2antt1->Columns->Add(L"Column B (cont)")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exColumnResizeContiguously,TVariant(true));
G2antt1->Columns->Add(L"Column 2");
G2antt1->EndUpdate();

1895:
How do I get the column from cursor, when it hovers the empty portion of the items section
// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	long i = G2antt1->ItemFromPoint[0,-1,c,hit];
	OutputDebugString( L"Column" );
	OutputDebugString( L"c" );
}

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines;
G2antt1->Columns->Add(L"Column 0");
G2antt1->Columns->Add(L"Column 1");
G2antt1->Columns->Add(L"Column 2");
G2antt1->EndUpdate();

1894:
How do I add items once the user clicks the empty area
// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
void __fastcall TForm1::G2antt1Click(TObject *Sender)
{
	long i = G2antt1->ItemFromPoint[0,-1,c,hit];
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(i))),TVariant(1),TVariant(c));
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Number of Items to Add");
G2antt1->Columns->Add(L"Click on Column");
G2antt1->EndUpdate();

1893:
Is there an easy way to get an effect like in a Microsoft Access / SQL-Server Table view, where you can scroll-up till the last row containing data is displayed as top-row

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exNoLine;
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\VB\\SAMPLE.MDB"),Adodb_tlb::CursorTypeEnum::adOpenKeyset,Adodb_tlb::LockTypeEnum::adLockReadOnly,0);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,10,21).operator double()));
	var_Chart->LevelCount = 2;
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->ScrollBars = Exg2anttlib_tlb::ScrollBarsEnum::exVScrollEmptySpace | Exg2anttlib_tlb::ScrollBarsEnum::exBoth;
G2antt1->ScrollPos[true] = G2antt1->Items->ItemCount;
G2antt1->EndUpdate();

1892:
Is there any option to stop events
// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	OutputDebugString( L"AddItem event is fired only if FreezeEvents(False) is called" );
}

// AddLink event - Occurs when the user links two bars using the mouse.
void __fastcall TForm1::G2antt1AddLink(TObject *Sender,BSTR   LinkKey)
{
	OutputDebugString( L"AddLink event is fired only if FreezeEvents(False) is called" );
}

// BarResize event - Occurs when a bar is moved or resized.
void __fastcall TForm1::G2antt1BarResize(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,Variant   Key)
{
	OutputDebugString( L"BarResize event is fired only if FreezeEvents(False) is called" );
}

G2antt1->FreezeEvents(true);
G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 24;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Task 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L1"),h1,TVariant(""),h2,TVariant(""));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();
G2antt1->FreezeEvents(false);

1891:
How do I specify a more intensive color if using RenderType property

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->RenderType = -16777216;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABN0GACAADACAxRDAMgBQKAAzQFAYahuGSGAAGMYxQgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQyDAAUIjOKsIhkGYcZAGQBJCjWGodQLOEgwH") +
"IERQjEyUJAGGQIHhyPYbUbGUpQHKkeRtGqgBgoKhKEouNYgAbGYIwTRsdyfDSXBpEWwbDgkNQwWTDNoRDIUQStCysaYjOpnfrUAJ1P7FdQ1NJkXRhGSSK7maapaiCSZ6" +
"STCMj1FhVKSNJ7DQKhGpgKh/ApgYpQOK4fLNXyRBK4QAyKA6bgPFZOZbFViaXY1V5bNKrcjhHQwAyHJ4XXRdV4YRAkUT4GqiJKGSYcQhuXZWbRqO6ABhef6DRThc6jKp" +
"FHIE4llEcojHqSZNgoIxnlgd5thsLREleL43gsYZ9BkaAYkMAgAm+CxGDWWAtiKCRfjcdRgHoHYnicUwgAIEIREAaQYkcQZUHIGRUDQJBOEYRAhDYCxGgMZAkCgdYQha" +
"XQIAYERwQuahXggdgeG6VZ4H4IhdiIGIOB8YIiGiHZZgqYpGF4KYHiKCI+CAU5jCiTQ2g0YhEFyax4gABAEIC"));
	var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQG") +
"h+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKf" +
"aZACj4arKejrRDCMAggI="));
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar->Color = 0x1000000;
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar1->Color = 0x2000000;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummaryJ = var_Items->AddItem(TVariant("Summary A"));
	var_Items->AddBar(hSummaryJ,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("J"),TNoParam());
	long hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.1"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("J1"),TNoParam());
	hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.2"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("J2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryJ,TVariant("J"),-1,TVariant("<*>"));
	long hSummaryK = var_Items->AddItem(TVariant("Summary B"));
	var_Items->AddBar(hSummaryK,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("K"),TNoParam());
	long hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.1"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.2"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryK,TVariant("K"),-1,TVariant("<*>"));
	var_Items->set_ItemBar(0,TVariant("<K*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(255));
	var_Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();

1890:
How can I include the child items, when a filter is applied

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
G2antt1->ContinueColumnScroll = false;
G2antt1->MarkSearchColumn = false;
G2antt1->SearchColumnIndex = 1;
G2antt1->Indent = 16;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->FilterBarPromptVisible = true;
G2antt1->FilterBarPromptPattern = L"Nancy";
G2antt1->FilterInclude = Exg2anttlib_tlb::FilterIncludeEnum::exItemsWithChilds;
G2antt1->Chart->LevelCount = 2;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Name")->Width = 96;
	var_Columns->Add(L"Title")->Width = 96;
	var_Columns->Add(L"City");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h0 = var_Items->AddItem(TVariant("Nancy Davolio"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->InsertItem(h0,TNoParam(),TVariant("Andrew Fuller"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Vice President, Sales"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Tacoma"));
	h0 = var_Items->InsertItem(h0,TNoParam(),TVariant("Michael Suyama"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Janet Leverling"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Kirkland"));
	h0 = var_Items->InsertItem(h0,TNoParam(),TVariant("Margaret Peacock"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Redmond"));
	var_Items->set_ExpandItem(0,true);
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

1889:
Is it possible to change the date format shown when you scroll the horizontal bar on the chart

G2antt1->Chart->ToolTip = L"<b>Date</b><br><%loc_ldate%>";

1888:
How do I change the drop down filter button

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgAN") +
"J0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8Y" +
"NYuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4" +
"hhKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mg" +
"bhOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhW" +
"BMJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI="));
	var_Appearance->Add(1,TVariant("CP:2 -14 -4 -2 4"));
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHeaderFilterBarButton] = 0x1000000;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCursorHoverColumn] = G2antt1->BackColor;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::None2;
G2antt1->BackColorHeader = RGB(255,255,255);
G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Filter");
	var_Column->DisplayFilterButton = true;
	var_Column->AllowSort = false;
	var_Column->AllowDragging = false;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,196);
	var_Chart->LevelCount = 2;
G2antt1->EndUpdate();

1887:
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 __fastcall TForm1::G2antt1CellStateChanging(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,long *   NewState)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		NewState = var_Items->get_CellState(TVariant(Item),TVariant(ColIndex));
}

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"P1");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column->PartialCheck = true;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"P2");
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column1->PartialCheck = true;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
G2antt1->EndUpdate();

1886:
How do I change the color of the columns's header to cover all levels

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColorHeader;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->DefaultItemHeight = 36;
G2antt1->TreeColumnIndex = -1;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"C1");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column->Width = 24;
		var_Column->AllowSizing = false;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(3));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"C2");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(2));
	var_Columns->Add(L"Column1");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->BackColorLevelHeader = G2antt1->BackColorHeader;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2014,6,22).operator double()));
	var_Chart->set_PaneWidth(false,256);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 1.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 1.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,23).operator double()),TVariant(TDateTime(2014,6,25).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 2.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 2.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,26).operator double()),TVariant(TDateTime(2014,6,28).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1885:
Is it possible to extend the columns's header to fill all levels

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->DefaultItemHeight = 36;
G2antt1->TreeColumnIndex = -1;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"C1");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column->Width = 24;
		var_Column->AllowSizing = false;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(3));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"C2");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(2));
	var_Columns->Add(L"Column1");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->BackColorLevelHeader = G2antt1->BackColorHeader;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2014,6,22).operator double()));
	var_Chart->set_PaneWidth(false,256);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 1.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 1.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,23).operator double()),TVariant(TDateTime(2014,6,25).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 2.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 2.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,26).operator double()),TVariant(TDateTime(2014,6,28).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1884:
How do I change the color of the columns's header to cover all levels (sample CRD)

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColorHeader;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->DefaultItemHeight = 36;
G2antt1->TreeColumnIndex = -1;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"C1");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column->Width = 24;
		var_Column->AllowSizing = false;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(3));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"C2");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(2));
	var_Columns->Add(L"Column1")->Visible = false;
	var_Columns->Add(L"Column2")->Visible = false;
	var_Columns->Add(L"Column3")->Visible = false;
	Exg2anttlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"FormatLevel");
		var_Column2->FormatLevel = L"18;\"Info\"[a=17]/(2/3,4)";
		var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellFormatLevel,TVariant("2/3,4"));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2014,6,22).operator double()));
	var_Chart->set_PaneWidth(false,256);
	var_Chart->BackColorLevelHeader = G2antt1->BackColorHeader;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 1.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 1.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,23).operator double()),TVariant(TDateTime(2014,6,25).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 2.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 2.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,26).operator double()),TVariant(TDateTime(2014,6,28).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1883:
Is it possible to extend the columns's header to fill all levels (sample CRD)

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->DefaultItemHeight = 36;
G2antt1->TreeColumnIndex = -1;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"C1");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column->Width = 24;
		var_Column->AllowSizing = false;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(3));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"C2");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(2));
	var_Columns->Add(L"Column1")->Visible = false;
	var_Columns->Add(L"Column2")->Visible = false;
	var_Columns->Add(L"Column3")->Visible = false;
	Exg2anttlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"FormatLevel");
		var_Column2->FormatLevel = L"18;\"Info\"[a=17]/(2/3,4)";
		var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellFormatLevel,TVariant("2/3,4"));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2014,6,22).operator double()));
	var_Chart->set_PaneWidth(false,256);
	var_Chart->BackColorLevelHeader = G2antt1->BackColorHeader;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 1.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 1.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,23).operator double()),TVariant(TDateTime(2014,6,25).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 2.2"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Cell 2.3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2014,6,26).operator double()),TVariant(TDateTime(2014,6,28).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1882:
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

G2antt1->BeginUpdate();
G2antt1->Chart->set_PaneWidth(true,0);
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Date");
	var_Column->SortType = Exg2anttlib_tlb::SortTypeEnum::SortDate;
	var_Column->DisplayFilterButton = true;
	var_Column->DisplayFilterPattern = false;
	var_Column->DisplayFilterDate = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsDesc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"DateTime");
	var_Column1->SortType = Exg2anttlib_tlb::SortTypeEnum::SortDateTime;
	var_Column1->DisplayFilterButton = true;
	var_Column1->DisplayFilterPattern = false;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsDesc;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Time");
	var_Column2->SortType = Exg2anttlib_tlb::SortTypeEnum::SortTime;
	var_Column2->DisplayFilterButton = true;
	var_Column2->DisplayFilterPattern = false;
	var_Column2->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsDesc;
	var_Column2->FormatColumn = L"time(value)";
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->Add(L"Numeric");
	var_Column3->SortType = Exg2anttlib_tlb::SortTypeEnum::SortNumeric;
	var_Column3->DisplayFilterButton = true;
	var_Column3->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsDesc;
Exg2anttlib_tlb::IColumnPtr var_Column4 = G2antt1->Columns->Add(L"String");
	var_Column4->DisplayFilterButton = true;
	var_Column4->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsDesc;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(TDateTime(2010,1,27).operator double()));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(TDateTime(2010,1,27,10,00,00,0).operator double()));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(var_Items->get_CellValue(TVariant(h),TVariant(1))));
	var_Items->set_CellValue(TVariant(h),TVariant(3),TVariant(1));
	var_Items->set_CellValue(TVariant(h),TVariant(4),TVariant(var_Items->get_CellValue(TVariant(h),TVariant(3))));
	h = var_Items->AddItem(TVariant(TDateTime(2011,1,27).operator double()));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(TDateTime(2011,1,27,9,00,00,0).operator double()));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(var_Items->get_CellValue(TVariant(h),TVariant(1))));
	var_Items->set_CellValue(TVariant(h),TVariant(3),TVariant(11));
	var_Items->set_CellValue(TVariant(h),TVariant(4),TVariant(var_Items->get_CellValue(TVariant(h),TVariant(3))));
	h = var_Items->AddItem(TVariant(TDateTime(2010,11,2).operator double()));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(TDateTime(2010,11,2,9,00,00,0).operator double()));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(var_Items->get_CellValue(TVariant(h),TVariant(1))));
	var_Items->set_CellValue(TVariant(h),TVariant(3),TVariant(2));
	var_Items->set_CellValue(TVariant(h),TVariant(4),TVariant(var_Items->get_CellValue(TVariant(h),TVariant(3))));
G2antt1->Columns->get_Item(TVariant("DateTime"))->DisplayFilterDate = false;
G2antt1->EndUpdate();

1881:
Is there a way to set the time zone per item

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Task A"));
	var_Items->AddBar(h1,TVariant(""),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,18).operator double()),TVariant("TZ1"),TVariant("Time Zone / Item"));
	var_Items->set_ItemBar(h1,TVariant("TZ1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarSelectable,TVariant(false));
	var_Items->set_ItemBar(h1,TVariant("TZ1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackColor,TVariant(255));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,20).operator double()),TVariant(TDateTime(2001,1,29).operator double()),TVariant("Z1"),TNoParam());
	h1 = var_Items->AddItem(TVariant("Task B"));
	var_Items->AddBar(h1,TVariant(""),TVariant(TDateTime(2001,1,6).operator double()),TVariant(TDateTime(2001,1,24).operator double()),TVariant("TZ2"),TVariant("Time Zone / Item"));
	var_Items->set_ItemBar(h1,TVariant("TZ2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarSelectable,TVariant(false));
	var_Items->set_ItemBar(h1,TVariant("TZ2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackColor,TVariant(65535));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("Z1"),TNoParam());
G2antt1->EndUpdate();

1880:
Is there a way to turn arrow-key-navigation between the items on and off
// KeyDown event - Occurs when the user presses a key while an object has the focus.
void __fastcall TForm1::G2antt1KeyDown(TObject *Sender,short *   KeyCode,short   Shift)
{
	KeyCode = 0;
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Tasks");
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Effort");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(21));
	var_Column->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->NonworkingDays = 0;
	var_Chart->set_PaneWidth(false,96);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2005,6,20).operator double()));
	var_Chart->HistogramVisible = true;
	var_Chart->HistogramHeight = 128;
	var_Chart->HistogramView = Exg2anttlib_tlb::HistogramViewEnum::exHistogramAllItems;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->HistogramPattern = var_Bar->Pattern;
		var_Bar->HistogramType = Exg2anttlib_tlb::HistogramTypeEnum::exHistOverload;
		var_Bar->HistogramCriticalValue = 3;
		var_Bar->ShowHistogramValues = L"value>3?255:1";
		var_Bar->HistogramItems = -11;
		var_Bar->HistogramGridLinesColor = RGB(192,192,192);
		var_Bar->HistogramRulerLinesColor = RGB(0,0,1);
		var_Bar->FormatHistogramValues = L"value format `2`";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AllowCellValueToItemBar = true;
	long h1 = var_Items->AddItem(TVariant("Task 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2005,6,21).operator double()),TVariant(TDateTime(2005,6,23).operator double()),TNoParam(),TNoParam());
	var_Items->set_CellValue(TVariant(h1),TVariant(1),TVariant(6.79));
	h1 = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2005,6,24).operator double()),TVariant(TDateTime(2005,6,26).operator double()),TNoParam(),TNoParam());
	var_Items->set_CellValue(TVariant(h1),TVariant(1),TVariant(3.19));
	h1 = var_Items->AddItem(TVariant("Task 3"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2005,6,27).operator double()),TVariant(TDateTime(2005,6,29).operator double()),TNoParam(),TNoParam());
	var_Items->set_CellValue(TVariant(h1),TVariant(1),TVariant(2));
	h1 = var_Items->AddItem(TVariant("Task 4"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2005,6,30).operator double()),TVariant(TDateTime(2005,7,2).operator double()),TNoParam(),TNoParam());
	var_Items->set_CellValue(TVariant(h1),TVariant(1),TVariant(1));
G2antt1->EndUpdate();

1879:
I am using Layout property to sort multiple columns at once. The problem is that all items get expanded. How do I prevent that

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"P1");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column->PartialCheck = true;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"P2");
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column1->PartialCheck = true;
	var_Column1->FormatColumn = L"1 index ``";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child A"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child B"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child A"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child B"));
	var_Items->AddItem(TVariant("Root"));
	var_Items->AddItem(TVariant("Root"));
G2antt1->SingleSort = false;
G2antt1->Layout = L"multiplesort=\"C0:1 C1:2\";collapse=\"\"";
G2antt1->EndUpdate();

1878:
How can I decode the Layout property

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"C1");
	var_Columns->Add(L"C2")->Position = 1;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("SubItem 1.1"))),TVariant(1),TVariant("SubItem 1.2"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("SubItem 2.1"))),TVariant(1),TVariant("SubItem 2.2"));
G2antt1->Columns->get_Item(TVariant("C2"))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortDescending;
G2antt1->EndUpdate();
OutputDebugString( L"Encoded:" );
OutputDebugString( G2antt1->Layout );
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		ExPrint 1.0 Control Library

	TypeLib: ExPrint.dll

	to define the namespace: Exprintlib_tlb
*/
//#include "EXPRINTLIB_TLB.h"
Exprintlib_tlb::IExPrintPtr var_Print = Variant::CreateObject(L"Exontrol.Print");
	OutputDebugString( L"Decoded: " );
	OutputDebugString( var_Print->get_Decode64TextW(G2antt1->Layout) );

1877:
Is it possible to define a bar inside a bar (method 2)

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Task");
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->AllowLinkBars = false;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->Bars->get_Item(TVariant("Task"))->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Tasks"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A1"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("A2"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A3"),TNoParam());
Exg2anttlib_tlb::INotesPtr var_Notes = G2antt1->Chart->Notes;
	Exg2anttlib_tlb::INotePtr var_Note = var_Notes->Add(TVariant("N1"),TVariant(G2antt1->Items->FirstVisibleItem),TVariant("A1"),L"");
		var_Note->set_PartText(Exg2anttlib_tlb::NotePartEnum::exNoteStart,L" ");
		var_Note->set_PartFixedWidth(Exg2anttlib_tlb::NotePartEnum::exNoteStart,18);
		var_Note->set_PartFixedHeight(Exg2anttlib_tlb::NotePartEnum::exNoteStart,11);
		var_Note->set_PartCanMove(Exg2anttlib_tlb::NotePartEnum::exNoteStart,true);
		var_Note->set_PartBackColor(Exg2anttlib_tlb::NotePartEnum::exNoteStart,RGB(0,255,0));
		var_Note->set_PartVisible(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,false);
		var_Note->ShowLink = Exg2anttlib_tlb::NoteLinkTypeEnum::exNoteLinkHidden;
		var_Note->set_PartVOffset(Exg2anttlib_tlb::NotePartEnum::exNoteStart,4);
G2antt1->EndUpdate();

1876:
Is it possible to define a bar inside a bar (method 1)

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Task");
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->AllowLinkBars = false;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
		var_Bar->OverlaidGroup = L"Task,TaskB";
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->Add(L"Aka");
		var_Bar1->Color = RGB(0,255,0);
		var_Bar1->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternSolid;
	Exg2anttlib_tlb::IBarPtr var_Bar2 = var_Chart->Bars->Add(L"Task%Aka");
		var_Bar2->Shortcut = L"TaskB";
		var_Bar2->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
		var_Bar2->OverlaidGroup = L"Task,TaskB";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Tasks"));
	var_Items->AddBar(h,TVariant("TaskB"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A1"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("A1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarPercent,TVariant(0.25));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("A2"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A3"),TNoParam());
G2antt1->EndUpdate();

1875:
How do I show the bar with a solid color, no border (method 1)

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Task");
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->AllowLinkBars = false;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->Color = RGB(255,0,0);
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternSolid;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant(""),TNoParam());
G2antt1->EndUpdate();

1874:
How do I show the bar with a solid color, no border (method 2)

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Task");
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->AllowLinkBars = false;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->Color = RGB(255,0,0);
		var_Bar->StartColor = var_Bar->Color;
		var_Bar->EndColor = var_Bar->Color;
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBox;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant(""),TNoParam());
G2antt1->EndUpdate();

1873:
How do I show the bar with a solid color, no border (method 3)

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Task");
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->AllowLinkBars = false;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->RenderType = -1;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABJkIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyDQKkEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5AcgPfKgAAFESNY5gSL5Y") +
"j2IjrRDCMAggI"));
Exg2anttlib_tlb::IBarPtr var_Bar = G2antt1->Chart->Bars->get_Item(TVariant("Task"));
	var_Bar->Color = 0x10000ff;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant(""),TNoParam());
G2antt1->EndUpdate();

1872:
How do I find the cell's type, or what the cell holds

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->Chart->set_PaneWidth(true,0);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Value")->Width = 24;
	var_Columns->Add(L"Type")->FormatColumn = L"type(%0)";
	var_Columns->Add(L"TypeAsString")->FormatColumn = TVariant(String("(0 := type(%0)) array (`empty`, `null`, `short`, `long`, `float`, `double`, `currency`, `date`, `string`, `object`, `error`, `b") +
"oolean`, `variant`, `any`, `reserved`, `decimal`, `char`, `byte`, `unsigned short`, `unsigned long`, `long on 64 bits`)");
	var_Columns->Add(L"Length")->FormatColumn = L"len(%0)";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TNoParam());
	var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(->AddItem(TNoParam())),TVariant(0),G2antt1->DefaultDispatch);
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TNoParam())),TVariant(0),TVariant(true));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TNoParam())),TVariant(0),TVariant(-1));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TNoParam())),TVariant(0),TVariant(-1));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TNoParam())),TVariant(0),TVariant(TDateTime(2001,1,1).operator double()));
G2antt1->EndUpdate();

1871:
Is it possible to allow changing the bar's parent while bar's start/end margins should stay unchanged
// BarParentChange event - Occurs just before moving a bar from current item to another item.
void __fastcall TForm1::G2antt1BarParentChange(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,Variant   Key,Exg2anttlib_tlb::HITEM   NewItem,VARIANT_BOOL *   Cancel)
{
	G2antt1->Items->set_SelectItem(NewItem,true);
	OutputDebugString( L"BarParentChange from " );
	OutputDebugString( G2antt1->Items->get_CellCaption(TVariant(Item),TVariant(0)) );
	OutputDebugString( L" to " );
	OutputDebugString( G2antt1->Items->get_CellCaption(TVariant(NewItem),TVariant(0)) );
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Members")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2006,9,20).operator double()));
	var_Chart->AllowLinkBars = false;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exNoCreateBar;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,96);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCanResize,TVariant(false));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Member <b>1</b>"));
	long h = var_Items->AddItem(TVariant("Member <b>2</b>"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,23).operator double()),TVariant("T102"),TVariant("Task <b>102</b>"));
	var_Items->set_ItemBar(h,TVariant("T102"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCanMove,TVariant(false));
	var_Items->set_ItemBar(h,TVariant("T102"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCanMoveToAnother,TVariant(true));
	var_Items->AddItem(TVariant("Member <b>3</b>"));
	var_Items->AddItem(TVariant("Member <b>4</b>"));
G2antt1->EndUpdate();

1870:
Is it possible to (un)highlight the day/night shifts

// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
void __fastcall TForm1::G2antt1Click(TObject *Sender)
{
	Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
		var_Chart->ShowNonworkingDates = false;
		var_Chart->ShowNonworkingHours = false;
		var_Chart->BackColor = RGB(255,255,255);
	G2antt1->Refresh();
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
	var_Chart->UnitWidth = 64;
	var_Chart->set_PaneWidth(false,0);
	var_Chart->NonworkingHours = 15728895;
	var_Chart->NonworkingHoursPattern = Exg2anttlib_tlb::PatternEnum::exPatternSolid;
	var_Chart->NonworkingDaysPattern = var_Chart->NonworkingHoursPattern;
	var_Chart->NonworkingHoursColor = RGB(240,240,240);
	var_Chart->NonworkingDaysColor = RGB(212,212,212);
	var_Chart->BackColor = RGB(250,250,250);
G2antt1->EndUpdate();

1869:
How can I add a vertical line at specified date-time

Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,18);
	var_Chart->LevelCount = 2;
	var_Chart->UnitWidth = 32;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2010,1,1).operator double()));
	var_Chart->MarkTimeZone(TVariant("M1"),TVariant(TDateTime(2010,1,5).operator double()),TVariant(TDateTime(2010,1,5).operator double()),TVariant(16711680),TVariant("50:5;3"));
	var_Chart->MarkTimeZone(TVariant("M2"),TVariant(TDateTime(2010,1,6).operator double()),TVariant(TDateTime(2010,1,6).operator double()),TVariant(16711680),TVariant(":5"));
	var_Chart->MarkTimeZone(TVariant("M3"),TVariant(TDateTime(2010,1,7,10,00,00,0).operator double()),TVariant(TDateTime(2010,1,7,10,00,00,0).operator double()),TVariant(255),TVariant("50:3;;zone"));

1868:
How do I clear all date-time zones
// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
void __fastcall TForm1::G2antt1Click(TObject *Sender)
{
	G2antt1->Chart->RemoveTimeZone(TVariant("<*>"));
}

// RClick event - Fired when right mouse button is clicked
void __fastcall TForm1::G2antt1RClick(TObject *Sender)
{
	G2antt1->Chart->RemoveTimeZone(TVariant("<Z*>"));
}

Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,18);
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2010,1,1).operator double()));
	var_Chart->MarkTimeZone(TVariant("Z1"),TVariant(TDateTime(2010,1,4).operator double()),TVariant(TDateTime(2010,1,5).operator double()),TVariant(255),TNoParam());
	var_Chart->MarkTimeZone(TVariant("Z2"),TVariant(TDateTime(2010,1,11).operator double()),TVariant(TDateTime(2010,1,12).operator double()),TVariant(65280),TNoParam());
	var_Chart->MarkTimeZone(TVariant("M1"),TVariant(TDateTime(2010,1,7).operator double()),TVariant(TDateTime(2010,1,8).operator double()),TVariant(16711680),TVariant("50:5;3"));

1867:
How do I place a comment above/bellow the bar (sample 4)

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 26;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,64);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarVAlignCaption,TVariant(18));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(0));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaption,TVariant(" "));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaptionHAlign,TVariant(0));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaptionVAlign,TVariant(16));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant("K1"),TVariant("<font ;6>user comment"));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaption,TVariant("<font ;6>user comment"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("K2"),TVariant("<font ;6>user comment"));
	var_Items->set_ItemBar(h,TVariant("K2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaption,TVariant("<font ;6>user comment"));
G2antt1->EndUpdate();

1866:
How do I place a comment above/bellow the bar (sample 3)

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 26;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,64);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant("K1"),TVariant("<font ;6>user comment"));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarVAlignCaption,TVariant(18));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(0));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaption,TVariant("<font ;6>user comment"));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaptionHAlign,TVariant(0));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaptionVAlign,TVariant(16));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("K2"),TVariant("<font ;6>user comment"));
	var_Items->set_ItemBar(h,TVariant("K2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaption,TVariant("<font ;6>user comment"));
G2antt1->EndUpdate();

1865:
How do I place a comment under the bar (sample 2)

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 26;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,64);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarVAlignCaption,TVariant(18));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(0));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant("K1"),TVariant("<font ;6>user comment"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("K2"),TVariant("<font ;6>user comment"));
G2antt1->EndUpdate();

1864:
How do I place a comment under the bar (sample 1)

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 26;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,64);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant("K1"),TVariant("<font ;6>user comment"));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarVAlignCaption,TVariant(18));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(0));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("K2"),TVariant("<font ;6>user comment"));
G2antt1->EndUpdate();

1863:
I am using exBarCanMoveToAnother to allow a bar to be moved from one item to another. The question is if it is possible somehow to highlight the current bar can be dropped to (sample 2)

// BarParentChange event - Occurs just before moving a bar from current item to another item.
void __fastcall TForm1::G2antt1BarParentChange(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,Variant   Key,Exg2anttlib_tlb::HITEM   NewItem,VARIANT_BOOL *   Cancel)
{
	G2antt1->Items->set_SelectItem(NewItem,true);
	Cancel = G2antt1->ConditionalFormats->get_Item(TVariant("NOTRED"))->get_Verify(NewItem);
}

// ChartEndChanging event - Occurs after the chart has been changed.
void __fastcall TForm1::G2antt1ChartEndChanging(TObject *Sender,Exg2anttlib_tlb::BarOperationEnum   Operation)
{
	G2antt1->SelForeColor = 0x8000000e;
	G2antt1->SelBackColor = 0x8000000d;
	G2antt1->Chart->SelBackColor = G2antt1->SelBackColor;
	G2antt1->ConditionalFormats->Clear();
}

// ChartStartChanging event - Occurs when the chart is about to be changed.
void __fastcall TForm1::G2antt1ChartStartChanging(TObject *Sender,Exg2anttlib_tlb::BarOperationEnum   Operation)
{
	G2antt1->SelForeColor = G2antt1->ForeColor;
	G2antt1->SelBackColor = G2antt1->BackColor;
	Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
		var_Chart->SelBackColor = var_Chart->BackColor;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"%0 contains `Allowed` ",TVariant("RED"));
		var_ConditionalFormat->Enabled = false;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat1 = G2antt1->ConditionalFormats->Add(L"not ( %0 contains `Allowed` )",TVariant("NOTRED"));
		var_ConditionalFormat1->BackColor = 0x1fefefe;
		var_ConditionalFormat1->ChartBackColor = var_ConditionalFormat1->BackColor;
}

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABZkIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyDQKkEwsACEIrjKCRShyCYZRrGUgRCKQahLEiTIhGUYJHgmK4tRoAUbyDBIGQSCCZYDmKA3f") +
"j0AI9P7FcgSABEEigNIxToOU4jFgeCR2TqQRK1BDQbQSFCaZrmMKIXICO40WBQFhTdLlRyBBKzLKtCyaBqWaZrWxZE72ZaFVTdOK6bDvGwoarid56X7beA2PgdZTjQi5" +
"cCxG5sLrTBZtYzfET3diOEYPQzHMpzDB7bxbGaXZBlGSZbjeGZBUjQc7yfSNMw/HqKZQ6cQwTAIgI"));
G2antt1->Columns->Add(L"Members")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2006,9,20).operator double()));
	var_Chart->AllowLinkBars = false;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exNoCreateBar;
	var_Chart->AllowSelectObjects = Exg2anttlib_tlb::SelectObjectsEnum::exNoSelectObjects;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,96);
	var_Chart->Bars->get_Item(TVariant("Task"))->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsIncludeCaption | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Member <b>1</b>"));
	h = var_Items->AddItem(TVariant("Member <b>Allowed</b>"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,23).operator double()),TVariant("T102"),TVariant("Task <b>102</b>"));
	var_Items->set_ItemBar(h,TVariant("T102"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
	var_Items->set_ItemBar(h,TVariant("T102"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCanMoveToAnother,TVariant(true));
	h = var_Items->AddItem(TVariant("Member <b>Allowed</b>"));
	h = var_Items->AddItem(TVariant("Member <b>4</b>"));
G2antt1->EndUpdate();

1862:
I am using exBarCanMoveToAnother to allow a bar to be moved from one item to another. The question is if it is possible somehow to highlight the current bar can be dropped to (sample 1)

// BarParentChange event - Occurs just before moving a bar from current item to another item.
void __fastcall TForm1::G2antt1BarParentChange(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,Variant   Key,Exg2anttlib_tlb::HITEM   NewItem,VARIANT_BOOL *   Cancel)
{
	G2antt1->Items->set_SelectItem(NewItem,true);
	Cancel = G2antt1->ConditionalFormats->get_Item(TVariant("NOTRED"))->get_Verify(NewItem);
}

// ChartEndChanging event - Occurs after the chart has been changed.
void __fastcall TForm1::G2antt1ChartEndChanging(TObject *Sender,Exg2anttlib_tlb::BarOperationEnum   Operation)
{
	G2antt1->SelForeColor = 0x8000000e;
	G2antt1->SelBackColor = 0x8000000d;
	G2antt1->Chart->SelBackColor = G2antt1->SelBackColor;
	G2antt1->ConditionalFormats->Clear();
}

// ChartStartChanging event - Occurs when the chart is about to be changed.
void __fastcall TForm1::G2antt1ChartStartChanging(TObject *Sender,Exg2anttlib_tlb::BarOperationEnum   Operation)
{
	G2antt1->SelForeColor = G2antt1->ForeColor;
	G2antt1->SelBackColor = G2antt1->BackColor;
	Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
		var_Chart->SelBackColor = var_Chart->BackColor;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"%0 contains `Allowed` ",TVariant("RED"));
		var_ConditionalFormat->BackColor = RGB(255,128,128);
		var_ConditionalFormat->ChartBackColor = var_ConditionalFormat->BackColor;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat1 = G2antt1->ConditionalFormats->Add(L"not ( %0 contains `Allowed` )",TVariant("NOTRED"));
		var_ConditionalFormat1->Enabled = false;
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Members")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2006,9,20).operator double()));
	var_Chart->AllowLinkBars = false;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exNoCreateBar;
	var_Chart->AllowSelectObjects = Exg2anttlib_tlb::SelectObjectsEnum::exNoSelectObjects;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,96);
	var_Chart->Bars->get_Item(TVariant("Task"))->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsIncludeCaption | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Member <b>1</b>"));
	h = var_Items->AddItem(TVariant("Member <b>Allowed</b>"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,23).operator double()),TVariant("T102"),TVariant("Task <b>102</b>"));
	var_Items->set_ItemBar(h,TVariant("T102"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
	var_Items->set_ItemBar(h,TVariant("T102"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCanMoveToAnother,TVariant(true));
	h = var_Items->AddItem(TVariant("Member <b>Allowed</b>"));
	h = var_Items->AddItem(TVariant("Member <b>4</b>"));
G2antt1->EndUpdate();

1861:
How can I check, if a specified item fits a specified conditional format expression
// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	long h = G2antt1->ItemFromPoint[-1,-1,c,hit];
	OutputDebugString( PChar(G2antt1->ConditionalFormats->get_Item(TVariant("RED"))->get_Verify(h)) );
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,3).operator double()));
	var_Chart->set_PaneWidth(false,256);
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
G2antt1->Chart->SelBackColor = G2antt1->SelBackColor;
G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent;
G2antt1->ColumnAutoResize = false;
G2antt1->ContinueColumnScroll = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\VB\\SAMPLE.MDB"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
Exg2anttlib_tlb::IConditionalFormatsPtr var_ConditionalFormats = G2antt1->ConditionalFormats;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%1 = 5",TVariant("RED"));
		var_ConditionalFormat->BackColor = RGB(255,128,128);
		var_ConditionalFormat->ChartBackColor = var_ConditionalFormat->BackColor;
G2antt1->EndUpdate();

1860:
Is it possible to apply the conditional format on the items shown on the chart part of the control (sample 3)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,3).operator double()));
	var_Chart->set_PaneWidth(false,256);
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
G2antt1->ColumnAutoResize = false;
G2antt1->ContinueColumnScroll = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\VB\\SAMPLE.MDB"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
Exg2anttlib_tlb::IConditionalFormatsPtr var_ConditionalFormats = G2antt1->ConditionalFormats;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%1 in (3,5)",TNoParam());
		var_ConditionalFormat->ApplyToBars = L"Task";
		var_ConditionalFormat->BarColor = RGB(255,0,0);
		var_ConditionalFormat->BarOverviewColor = RGB(255,0,0);
		var_ConditionalFormat->ForeColor = var_ConditionalFormat->BarColor;
		var_ConditionalFormat->Bold = true;
G2antt1->EndUpdate();

1859:
Is it possible to apply the conditional format on the items shown on the chart part of the control (sample 2)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,3).operator double()));
	var_Chart->set_PaneWidth(false,256);
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
G2antt1->ColumnAutoResize = false;
G2antt1->ContinueColumnScroll = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\VB\\SAMPLE.MDB"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
Exg2anttlib_tlb::IConditionalFormatsPtr var_ConditionalFormats = G2antt1->ConditionalFormats;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%1 in (3,5)",TNoParam());
		var_ConditionalFormat->ApplyTo = Exg2anttlib_tlb::FormatApplyToEnum(0x1);
		var_ConditionalFormat->BackColor = RGB(255,128,128);
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat1 = var_ConditionalFormats->Add(L"%1 in (3,5)",TNoParam());
		var_ConditionalFormat1->ApplyToBars = L"Task";
		var_ConditionalFormat1->BarColor = RGB(255,0,0);
		var_ConditionalFormat1->BarOverviewColor = RGB(255,0,0);
		var_ConditionalFormat1->ChartBackColor = RGB(255,128,128);
G2antt1->EndUpdate();

1858:
Is it possible to apply the conditional format on the items shown on the chart part of the control (sample 1)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,3).operator double()));
	var_Chart->set_PaneWidth(false,256);
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent;
G2antt1->BackColorAlternate = RGB(240,240,240);
G2antt1->ColumnAutoResize = false;
G2antt1->ContinueColumnScroll = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\VB\\SAMPLE.MDB"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->Chart->SelBackColor = G2antt1->SelBackColor;
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
Exg2anttlib_tlb::IConditionalFormatsPtr var_ConditionalFormats = G2antt1->ConditionalFormats;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%1 in (3,5)",TNoParam());
		var_ConditionalFormat->ApplyToBars = L"Task";
		var_ConditionalFormat->BarColor = RGB(255,0,0);
		var_ConditionalFormat->BarOverviewColor = RGB(255,0,0);
		var_ConditionalFormat->BackColor = RGB(255,128,128);
		var_ConditionalFormat->ChartBackColor = RGB(255,128,128);
G2antt1->EndUpdate();

1857:
How can I get ride / hide the image being dragged by OLE Drag and Drop
// OLEStartDrag event - Occurs when the OLEDrag method is called.
void __fastcall TForm1::G2antt1OLEStartDrag(TObject *Sender,Exg2anttlib_tlb::IExDataObject   *Data,long *   AllowedEffects)
{
	// Data.SetData("data to drag")
	AllowedEffects = 1;
}

G2antt1->OLEDropMode = Exg2anttlib_tlb::exOLEDropModeEnum::exOLEDropManual;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exDragDropAfter] = RGB(255,255,255);
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->Columns->Add(L"Default");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);

1856:
How do I change the visual appearance of the split bars

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 24;
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABEgDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGMYhTgmFgAQhFcZQSB0Eg1BKMYwjOJgFgmEQxDQNIBQSLIYQiGSWZBGUBJDjWGgyQjOEByD") +
"IMRwjE6UZBgeCRViEMo9RrSEZSLAdGRFAaVYDdULBEACU5VRZQFCwTQcBhpIyoZpkECobh2TYgQjYNT1NSkLxeGoSbbuGhBQrOAw1XTEMhyDR0LTJM6bMBACqrBi2L4x" +
"URfOBRXLQAYbHjAZ7rSgacjKRpKRbmAV4Oh+O5pQjadp1TidNwHLoAK7nGwbbgmfwAZrAdjABj1HgBNS2dDkaabQrKEZ4XYAHAXVROOQTWIANb2XC4bwSLAwTJJYzjTh" +
"iC2GInFOOQckiVw6AeCIvHSBzkCwDxfE6WZ2jsehICadx5kGYZdDgMRrA2c4NmWY56jyGxgEQJIgGkGJHEGVByBkWoCjkNAAAQIQ2AYRoDGQJAoKuZYgBgRZHggHZqAk" +
"AZDjYGA7E8KB0kyB5LiiBgigiYhIgiQ4Jk4WIkn6CphjQDgbDmIwDBIMg3GMQ4uDaDZjgiZg6DIY5DGIPg/GQBAMneEJMFkFJqhGTppCYSoSmSSQ2EoPJlAMIhSDmZRE" +
"AyVYVk0eRkm+FpkmkdhehaTp4iSZQxiYRAODIMQODmJJxhqTwJjYbobmcCZGHKGxLjmVQDC+J4DiYeg8GGWYuH6H5oAoBoCgcTwimaBodmeGZongPRPCoCoOiOZ5qBII" +
"oiAuaZomkPoPGOToEiaaZKHaHYfiUA5OhMAAngoVh6iYKYqHqKoqmGWoGiOKRkHOKJ7D2TxKgaNotmuCpmFAPQrkqPh4iwaw6laOowmwOpwnSL4LmiXJ9D4TxbBqTozm" +
"0CxGjwPRtEsIJsjWT4Dlydo1C2Sx2l6N5uAOWpijIDpbhYQ42i4K4mmqOpukuMpnjIJIjmKco5m8S5WnaPZkDuSJ4h0S46FKcY8m+DAHAGPovkoUhgD4cILmsCpCnCTA" +
"2nKQgPhwFokh4JpjmsFpEDGDBnBqRpwgwWJ6kSKhZjie5FnGTIXCWR4yAmYh+D+D48g8HpLnMDJHDIPoylObwpWIY5/CyTJzkydw1kSIhzA6ZQ7E+fJrDWUZ0g0JxKks" +
"T5NDSPJTmUaRcmAN5Nn0FJ/lMdYNGcWpWnWHRaGAMZ2AQDoEDKNhLicVpViQDYnGqWpPl2HxFDQNwJgoLoGGaCcDInRdjMCuNYbovR2D2FyNgNIcAJC5FWKwNwcBqAzC" +
"WBoPgTA8BkEwFwN4HRjjyAMH8EgcQ5CaGIFoAAHQ3AgAAIAQBAQ=="));
	var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABBYDg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGMYhTgmFgAQhFcZQSB0Eg1BKMYwjOJgFgmEQxDQNIBQSLIYQiGSWZTgMYRSASI43RoMUIzV") +
"AcQxDEaIZLlGQYHgkNIhDJPcZ0VDUbQGBiQIRmIAHNBwJJUVZFdBDLQkQy5HapZDkECobA+CZQTzUUI1LS9WS1HYaRJle4YRDUMJyQjdV4TRINHQvMinYzqOzrOhaW5T" +
"SzLcqyCK0SxxR4AJ4yGobJjiQYJShXcxyDQ8dyZC7PQohG7ofxUAKDVjhMjZRQeMS9JCwaThHElRQHMyBdJkKA9Iq2WaGXBeeQ3JbNbzrYzHb5hHZgAzTOoWbzWFT8BJ" +
"OFOCAYGcJJjHGTh+C2H40AAL5ckyBQDFkKoWHYLw9iGTpGDUY4zkIdwbF8JhbgMc5hF6OJ8C6BhTkOcBAlsR4NnQaAflAIQJBQBoRgwdAdEcIYVEUQJBGYOBCBMYQUGg" +
"NhCEKB5FB4VBBgQXJgF+IAzA4Ig5GIQIQBwOxiGiIgngoYpIi4LoKiMA5KDIMwjEKakmk6OJkkmDpNgidgtgwI55AYJw5iQQwSEYNxkgiZJrEITppDSc4TkyCREmeFJk" +
"CkAkLmWAwWFoOolkkNheDuJJJDSb4YmIQ4UkaGZlFkVJVhqTR5jYYw7mWeQ1AkPAnEmVh1C6Z4JiYL4KGQYwQmOH5PBoBh2h0EIaAaBg8GMI5Ij6IpokoNoOiOaJDiaE" +
"oiA8KgegGIRpGoZoaiaaZDmCdYlGkZAmgmKJqEqFomimaoKCaIoqGqSo2iwQhknqRoyiyaxKlaNotk8OpCjiLprkqbQJD0LALAaQowmwSwWkaMZQhOVpKjKbJLDaTozm" +
"0CxFAkPYtEsVpWjWbYLGaWo2lCGRil6N5pAuBpiDsbhLH6Zo3G4ax6HhYgpFibYjCWa4ml4QhPguVp2D4b4Li6bYPmiSZWngPhvGuWQJj+b5zmsBo+iePAmDCIwoGwGJ" +
"6kEL4MA8EJDjCC46FWQwoBObwGkQD4UCcDpDg+PIHBWPpiHwYJxD+MgcH8BpH4cBJ7kicIrnKC4hg+fIjCoPoQhyOwuD8M5CnMPpJCMCIIkOOQOlOfw1k6MnJDwPw0GO" +
"fhvDGdQNAIKdalOAJfDedJdC8SxCeyNJQleZhdEoJ4iEyLYWlWVx0GQJJslqTQtjcVJYi6aZ8mMM43EmFwCECJkfYyWiDuAuG0EgdBNB8AYHYMgxwEM1EAIAgIA=="));
	var_Appearance->Add(3,TVariant("CP:2 -2 -2 2 2"));
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarsPtr var_Bars = var_Chart->Bars;
		Exg2anttlib_tlb::IBarPtr var_Bar = var_Bars->Add(L"A");
			var_Bar->Height = 15;
			var_Bar->Color = 0x2000000;
			var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBDiagonal;
		Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Bars->Add(L"Task:A");
			var_Bar1->Shortcut = L"Task";
			var_Bar1->Height = 15;
			var_Bar1->Color = 0x1000000;
			var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarKeepWorkingCount,TVariant(true));
	var_Chart->NonworkingDaysColor = RGB(240,240,240);
	var_Chart->SelBarColor = RGB(0,0,255);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TNoParam(),TNoParam());
	long h = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant(""),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(65535));
	h = var_Items->AddItem(TVariant("Task 3"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant(""),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarSelected,TVariant(true));
	h = var_Items->AddItem(TVariant("Task 4"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant(""),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarNonWorkingColor,TVariant(58753152));
	h = var_Items->AddItem(TVariant("Task 5"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant(""),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarNonWorkingColor,TVariant(25198720));
	h = var_Items->AddItem(TVariant("Task 6"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant(""),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarNonWorkingColor,TVariant(2130771712));
G2antt1->EndUpdate();

1855:
Is there a way to display automatically the duration ( days, hours, minutes ) of the bar next to it

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Tasks");
	var_Column->AllowSizing = false;
	var_Column->Width = 36;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2009,4,6).operator double()));
	var_Chart->LevelCount = 2;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Add(L"Task:Progress");
		var_Bar->Shortcut = L"TaskS";
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant(String("<%=((1:=int(0:= (%258))) != 0 ? (=:1 + ' day(s)') : '') + (=:1 ? ' ' : '' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != ") +
"0 ? =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')%>"));
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exMinute;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("T1")),TVariant("TaskS"),TVariant(TDateTime(2009,4,10,2,30,00,0).operator double()),TVariant(TDateTime(2009,4,16,2,30,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T2")),TVariant("TaskS"),TVariant(TDateTime(2009,4,14,9,00,00,0).operator double()),TVariant(TDateTime(2009,4,22,10,10,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->set_ItemBar(0,TVariant("<*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarKeepWorkingCount,TVariant(true));
	var_Items->set_ItemBar(0,TVariant("<*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
G2antt1->EndUpdate();

1854:
Is there a way to display automatically the duration ( days, hours, minutes ) of the bar next to it

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Tasks");
	var_Column->AllowSizing = false;
	var_Column->Width = 36;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2009,4,6).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exMinute;
	var_Chart->Bars->get_Item(TVariant("Task"))->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant(String("<%=((1:=int(0:= (%513))) != 0 ? (=:1 + ' day(s)') : '') + (=:1 ? ' ' : '' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != ") +
"0 ? =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')%>"));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("T1")),TVariant("Task"),TVariant(TDateTime(2009,4,6,2,30,00,0).operator double()),TVariant(TDateTime(2009,4,6,12,35,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T2")),TVariant("Task"),TVariant(TDateTime(2009,4,6,9,00,00,0).operator double()),TVariant(TDateTime(2009,4,6,10,10,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->set_ItemBar(0,TVariant("<*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
G2antt1->EndUpdate();

1853:
Does it support single or multiple split pane views

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSplitBar] = RGB(128,128,128);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCSplitBar] = RGB(40,40,40);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,76);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternShadow;
		var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolidDown;
		var_Bar->Color = RGB(0,0,255);
		var_Bar->StartColor = var_Bar->Color;
		var_Bar->EndColor = var_Bar->Color;
	var_Chart->AllowSplitPane = Exg2anttlib_tlb::AllowSplitPaneEnum::exAllowTwoSplitPane | Exg2anttlib_tlb::AllowSplitPaneEnum::exAllowOneSplitPane;
	var_Chart->SplitPaneWidth = L"128,128";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,2,23).operator double()),TVariant(TDateTime(2001,2,27).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
G2antt1->EndUpdate();

1852:
How can I programmatically add more split panes ( by code)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSplitBar] = RGB(128,128,128);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,76);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternShadow;
		var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolidDown;
		var_Bar->Color = RGB(0,0,255);
		var_Bar->StartColor = var_Bar->Color;
		var_Bar->EndColor = var_Bar->Color;
	var_Chart->AllowSplitPane = Exg2anttlib_tlb::AllowSplitPaneEnum::exAllowOneSplitPane;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,2,23).operator double()),TVariant(TDateTime(2001,2,27).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
Exg2anttlib_tlb::IChartPtr var_Chart1 = G2antt1->Chart;
	var_Chart1->ScrollTo(var_Chart1->get_EndPrintDate(),TVariant(1));
	var_Chart1->SplitPaneWidth = L"128,128,128";
	var_Chart1->ScrollTo(var_Chart1->get_StartPrintDate(),TVariant(1));
G2antt1->EndUpdate();

1851:
How can I programmatically add a split pane, or adding a split view at runtime

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCSplitBar] = RGB(40,40,40);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,76);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternShadow;
		var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolidDown;
		var_Bar->Color = RGB(0,0,255);
		var_Bar->StartColor = var_Bar->Color;
		var_Bar->EndColor = var_Bar->Color;
	var_Chart->AllowSplitPane = Exg2anttlib_tlb::AllowSplitPaneEnum::exAllowOneSplitPane;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,2,23).operator double()),TVariant(TDateTime(2001,2,27).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
Exg2anttlib_tlb::IChartPtr var_Chart1 = G2antt1->Chart;
	var_Chart1->ScrollTo(var_Chart1->get_EndPrintDate(),TVariant(1));
	var_Chart1->SplitPaneWidth = L"128";
	var_Chart1->ScrollTo(var_Chart1->get_StartPrintDate(),TVariant(1));
G2antt1->EndUpdate();

1850:
Is there any way, property, procedure or anything else to split the control into multiple views

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCSplitBar] = RGB(40,40,40);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,76);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternShadow;
		var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolidDown;
		var_Bar->Color = RGB(0,0,255);
		var_Bar->StartColor = var_Bar->Color;
		var_Bar->EndColor = var_Bar->Color;
	var_Chart->AllowSplitPane = Exg2anttlib_tlb::AllowSplitPaneEnum::exAllowOneSplitPane;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,2,23).operator double()),TVariant(TDateTime(2001,2,27).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
G2antt1->EndUpdate();

1849:
It appears that I can not use the ItemFromPoint property in my environment. What else I can do

// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	OutputDebugString( PChar(G2antt1->ExecuteTemplate(L"Dim c, hit; ItemFromPoint(-1,-1, c, hit )")) );
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Default");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column->PartialCheck = true;
G2antt1->Chart->set_PaneWidth(true,0);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Root 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
G2antt1->EndUpdate();

1848:
How can I change the color for selected links (ebn)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->RenderType = -2;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAEGg4BNkMQAAYAQGKIYBkAKBQAGaAoDDYNQwQwAAwjIKEEwsACEIrjKCVIgkHYJRjGEZxMAsEwjAoaQChEZRUhEMgxDDIIxAJIcaw0GSEZwgOQZB") +
"iOEYnDANMgzDLMZR7DajYymSA6LiKNo+QjKFB0NLMVRtEIIIzCSCaNomT4DS4NIi2DYcVhhMqBYbtCZZBo2FpZUxXdL0BJMVxbHKYJikW4pVjoAJ+TxccjVDQNJyLQ6r" +
"YzuAAKNpuO58RbdGDQHA9KyfLCEcTxYAMbp6X5kaBZVp2VCMRzbTLUIDzPNVCTrNIaJioAaMeiCG5NUzieqRNalLABFjZMIHDbtGynDIJZruW52+CLIZpWbEOiRXr2Tx" +
"xgGYp5Fie5mAYBgIgSFDrDOIZUmQZYiECXJUjIEQ3lUGgbEIRQcg+Hg8DEFxYFuOR/i+X5znufh/omBgCgCVwjn4BoBmCCAmAqApgkefgMgOYQID4DoELsUgTgUYYIC4" +
"F4GGGSAaBuBxhhgfgggUYgog4EYJGIaBJn6ChiBiLgsgkIpoj4J4BCMSJWDaDZjgiZgCEAQCAgA=="));
	var_Appearance->Add(2,TVariant("CP:1 -2 -2 2 2"));
G2antt1->DefaultItemHeight = 24;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->NonworkingDays = 0;
	var_Chart->LinksStyle = Exg2anttlib_tlb::LinkStyleEnum::exLinkSolid;
	var_Chart->LinksWidth = 2;
	var_Chart->SelLinkColor = 0x20000ff;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Task 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L1"),h1,TVariant(""),h2,TVariant(""));
	var_Items->set_Link(TVariant("L1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkSelected,TVariant(true));
	long h3 = var_Items->AddItem(TVariant("Task 3"));
	var_Items->AddBar(h3,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L2"),h2,TVariant(""),h3,TVariant(""));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();

1847:
How can I change the color for selected links (color, no frame)

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 24;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->NonworkingDays = 0;
	var_Chart->LinksStyle = Exg2anttlib_tlb::LinkStyleEnum::exLinkSolid;
	var_Chart->LinksWidth = 2;
	var_Chart->SelLinkColor = 0x7f0000ff;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Task 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L1"),h1,TVariant(""),h2,TVariant(""));
	var_Items->set_Link(TVariant("L1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkSelected,TVariant(true));
	long h3 = var_Items->AddItem(TVariant("Task 3"));
	var_Items->AddBar(h3,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L2"),h2,TVariant(""),h3,TVariant(""));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();

1846:
How can I change the color for selected links (color, frame)

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 24;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->NonworkingDays = 0;
	var_Chart->LinksStyle = Exg2anttlib_tlb::LinkStyleEnum::exLinkSolid;
	var_Chart->LinksWidth = 2;
	var_Chart->SelLinkColor = RGB(255,0,0);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Task 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L1"),h1,TVariant(""),h2,TVariant(""));
	var_Items->set_Link(TVariant("L1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkSelected,TVariant(true));
	long h3 = var_Items->AddItem(TVariant("Task 3"));
	var_Items->AddBar(h3,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(""),TNoParam());
	var_Items->AddLink(TVariant("L2"),h2,TVariant(""),h3,TVariant(""));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();

1845:
By default, the bar gets selected once the user releases the button of the mouse. Is it possible to change this behavior so the bar gets selected once the user presses the button of the mouse
// MouseDown event - Occurs when the user presses a mouse button.
void __fastcall TForm1::G2antt1MouseDown(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	long h = G2antt1->ItemFromPoint[-1,-1,c,hit];
	TVariant b = TVariant(G2antt1->Chart->get_BarFromPoint(-1,-1));
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_ItemBar(0,TVariant("<*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarSelected,TVariant(false));
		var_Items->set_ItemBar(h,TVariant(b),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarSelected,TVariant(true));
}

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 32;
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAEGg4BNkMQAAYAQGKIYBkAKBQAGaAoDDYNQwQwAAwjIKEEwsACEIrjKCVIgkHYJRjGEZxMAsEwjAoaQChEZRUhEMgxDDIIxAJIcaw0GSEZwgOQZB") +
"iOEYnDANMgzDLMZR7DajYymSA6LiKNo+QjKFB0NLMVRtEIIIzCSCaNomT4DS4NIi2DYcVhhMqBYbtCZZBo2FpZUxXdL0BJMVxbHKYJikW4pVjoAJ+TxccjVDQNJyLQ6r" +
"YzuAAKNpuO58RbdGDQHA9KyfLCEcTxYAMbp6X5kaBZVp2VCMRzbTLUIDzPNVCTrNIaJioAaMeiCG5NUzieqRNalLABFjZMIHDbtGynDIJZruW52+CLIZpWbEOiRXr2Tx" +
"xgGYp5Fie5mAYBgIgSFDrDOIZUmQZYiECXJUjIEQ3lUGgbEIRQcg+Hg8DEFxYFuOR/i+X5znufh/omBgCgCVwjn4BoBmCCAmAqApgkefgMgOYQID4DoELsUgTgUYYIC4" +
"F4GGGSAaBuBxhhgfgggUYgog4EYJGIaBJn6ChiBiLgsgkIpoj4J4BCMSJWDaDZjgiZgCEAQCAgA=="));
	var_Appearance->Add(2,TVariant("CP:1 -2 -2 2 2"));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->AllowSelectObjects = Exg2anttlib_tlb::SelectObjectsEnum::exNoSelectObjects;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2002,1,1).operator double()));
	var_Chart->SelBarColor = 0x2000000;
	var_Chart->set_PaneWidth(false,48);
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2002,1,2).operator double()),TVariant(TDateTime(2002,1,4).operator double()),TVariant("A"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2002,1,6).operator double()),TVariant(TDateTime(2002,1,10).operator double()),TVariant("B"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2002,1,11).operator double()),TVariant(TDateTime(2002,1,14).operator double()),TVariant("C"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("B"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarSelected,TVariant(true));
G2antt1->EndUpdate();

1844:
How can I change the bar's color (sample 3, ebn, individual, global)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->RenderType = -2;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABN0GACAADACAxRDAMgBQKAAzQFAYahuGSGAAGMYxQgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQyDAAUIjOKsIhkGYcZAGQBJCjWGodQLOEgwH") +
"IERQjEyUJAGGQIHhyPYbUbGUpQHKkeRtGqgBgoKhKEouNYgAbGYIwTRsdyfDSXBpEWwbDgkNQwWTDNoRDIUQStCysaYjOpnfrUAJ1P7FdQ1NJkXRhGSSK7maapaiCSZ6" +
"STCMj1FhVKSNJ7DQKhGpgKh/ApgYpQOK4fLNXyRBK4QAyKA6bgPFZOZbFViaXY1V5bNKrcjhHQwAyHJ4XXRdV4YRAkUT4GqiJKGSYcQhuXZWbRqO6ABhef6DRThc6jKp" +
"FHIE4llEcojHqSZNgoIxnlgd5thsLREleL43gsYZ9BkaAYkMAgAm+CxGDWWAtiKCRfjcdRgHoHYnicUwgAIEIREAaQYkcQZUHIGRUDQJBOEYRAhDYCxGgMZAkCgdYQha" +
"XQIAYERwQuahXggdgeG6VZ4H4IhdiIGIOB8YIiGiHZZgqYpGF4KYHiKCI+CAU5jCiTQ2g0YhEFyax4gABAEIC"));
	var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQG") +
"h+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKf" +
"aZACj4arKejrRDCMAggI="));
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar->Color = 0x1000000;
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar1->Color = 0x2000000;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummaryJ = var_Items->AddItem(TVariant("Summary A"));
	var_Items->AddBar(hSummaryJ,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("J"),TNoParam());
	long hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.1"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("J1"),TNoParam());
	hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.2"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("J2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryJ,TVariant("J"),-1,TVariant("<*>"));
	long hSummaryK = var_Items->AddItem(TVariant("Summary B"));
	var_Items->AddBar(hSummaryK,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("K"),TNoParam());
	long hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.1"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.2"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryK,TVariant("K"),-1,TVariant("<*>"));
	var_Items->set_ItemBar(0,TVariant("<K*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(255));
	var_Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();

1843:
How can I change the bar's color (sample 2, global)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar->Color = RGB(255,0,0);
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar1->Color = RGB(255,0,0);
		var_Bar1->StartColor = var_Bar1->Color;
		var_Bar1->EndColor = var_Bar1->Color;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummaryJ = var_Items->AddItem(TVariant("Summary A"));
	var_Items->AddBar(hSummaryJ,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("J"),TNoParam());
	long hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.1"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("J1"),TNoParam());
	hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.2"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("J2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryJ,TVariant("J"),-1,TVariant("<*>"));
	long hSummaryK = var_Items->AddItem(TVariant("Summary B"));
	var_Items->AddBar(hSummaryK,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("K"),TNoParam());
	long hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.1"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.2"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryK,TVariant("K"),-1,TVariant("<*>"));
	var_Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();

1842:
How can I change the bar's color (sample 1, individual)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->Bars->get_Item(TVariant("Task"))->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
	var_Chart->Bars->get_Item(TVariant("Summary"))->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummaryJ = var_Items->AddItem(TVariant("Summary A"));
	var_Items->AddBar(hSummaryJ,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("J"),TVariant("  (default)"));
	long hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.1"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("J1"),TVariant("(default)"));
	hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.2"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("J2"),TVariant("(default)"));
	var_Items->DefineSummaryBars(hSummaryJ,TVariant("J"),-1,TVariant("<*>"));
	long hSummaryK = var_Items->AddItem(TVariant("Summary B"));
	var_Items->AddBar(hSummaryK,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("K"),TNoParam());
	long hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.1"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.2"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryK,TVariant("K"),-1,TVariant("<*>"));
	var_Items->set_ItemBar(hSummaryK,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(255));
	var_Items->set_ItemBar(0,TVariant("<K*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(255));
	var_Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();

1841:
How do I make the control read-only (method 2)

// Edit event - Occurs just before editing the focused cell.
void __fastcall TForm1::G2antt1Edit(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,VARIANT_BOOL *   Cancel)
{
	Cancel = true;
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->Add(L"Editor")->Editor;
	var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckListType;
	var_Editor->AddItem(1,L"One",TNoParam());
	var_Editor->AddItem(2,L"Two",TNoParam());
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Check");
	Exg2anttlib_tlb::IEditorPtr var_Editor1 = var_Column->Editor;
		var_Editor1->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
		var_Editor1->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue1,TVariant(2));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(1))),TVariant(1),TVariant(0));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(2))),TVariant(1),TVariant(1));
G2antt1->EndUpdate();

1840:
How do I make the control read-only (method 1)

G2antt1->BeginUpdate();
G2antt1->ReadOnly = Exg2anttlib_tlb::ReadOnlyEnum::exReadOnly;
Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->Add(L"Editor")->Editor;
	var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckListType;
	var_Editor->AddItem(1,L"One",TNoParam());
	var_Editor->AddItem(2,L"Two",TNoParam());
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Check");
	Exg2anttlib_tlb::IEditorPtr var_Editor1 = var_Column->Editor;
		var_Editor1->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
		var_Editor1->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue1,TVariant(2));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(1))),TVariant(1),TVariant(0));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(2))),TVariant(1),TVariant(1));
G2antt1->EndUpdate();

1839:
The ReadOnly property does not prevent changing the column's check-box (sample 2)

G2antt1->BeginUpdate();
G2antt1->ShowFocusRect = false;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"C1");
	var_Column->AllowSizing = false;
	var_Column->Width = 18;
	var_Column->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
G2antt1->Columns->Add(L"C2");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(0))),TVariant(1),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(-1))),TVariant(1),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(0))),TVariant(1),TVariant("Item 3"));
G2antt1->ReadOnly = Exg2anttlib_tlb::ReadOnlyEnum::exReadOnly;
G2antt1->Columns->get_Item(TVariant(0))->Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(2));
G2antt1->EndUpdate();

1838:
The ReadOnly property does not prevent changing the column's check-box (sample 1)

G2antt1->BeginUpdate();
G2antt1->ShowFocusRect = false;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"C1");
	var_Column->AllowSizing = false;
	var_Column->Width = 18;
	Exg2anttlib_tlb::IEditorPtr var_Editor = var_Column->Editor;
		var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
		var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(1));
G2antt1->Columns->Add(L"C2");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(0))),TVariant(1),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(-1))),TVariant(1),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(0))),TVariant(1),TVariant("Item 3"));
G2antt1->ReadOnly = Exg2anttlib_tlb::ReadOnlyEnum::exReadOnly;
G2antt1->EndUpdate();

1837:
How can I change the visual appearance of the control's split bar (sample 3)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Default");
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABPsIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRrGUQxCKIZhzEgYRokAYYRDIMg5SBIETzFIMCQ9AaaJpieRJG") +
"iiKoJSxHErgFD8QxzEKOZqnCapViAMpOAZQAwDAIoWhpKKBRhqOpRUhaID/WAAFCUZK4ASTDCyLRgNy4lACgI"));
	var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABPkIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRrGUQxCKIZhzEgYRoiEYhXDiIAxARHcgyBIMPQJGSaZpkSRpI") +
"iqHItS6BM4RVKkcw7G6BaJnGJpADKTQGQiMIwDAIoWhpKCBaiqSpqMglf5fg6pOJqHACZZKWLNLpxDBMAkBA="));
	var_Appearance->Add(3,TVariant(String("gBFLBCJwBAEHhEJAAEhABUUIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRrGQCwTCIYhmHKSRhGSIRSDcOIgDCBEbyDIEQw9AiZZqmaRZH") +
"imK4cS5MEhwHKsLSLGyOZwoSapbgmJooU5KUwSYKQcxBI6laYpIAKJhiWobTxUEBwMKlJw5KoBJxjKqIbp2XZsUxIAxXEA1HBgGASRZGS5bDreeQ0UZCL74GAFUy/Lib" +
"a6weqnLhGCYBgIA=="));
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSplitBar] = 0x1808080;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHSplitBar] = 0x2808080;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCSplitBar] = 0x3010101;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->HistogramVisible = true;
	var_Chart->HistogramHeight = 64;
	var_Chart->OverviewHeight = 48;
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAll;
G2antt1->EndUpdate();

1836:
How can I change the color for the control's split bar (sample 2)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Default");
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSplitBar] = RGB(190,190,190);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHSplitBar] = RGB(128,128,128);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCSplitBar] = RGB(0,0,1);
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->HistogramVisible = true;
	var_Chart->HistogramHeight = 64;
	var_Chart->OverviewHeight = 48;
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAll;
G2antt1->EndUpdate();

1835:
How do I highlight a bar with an icon, exclamation mark or some warning sign, without using exBarCaption, exBarExtraCaption which I've already use for something else ( sample 2 )

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,26).operator double()));
	var_Chart->set_PaneWidth(false,128);
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	long h = var_Items->AddItem(TVariant("Item"));
	var_Items->AddItem(TVariant(""));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,1).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A"),TNoParam());
Exg2anttlib_tlb::INotesPtr var_Notes = G2antt1->Chart->Notes;
	Exg2anttlib_tlb::INotePtr var_Note = var_Notes->Add(TVariant("Attention"),TVariant(G2antt1->Items->get_ItemByIndex(1)),TVariant("A"),L" <font ;11>! ");
		var_Note->set_RelativePosition(TVariant(0.5));
		var_Note->ShowLink = Exg2anttlib_tlb::NoteLinkTypeEnum::exNoteLinkHidden;
		var_Note->set_PartVOffset(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,0);
		var_Note->set_PartShadow(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,false);
		var_Note->set_PartBackColor(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,RGB(255,255,0));
G2antt1->EndUpdate();

1834:
How do I highlight a bar with an icon, exclamation mark or some warning sign, without using exBarCaption, exBarExtraCaption which I've already use for something else ( sample 1 )

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,26).operator double()));
	var_Chart->set_PaneWidth(false,128);
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	long h = var_Items->AddItem(TVariant("Item"));
	var_Items->AddItem(TVariant(""));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,1).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("A"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExt,TVariant("[text=`<bgcolor=FFFF00><font ;11> ! `,align=0x11]"));
	var_Items->set_ItemBar(h,TVariant("A"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExtInflate,TVariant(8));
G2antt1->EndUpdate();

1833:
How do I get the "Summary" bar being shown in the control's histogram (sample 2)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQG") +
"h+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKf" +
"aZACj4arKejrRDCMAggI="));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->HistogramVisible = true;
	var_Chart->HistogramHeight = 64;
	var_Chart->HistogramView = Exg2anttlib_tlb::HistogramViewEnum::exHistogramNoGrouping | Exg2anttlib_tlb::HistogramViewEnum::exHistogramAllItems;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->HistogramPattern = var_Bar->Pattern;
		var_Bar->HistogramType = Exg2anttlib_tlb::HistogramTypeEnum::exHistCumulative;
		var_Bar->HistogramCumulativeOriginalColorBars = Exg2anttlib_tlb::HistogramCumulativeOriginalColorBarsEnum::exKeepOriginalColor;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	var_Items->set_ItemBar(hSummary,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(16777216));
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,12).operator double()),TVariant(TDateTime(2001,1,17).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
G2antt1->EndUpdate();

1832:
How do I get the "Summary" bar being shown in the control's histogram (sample 1)

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQG") +
"h+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKf" +
"aZACj4arKejrRDCMAggI="));
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->HistogramVisible = true;
	var_Chart->HistogramHeight = 64;
	var_Chart->HistogramView = Exg2anttlib_tlb::HistogramViewEnum::exHistogramNoGrouping | Exg2anttlib_tlb::HistogramViewEnum::exHistogramAllItems;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->HistogramPattern = var_Bar->Pattern;
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar1->Color = 0x1000000;
		var_Bar1->HistogramColor = RGB(0,0,1);
		var_Bar1->HistogramPattern = Exg2anttlib_tlb::PatternEnum::exPatternBDiagonal;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,12).operator double()),TVariant(TDateTime(2001,1,17).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
G2antt1->EndUpdate();

1831:
How can I temporarily/programmatically hide the control's tooltip

// RClick event - Fired when right mouse button is clicked
void __fastcall TForm1::G2antt1RClick(TObject *Sender)
{
	long nToolTipDelay = G2antt1->ToolTipDelay;
	G2antt1->ToolTipDelay = 0;
	G2antt1->ToolTipDelay = nToolTipDelay;
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Column w/h tooltip...")->ToolTip = L"This is a bit of text that's shown when the cursor hovers the column.<br><br><sha ;;0><c>Right-Click to hide it</sha>";
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->FirstWeekDay = var_Chart->LocFirstWeekDay;
	var_Chart->MonthNames = var_Chart->LocMonthNames;
	var_Chart->WeekDays = var_Chart->LocWeekDays;
	var_Chart->AMPM = var_Chart->LocAMPM;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Flat;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
G2antt1->EndUpdate();

1830:
Is it possible to find out the handle of the item, giving the key of the bar only

G2antt1->BeginUpdate();
G2antt1->Debug = true;
G2antt1->DefaultItemHeight = 32;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->Bars->get_Item(TVariant("Task"))->Height = 16;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->ShowLinks = Exg2anttlib_tlb::ShowExtendedLinksEnum::exShowExtendedLinks;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant("K1"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 2")),TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("K2"),TNoParam());
	var_Items->set_ItemBold(var_Items->get_ItemBar(0,TVariant("K2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarParent),true);
G2antt1->EndUpdate();

1829:
How can I programmatically add a link between two bars, knowing the keys of these bars only

G2antt1->BeginUpdate();
G2antt1->Debug = true;
G2antt1->DefaultItemHeight = 32;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->Bars->get_Item(TVariant("Task"))->Height = 16;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->ShowLinks = Exg2anttlib_tlb::ShowExtendedLinksEnum::exShowExtendedLinks;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Task 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant("K1"),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("AK2"),TNoParam());
	var_Items->AddLink(TVariant("Link1"),0,TVariant("K1"),0,TVariant("AK2"));
	var_Items->AddLink(TVariant("Link2"),0,TVariant("K1"),0,TVariant("<A?2>"));
	var_Items->AddLink(TVariant("Link3"),0,TVariant("<*1>"),0,TVariant("AK2"));
G2antt1->EndUpdate();

1828:
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)

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->AutoDrag = Exg2anttlib_tlb::AutoDragEnum::exAutoDragPositionAny;
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exSolidLine;
G2antt1->Indent = 16;
G2antt1->MarkSearchColumn = false;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
		var_Column->FormatColumn = L"((1:=(0 :=(1 rpos '.|A-Z||a-z|')) rfind `.`) < 0 ? `<b>` + =:0 + `` :  (=:0 mid (1 + 1 + =:1) )  + `)` ) + ` ` + value";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	long hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->set_ExpandItem(0,true);
	h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->set_CellState(TVariant(hChild),TVariant(0),1);
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
G2antt1->EndUpdate();

1827:
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)

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->GridLineColor = RGB(190,190,190);
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->AutoDrag = Exg2anttlib_tlb::AutoDragEnum::exAutoDragPositionAny;
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exSolidLine;
G2antt1->Indent = 16;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Default");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingRight,TVariant(4));
		var_Column->AllowSizing = false;
		var_Column->Width = 36;
		var_Column->Position = 0;
		var_Column->FormatColumn = TVariant(String("(1:=(0 :=(1 rpos '.|A-Z||a-z|')) rfind `.`) < 0 ? `<b>` + =:0 : (`............` left 2 * (=:0 count `.`)) + (=:0 mid (1 + 1 + =") +
":1) ) ");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	long hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->set_ExpandItem(0,true);
	h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->set_CellState(TVariant(hChild),TVariant(0),1);
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
G2antt1->EndUpdate();

1826:
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)

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->AutoDrag = Exg2anttlib_tlb::AutoDragEnum::exAutoDragPositionAny;
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exSolidLine;
G2antt1->Indent = 16;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Default");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingRight,TVariant(4));
		var_Column->Alignment = Exg2anttlib_tlb::AlignmentEnum::RightAlignment;
		var_Column->AllowSizing = false;
		var_Column->Width = 24;
		var_Column->Position = 0;
		var_Column->FormatColumn = L"(1:=(0 :=(1 rpos '.|A-Z||a-z|')) rfind `.`) < 0 ? `<b>` + =:0 : `<i>` + (=:0 mid (1 + 1 + =:1) ) ";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	long hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->set_ExpandItem(0,true);
	h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
	var_Items->set_CellState(TVariant(hChild),TVariant(0),1);
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(hChild,TNoParam(),TVariant("Child"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
G2antt1->EndUpdate();

1825:
How can I programmatically group by columns, without having the control's sort bar visible

G2antt1->BeginUpdate();
G2antt1->Chart->set_PaneWidth(true,0);
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access2007\\sample.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->SortBarHeight = 0;
G2antt1->SortBarVisible = true;
G2antt1->SortBarCaption = L"Drag a <b>column</b> header here to group by that column.";
G2antt1->AllowGroupBy = true;
G2antt1->Layout = L"multiplesort=\"C1:2\"";
G2antt1->EndUpdate();

1824:
How do I perform my own sort

// Sort event - Fired when the control sorts a column.
void __fastcall TForm1::G2antt1Sort(TObject *Sender)
{
	OutputDebugString( L"Sort" );
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_ItemPosition(var_Items->get_ItemByIndex(1),0);
		var_Items->set_ItemPosition(var_Items->get_ItemByIndex(0),1);
}

G2antt1->BeginUpdate();
G2antt1->SingleSort = false;
G2antt1->SortOnClick = Exg2anttlib_tlb::SortOnClickEnum::exUserSort;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Index")->FormatColumn = L"0 index ``";
	var_Columns->Add(L"Data 1");
	var_Columns->Add(L"Data 2");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(0));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(2));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(3));
	h = var_Items->AddItem(TVariant(4));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(5));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(6));
	h = var_Items->AddItem(TVariant(7));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(8));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(9));
G2antt1->Layout = L"multiplesort=\"C1:1 C2:2\"";
G2antt1->EndUpdate();

1823:
Is it possible to have a different alignment for parts of the cell's caption

G2antt1->BeginUpdate();
G2antt1->Chart->set_PaneWidth(true,true);
G2antt1->TreeColumnIndex = -1;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Default");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellHAlignment(TVariant(var_Items->AddItem(TVariant("all-left"))),TVariant(0),Exg2anttlib_tlb::AlignmentEnum::LeftAlignment);
	var_Items->set_CellHAlignment(TVariant(var_Items->AddItem(TVariant("all-center"))),TVariant(0),Exg2anttlib_tlb::AlignmentEnum::CenterAlignment);
	var_Items->set_CellHAlignment(TVariant(var_Items->AddItem(TVariant("all-right"))),TVariant(0),Exg2anttlib_tlb::AlignmentEnum::RightAlignment);
	long h = var_Items->AddItem(TVariant("left<c>center<r>right"));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(0),Exg2anttlib_tlb::ValueFormatEnum::exHTML);
G2antt1->EndUpdate();

1822:
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
G2antt1->BeginUpdate();
G2antt1->Chart->set_PaneWidth(true,0);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"MultipleLine");
		var_Column->Width = 32;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellSingleLine,TVariant(false));
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exColumnResizeContiguously,TVariant(true));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"SingleLine");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellSingleLine,TVariant(false));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("This is a bit of long text that should break the line"))),TVariant(1),TVariant("This is a bit of long text that should break the line"));
G2antt1->EndUpdate();

1821:
Is there an other way to detect if a bar is overlapping any other bar

// BarResizing event - Occurs when a bar is moving or resizing.
void __fastcall TForm1::G2antt1BarResizing(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,Variant   Key)
{
	G2antt1->Refresh();
}

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
G2antt1->DefaultItemHeight = 22;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Intersect / Count");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarKey,TVariant("A"));
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(521));
	var_Column->set_LevelKey(TVariant(1));
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L" / With");
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarKey,TVariant("A"));
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(520));
	var_Column1->set_LevelKey(TVariant(1));
G2antt1->Items->AllowCellValueToItemBar = true;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,148);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsOffset;
		var_Bar->OverlaidGroup = L"TaskB";
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(16));
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->Add(L"TaskB");
		var_Bar1->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBDiagonal;
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("A"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant("A"),TVariant("A"));
	var_Items->AddBar(h,TVariant("TaskB"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("B"),TVariant("B"));
	h = var_Items->AddItem(TVariant("A"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,6).operator double()),TVariant(TDateTime(2001,1,9).operator double()),TVariant("A"),TVariant("A"));
	var_Items->AddBar(h,TVariant("TaskB"),TVariant(TDateTime(2001,1,10).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("B"),TVariant("B"));
	h = var_Items->AddItem(TVariant("A"));
	var_Items->AddBar(h,TVariant("TaskB"),TVariant(TDateTime(2001,1,6).operator double()),TVariant(TDateTime(2001,1,9).operator double()),TVariant("B1"),TVariant("B1"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,10).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A"),TVariant("A"));
	var_Items->AddBar(h,TVariant("TaskB"),TVariant(TDateTime(2001,1,10).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("B2"),TVariant("B2"));
	h = var_Items->AddItem(TVariant("A"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TVariant("B1"),TVariant("B1"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,10).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A"),TVariant("A"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,12).operator double()),TVariant(TDateTime(2001,1,15).operator double()),TVariant("B2"),TVariant("B2"));
G2antt1->EndUpdate();

1820:
How can I get the absolute position of an item
// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,1,2).operator double()),TVariant(TDateTime(2017,1,5).operator double()),TNoParam(),TNoParam());
}

// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		OutputDebugString( var_Items->get_CellCaption(TVariant(G2antt1->get_ItemFromPoint(-1,-1,c,hit)),TVariant("Position")) );
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,1,1).operator double()));
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
G2antt1->BackColorAlternate = RGB(240,240,240);
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->Columns->Add(L"Def")->DisplayFilterButton = true;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root"));
	var_Items->InsertItem(var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")),TNoParam(),TVariant("Sub-Child 1"));
	var_Items->InsertItem(var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")),TNoParam(),TVariant("Sub-Child 2"));
G2antt1->PutItems(G2antt1->GetItems(TVariant(-1)),TNoParam());
G2antt1->PutItems(G2antt1->GetItems(TVariant(-1)),TNoParam());
G2antt1->PutItems(G2antt1->GetItems(TVariant(-1)),TNoParam());
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Position");
	var_Column->FormatColumn = L"1 apos ``";
	var_Column->Visible = false;
G2antt1->EndUpdate();

1819:
How do I sort the index column as numeric (Method 2)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_CellData(TVariant(Item),TVariant(1),TVariant(var_Items->get_CellCaption(TVariant(Item),TVariant(1))));
}

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->ColumnAutoResize = true;
G2antt1->ShowFocusRect = false;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Next");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(4));
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exHeaderPaddingLeft,TVariant(4));
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Index");
	var_Column1->AllowSizing = false;
	var_Column1->Width = 48;
	var_Column1->FormatColumn = L"(((0 := (1 index ``)) mod 3) case ( default: ``; 0 : `<r><fgcolor=B0B0B0>`; 1: ``; 2 : `<c><fgcolor=808080>` )) + str(=:0)";
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
	var_Column1->SortType = Exg2anttlib_tlb::SortTypeEnum::SortUserData;
	var_Column1->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddItem(TVariant("Item 2"));
	var_Items->AddItem(TVariant("Item 3"));
	var_Items->AddItem(TVariant("Item 4"));
	var_Items->AddItem(TVariant("Item 5"));
	var_Items->AddItem(TVariant("Item 6"));
	var_Items->AddItem(TVariant("Item 7"));
	var_Items->AddItem(TVariant("Item 8"));
	var_Items->AddItem(TVariant("Item 9"));
	var_Items->AddItem(TVariant("Item 10"));
G2antt1->EndUpdate();

1818:
How do I sort the index column as numeric (Method 1)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Sort Index As String (Default)");
	var_Column->FormatColumn = L"1 index ``";
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Sort Index As Numeric");
	var_Column1->ComputedField = L"%C0";
	var_Column1->SortType = Exg2anttlib_tlb::SortTypeEnum::SortNumeric;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
G2antt1->EndUpdate();

1817:
How can I put icons/images into buttons

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA="));
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"C+B");
	var_Column->AllowSizing = false;
	var_Column->Width = 48;
	var_Column->FormatColumn = L"` <img>` + ( 1 + (1 index ``) mod 3 ) + `</img> `";
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasButton,TVariant(true));
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellButtonAutoWidth,TVariant(true));
G2antt1->Columns->Add(L"");
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines;
G2antt1->DefaultItemHeight = 20;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
G2antt1->EndUpdate();

1816:
Is it possible to have a CheckBox and Button TOGETHER on all cells in a column

// ButtonClick event - Occurs when user clicks on the cell's button.
void __fastcall TForm1::G2antt1ButtonClick(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,Variant   Key)
{
	OutputDebugString( L"ButtonClick" );
	OutputDebugString( L"Item" );
	OutputDebugString( L"Key" );
}

// CellStateChanged event - Fired after cell's state has been changed.
void __fastcall TForm1::G2antt1CellStateChanged(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex)
{
	OutputDebugString( L"CellStateChanged" );
	OutputDebugString( L"Item" );
}

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"");
	var_Column->AllowSizing = false;
	var_Column->Width = 32;
	var_Column->FormatColumn = L"1 index ``";
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Def");
	var_Column1->AllowSizing = false;
	var_Column1->Width = 48;
	var_Column1->FormatColumn = L"`     `";
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasButton,TVariant(true));
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellButtonAutoWidth,TVariant(true));
G2antt1->Columns->Add(L"");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant(""));
G2antt1->EndUpdate();

1815:
Does filtering work with umlauts / accents characters

G2antt1->BeginUpdate();
G2antt1->Chart->set_PaneWidth(true,0);
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Names");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exPattern;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Mantel"));
	var_Items->AddItem(TVariant("Mechanik"));
	var_Items->AddItem(TVariant("Motor"));
	var_Items->AddItem(TVariant("Murks"));
	var_Items->AddItem(TVariant("Märchen"));
	var_Items->AddItem(TVariant("Möhren"));
	var_Items->AddItem(TVariant("Mühle"));
	var_Items->AddItem(TVariant("Sérigraphie"));
G2antt1->Columns->get_Item(TVariant(0))->Filter = L"*ä*";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

1814:
How can I temporarily disable resizing the overview part of the control

G2antt1->BeginUpdate();
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
G2antt1->OnResizeControl = Exg2anttlib_tlb::OnResizeControlEnum::exDisableOverview;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewSplitter | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowDateTimeScale | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewAllowVerticalScroll | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible;
	var_Chart->OverviewHeight = 32;
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,2,2).operator double()),TVariant(TDateTime(2001,2,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,3,2).operator double()),TVariant(TDateTime(2001,3,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1813:
Is it possible to resize the overview part of the control at runtime

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABVADg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGUYBRgmFgAQhFcZQSBcEgTDaMYzgMBYJhEMQyDSAUIjPEyMg0DjIIwgJIUaw0GSXIRkGQZC") +
"hGJooTJQMrTZIEbQxHSkIyRVTmZACS5NRZPYy0FAkQhlFSbJBCOKwVomR5KUxTVg1DJwahLCKULLhGI7KgObIRSJOcZ1XAdCQ0cB0XpAC6LaqSA4nSjKcqwJKEZRJIyj" +
"JwgSrrWhePoJYBVAAQPQdDYaCivK5uWK6PqKUIlZBQGQVNS1MRrLSEcwgPKgAyzDadZzfQAWTZFTQjN61RgtXR6eyoAJ0aziFDVFo0WRlEwacorGhcbgPPrCRrxGBVNw" +
"gGOJo4kIeASB0Zw/iGDoym6dobh2XpiDWJo5HMd56h6dxjlICIEhQDQmDOIZUmQZZlAADpYHIEQ3nUGgNhCEIhAkawamAAAYEWRAGB2bA2EqYg2AyA4glgPgSgQYRIEI" +
"FoEmEeBWBiBphFAAgPDwDgDEycQ4A0Q5IwkDwjgyWA8k4SIsmUNoPEOFJbD0DhjHINA3E8Q4eDiDojhiYJmg+Ixokic4LmKQxiCkNk2CCX4DmGaA0nAN4NBiDJSDwTgT" +
"Eycg4E0WIYlcPJiiiMJZhCTYpgCcw5g2OYOGWGQmCkEJkheYopGoVw1GSGQuA2ExIlOQJcDOZJzEDSJNBiAgiU4Q5GCeChNHkHJygsaBzGaCYimiCY0mMNZoCMWhUDUJ" +
"5pkYTIDk6YxwkwO5NlMOoch6JQJm4U4JCIMxWFSKbCBoKIgmJDAuDgKhohKIoTk0GhaHOJgNiMKJuDaaYzHCTYnAyaZmjSKIiDiCghjEYg6AaR4yk0OpOiFSQLAKNgjG" +
"cQ40lkMhOmqZo7DKTpzG6Pw3CmYx2HiNAsCqBh8h6Z5bh6T4oC0G4Im+OAtlMNpTjUTYDCKVo2C3QBLi6a5bH6YY4EyehzAGO4wEwDoejwK5rnK95vDgPJsDWTBjjSWA" +
"xnEK5aleNhriuawKi8Lp7H8HpHHGXBskyQpxguXwNgMTpDFiRZDnEExfBSPRvHuXwYkycYslae5NjMQwrDGNZxFyHINDsDRTBMKZKnKLIwm2S4xF0Jw8lKTIcm9eA0hy" +
"QwuksM5jiyVQwnQDQIlaVo0EyLwQlGcRNCME5EjKfYXGSWEhDMQ5QnOahHG6KwoFOCoFiOaBNlcdIjiQag7HOL0dwuxKC1aeNQI4BQihNDoEwXowxmh8CIL8Yg8ROBfA" +
"SMcaIOR6CHBkMgLgrwUjLHkHMG4NQaBzE4MQaIyw5gxEsH0Dw9FBBNA6PUDoLwpjTHqF0N4WQShSHgGwcY2RkhdFCL8bYdwOivDqNse4fRnh5G+PYEgaR1B0E4B4D4ix" +
"xB4G8E8SI5R8D+DeJUc4eRPB/EaJ8DwpwojDHUPofwtxYjtH2F4d4sx3j7E+AcXo8B9geFCNYOIHhfg/GmPQPoXw3jZHuPoX4hxuj1H8J8T43RPhDEgM8eo/B/iQGuPw" +
"fxEh1guAIAwQAgCAg"));
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewSplitter | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowDateTimeScale | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewAllowVerticalScroll | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible;
	var_Chart->OverviewHeight = 32;
	var_Chart->OverviewSelBackColor = 0x1000000;
	var_Chart->OverviewBackColor = RGB(250,250,250);
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,2,2).operator double()),TVariant(TDateTime(2001,2,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,3,2).operator double()),TVariant(TDateTime(2001,3,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1812:
You've provided examples of how to create bars for each record of a MS Access table, however I would like to create a database connected Gantt that has multiple bars per item/resource. Could you please advise

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Summary"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TVariant("0"),TNoParam());
		var_Items->DefineSummaryBars(Item,TVariant("0"),-3,TVariant("0"));
		var_Items->AddBar(Item,TVariant("SummaryB"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TVariant("1"),TNoParam());
		var_Items->DefineSummaryBars(Item,TVariant("1"),-3,TVariant("1"));
		var_Items->set_ItemBackColor(Item,RGB(240,240,240));
	G2antt1->Chart->set_ItemBackColor(Item,RGB(240,240,240));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TVariant(var_Items->get_ItemBar(Item,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarsCount)),TNoParam());
		var_Items->AddBar(Item,TVariant("TaskB"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(3))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TVariant(var_Items->get_ItemBar(Item,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarsCount)),TNoParam());
}

// MouseDown event - Occurs when the user presses a mouse button.
void __fastcall TForm1::G2antt1MouseDown(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	long i = G2antt1->ItemFromPoint[-1,-1,c,hit];
	G2antt1->FullRowSelect = G2antt1->Columns->get_Item(TVariant(c))->get_Data();
}

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->HeaderHeight = 22;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Flat;
G2antt1->BackColorLock = RGB(240,240,240);
G2antt1->BackColorHeader = G2antt1->BackColorLock;
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exNoLine;
G2antt1->ColumnAutoResize = false;
G2antt1->SortBarVisible = false;
G2antt1->AllowGroupBy = true;
G2antt1->ReadOnly = Exg2anttlib_tlb::ReadOnlyEnum::exReadOnly;
G2antt1->ShowFocusRect = false;
G2antt1->CountLockedColumns = 1;
G2antt1->AutoDrag = Exg2anttlib_tlb::AutoDragEnum::exAutoDragScroll;
G2antt1->SingleSort = false;
G2antt1->ColumnsAllowSizing = true;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
G2antt1->GridLineColor = RGB(220,220,220);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,9,1).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,256);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->Height = 15;
		var_Bar->Color = RGB(128,128,128);
		var_Bar->StartColor = RGB(204,204,0);
		var_Bar->EndColor = var_Bar->StartColor;
		var_Bar->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
		var_Bar->OverlaidGroup = L"Task,TaskB";
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternGradientVBox | Exg2anttlib_tlb::PatternEnum::exPatternBox;
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->Copy(L"Task",L"TaskB");
		var_Bar1->Color = RGB(128,128,128);
		var_Bar1->StartColor = RGB(153,153,0);
		var_Bar1->EndColor = var_Bar1->StartColor;
	Exg2anttlib_tlb::IBarPtr var_Bar2 = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar2->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
		var_Bar2->OverlaidGroup = L"Summary,SummaryB";
		var_Bar2->Color = RGB(204,204,0);
		var_Bar2->StartColor = var_Bar2->Color;
		var_Bar2->EndColor = var_Bar2->Color;
	Exg2anttlib_tlb::IBarPtr var_Bar3 = var_Chart->Bars->Copy(L"Summary",L"SummaryB");
		var_Bar3->Color = RGB(153,153,0);
		var_Bar3->StartColor = var_Bar3->Color;
		var_Bar3->EndColor = var_Bar3->Color;
G2antt1->BackColorSortBar = G2antt1->BackColor;
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access2007\\sample.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->Debug = true;
G2antt1->Columns->get_Item(TVariant(0))->set_Data(TVariant(-1));
G2antt1->Layout = L"singlesort=\"C5:1\";multiplesort=\" C1:2\"";
G2antt1->EndUpdate();

1811:
How can I filter for multiple captions on a single column, using OR clause

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
G2antt1->ContinueColumnScroll = false;
G2antt1->MarkSearchColumn = true;
G2antt1->SearchColumnIndex = 1;
G2antt1->FilterBarPromptVisible = true;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Name")->Width = 96;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Title");
		var_Column->Width = 96;
	var_Columns->Add(L"City");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h0 = var_Items->AddItem(TVariant("Nancy Davolio"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->AddItem(TVariant("Andrew Fuller"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Vice President, Sales"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Tacoma"));
	var_Items->set_SelectItem(h0,true);
	h0 = var_Items->AddItem(TVariant("Janet Leverling"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Kirkland"));
	h0 = var_Items->AddItem(TVariant("Margaret Peacock"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Redmond"));
	h0 = var_Items->AddItem(TVariant("Steven Buchanan"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Manager"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Michael Suyama"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Robert King"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Laura Callahan"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Inside Sales Coordinator"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->AddItem(TVariant("Anne Dodsworth"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
G2antt1->set_FilterBarPromptColumns(TVariant("1"));
G2antt1->FilterBarPromptPattern = L"Vice Inside";
G2antt1->FilterBarPromptType = Exg2anttlib_tlb::FilterPromptEnum::exFilterPromptContainsAny;
G2antt1->EndUpdate();

1810:
How can I filter for multiple captions on a single column, using AND clause

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
G2antt1->ContinueColumnScroll = false;
G2antt1->MarkSearchColumn = true;
G2antt1->SearchColumnIndex = 1;
G2antt1->FilterBarPromptVisible = true;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Name")->Width = 96;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Title");
		var_Column->Width = 96;
	var_Columns->Add(L"City");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h0 = var_Items->AddItem(TVariant("Nancy Davolio"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->AddItem(TVariant("Andrew Fuller"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Vice President, Sales"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Tacoma"));
	var_Items->set_SelectItem(h0,true);
	h0 = var_Items->AddItem(TVariant("Janet Leverling"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Kirkland"));
	h0 = var_Items->AddItem(TVariant("Margaret Peacock"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Redmond"));
	h0 = var_Items->AddItem(TVariant("Steven Buchanan"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Manager"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Michael Suyama"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Robert King"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Laura Callahan"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Inside Sales Coordinator"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->AddItem(TVariant("Anne Dodsworth"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
G2antt1->set_FilterBarPromptColumns(TVariant("1"));
G2antt1->FilterBarPromptPattern = L"Vice Sales";
G2antt1->FilterBarPromptType = Exg2anttlib_tlb::FilterPromptEnum::exFilterPromptContainsAll;
G2antt1->EndUpdate();

1809:
How can I display the limits/margins of the project, in the overview part of the control

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABVADg6AADACAxSDEMQBQKAAzQFAYbhgHCGAAGUYBRgmFgAQhFcZQSBcEgTDaMYzgMBYJhEMQyDSAUIjPEyMg0DjIIwgJIUaw0GSXIRkGQZC") +
"hGJooTJQMrTZIEbQxHSkIyRVTmZACS5NRZPYy0FAkQhlFSbJBCOKwVomR5KUxTVg1DJwahLCKULLhGI7KgObIRSJOcZ1XAdCQ0cB0XpAC6LaqSA4nSjKcqwJKEZRJIyj" +
"JwgSrrWhePoJYBVAAQPQdDYaCivK5uWK6PqKUIlZBQGQVNS1MRrLSEcwgPKgAyzDadZzfQAWTZFTQjN61RgtXR6eyoAJ0aziFDVFo0WRlEwacorGhcbgPPrCRrxGBVNw" +
"gGOJo4kIeASB0Zw/iGDoym6dobh2XpiDWJo5HMd56h6dxjlICIEhQDQmDOIZUmQZZlAADpYHIEQ3nUGgNhCEIhAkawamAAAYEWRAGB2bA2EqYg2AyA4glgPgSgQYRIEI" +
"FoEmEeBWBiBphFAAgPDwDgDEycQ4A0Q5IwkDwjgyWA8k4SIsmUNoPEOFJbD0DhjHINA3E8Q4eDiDojhiYJmg+Ixokic4LmKQxiCkNk2CCX4DmGaA0nAN4NBiDJSDwTgT" +
"Eycg4E0WIYlcPJiiiMJZhCTYpgCcw5g2OYOGWGQmCkEJkheYopGoVw1GSGQuA2ExIlOQJcDOZJzEDSJNBiAgiU4Q5GCeChNHkHJygsaBzGaCYimiCY0mMNZoCMWhUDUJ" +
"5pkYTIDk6YxwkwO5NlMOoch6JQJm4U4JCIMxWFSKbCBoKIgmJDAuDgKhohKIoTk0GhaHOJgNiMKJuDaaYzHCTYnAyaZmjSKIiDiCghjEYg6AaR4yk0OpOiFSQLAKNgjG" +
"cQ40lkMhOmqZo7DKTpzG6Pw3CmYx2HiNAsCqBh8h6Z5bh6T4oC0G4Im+OAtlMNpTjUTYDCKVo2C3QBLi6a5bH6YY4EyehzAGO4wEwDoejwK5rnK95vDgPJsDWTBjjSWA" +
"xnEK5aleNhriuawKi8Lp7H8HpHHGXBskyQpxguXwNgMTpDFiRZDnEExfBSPRvHuXwYkycYslae5NjMQwrDGNZxFyHINDsDRTBMKZKnKLIwm2S4xF0Jw8lKTIcm9eA0hy" +
"QwuksM5jiyVQwnQDQIlaVo0EyLwQlGcRNCME5EjKfYXGSWEhDMQ5QnOahHG6KwoFOCoFiOaBNlcdIjiQag7HOL0dwuxKC1aeNQI4BQihNDoEwXowxmh8CIL8Yg8ROBfA" +
"SMcaIOR6CHBkMgLgrwUjLHkHMG4NQaBzE4MQaIyw5gxEsH0Dw9FBBNA6PUDoLwpjTHqF0N4WQShSHgGwcY2RkhdFCL8bYdwOivDqNse4fRnh5G+PYEgaR1B0E4B4D4ix" +
"xB4G8E8SI5R8D+DeJUc4eRPB/EaJ8DwpwojDHUPofwtxYjtH2F4d4sx3j7E+AcXo8B9geFCNYOIHhfg/GmPQPoXw3jZHuPoX4hxuj1H8J8T43RPhDEgM8eo/B/iQGuPw" +
"fxEh1guAIAwQAgCAg"));
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum(0x400 | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowSelMargins | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowMargins | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowDateTimeScaleBottom | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible);
	var_Chart->OverviewHeight = 64;
	var_Chart->OverviewSelBackColor = 0x1000000;
	var_Chart->OverviewBackColor = RGB(250,250,250);
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,2,2).operator double()),TVariant(TDateTime(2001,2,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,3,2).operator double()),TVariant(TDateTime(2001,3,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1808:
Is it possible to display a time-scale for the overview part of the control (separated)

G2antt1->BeginUpdate();
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowDateTimeScaleSplit | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible;
	var_Chart->OverviewHeight = 48;
	var_Chart->LevelCount = 2;
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,2,2).operator double()),TVariant(TDateTime(2001,2,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,3,2).operator double()),TVariant(TDateTime(2001,3,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1807:
Is it possible to display a time-scale for the overview part of the control

G2antt1->BeginUpdate();
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowDateTimeScale | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible;
	var_Chart->LevelCount = 2;
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,2,2).operator double()),TVariant(TDateTime(2001,2,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,3,2).operator double()),TVariant(TDateTime(2001,3,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1806:
How can I display the time-scale only, in the overview part of the control

G2antt1->BeginUpdate();
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,48);
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowDateTimeScale | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewHideBars | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible;
	var_Chart->LevelCount = 2;
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,2,2).operator double()),TVariant(TDateTime(2001,2,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,3,2).operator double()),TVariant(TDateTime(2001,3,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

1805:
How can I detect that the mouse pointer is within an InsideZoom object
// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
		Date d = var_Chart->get_DateFromPoint(-1,-1);
		_tlb::ObjectPtr iz = var_Chart->InsideZooms->get_Contains(TVariant(d));
		OutputDebugString( L"d" );
		OutputDebugString( L"If the iz object is nothing, the date is not zoomed, else it is." );
		OutputDebugString( L"iz" );
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,0);
	var_Chart->LevelCount = 2;
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
	var_Chart->AllowInsideZoom = true;
	var_Chart->InsideZooms->Add(TVariant(TDateTime(2001,1,10).operator double()));
G2antt1->EndUpdate();

1804:
Is it possible to word-wrap text/caption on the bar, so it gets displayed on multiple lines

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->ItemsAllowSizing = Exg2anttlib_tlb::ItemsAllowSizingEnum::exResizeItem;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
G2antt1->HeaderHeight = 28;
G2antt1->DefaultItemHeight = 24;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Bump;
G2antt1->Columns->Add(L"Tasks");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Copy(L"Task",L"TaskB");
		var_Bar->Height = 15;
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBox;
		var_Bar->StartColor = RGB(204,232,255);
		var_Bar->EndColor = var_Bar->StartColor;
		var_Bar->Color = RGB(0,0,255);
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar1->Height = -1;
		var_Bar1->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBox;
		var_Bar1->StartColor = RGB(204,232,255);
		var_Bar1->EndColor = var_Bar1->StartColor;
		var_Bar1->Color = RGB(0,0,255);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Word-Wrap Inside"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A1"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("A1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExt,TVariant("none[(2,2,100%-4,100%-4),text=`This is a bit of text that should break the line`,wordwrap]"));
	h = var_Items->AddItem(TVariant("Word-Wrap Inside"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,19).operator double()),TVariant("A2"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("A2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExt,TVariant("none[(2,2,100%-4,100%-4),align=0x11,text=`This is a bit of text that should break the line`,wordwrap]"));
	h = var_Items->AddItem(TVariant("Word-Wrap Back"));
	var_Items->AddBar(h,TVariant("TaskB"),TVariant(TDateTime(2001,1,9).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TVariant("A3"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("A3"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExt,TVariant("client[align=0x11,text=`This is a bit of text that should break the line`,wordwrap]"));
	var_Items->set_ItemBar(h,TVariant("A3"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExtFlags,TVariant(2));
G2antt1->EndUpdate();

1803:
Can I set the search box / filterbarprompt to invisible, so I can use my own input and *string* via VBA
G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
G2antt1->ContinueColumnScroll = false;
G2antt1->MarkSearchColumn = false;
G2antt1->SearchColumnIndex = 1;
G2antt1->FilterBarHeight = 0;
G2antt1->FilterBarPromptVisible = true;
G2antt1->Chart->set_PaneWidth(true,0);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Name")->Width = 96;
	var_Columns->Add(L"Title")->Width = 96;
	var_Columns->Add(L"City");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h0 = var_Items->AddItem(TVariant("Nancy Davolio"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->AddItem(TVariant("Andrew Fuller"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Vice President, Sales"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Tacoma"));
	var_Items->set_SelectItem(h0,true);
	h0 = var_Items->AddItem(TVariant("Janet Leverling"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Kirkland"));
	h0 = var_Items->AddItem(TVariant("Margaret Peacock"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Redmond"));
	h0 = var_Items->AddItem(TVariant("Steven Buchanan"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Manager"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Michael Suyama"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Robert King"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
	h0 = var_Items->AddItem(TVariant("Laura Callahan"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Inside Sales Coordinator"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("Seattle"));
	h0 = var_Items->AddItem(TVariant("Anne Dodsworth"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Sales Representative"));
	var_Items->set_CellValue(TVariant(h0),TVariant(2),TVariant("London"));
G2antt1->FilterBarPromptPattern = L"London";
G2antt1->EndUpdate();

1802:
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 __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->SetParent(Item,var_Items->get_FindItem(TVariant(var_Items->get_CellValue(TVariant(Item),TVariant("ReportsTo"))),TVariant("EmployeeID"),TNoParam()));
}

G2antt1->BeginUpdate();
G2antt1->Chart->set_PaneWidth(true,0);
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->ColumnAutoResize = false;
G2antt1->ContinueColumnScroll = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("SELECT * FROM Employees ORDER BY ReportsTo"),TVariant("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Exontrol\\ExTree\\Sample\\VB\\SAMPLE.MDB"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();

1801:
How can I highlight the limits/margins of a summary bar, according with the child bars

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABRkIQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjhwkAIIQK/cZRPC0Ow8GSEZAgOKIch6FgCQjEIxDKIsVRZEiDYRmGLpIiOJoWSQBUIyJKoA") +
"Q0f6fIziaTpNiGL4yTBPMzyJRcEx1GyBZ5negaAo2AwIQiUBomGahajkMqZQAJaCSCI2Y4eDZCIoTXR1WAxDq3ZruKpLUpOc4DOrEMIwCEBA="));
	var_Appearance->Add(2,TVariant("CP:1 -4 0 5 0"));
	var_Appearance->Add(3,TVariant(String("gBFLBCJwBAEHhEJAAEhABOMGACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGUYBRgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQyDAAUIjOKsIhkGYcZAGQBJCjWGodQRHc5TN") +
"CMTRRECDY4kAYpAiKRYbSpAcyQHQ8bQtHwYKAoOg6JjWIAHRqCMI0XINHQ3FwaRJsCwoJhOZIDWZENDQTSsLSxJSkIRfe4wArNf4XVBVMqSdKEZRJLybJwADApAo2eIl" +
"QjJdQ4TSdBSdQwDLYhECpbwCT6JT7jGLQJZsNyvBLIYDrKA8UozFqHQRYNhxDZNShhM6rMigPQQAq8AKlRbVNzXLamLwHRS9BpoORhUjHD4bVxVOyaPpAAaBFbhI44QZ" +
"OHYNYfjgaI0BySp8HMVZdlgaxtBqexWkqOw1lGbZzlwfQ0AwYR/gka5FiMGpgkQYYviGV4kBUWpmlsaYGHMEgACECQUAaEYMHQHRHCGFRBECRJkGQQgTGCVBoDYQhCgQ" +
"JZoG4EIAGEFwGB+dwxHaB5iAabReggYhGnUToJGIRgCCiCBdjiNguGmYo4gIKoMGIKIeDSCYTGiXg4EITo3hAiJAICA=="));
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->Bars->get_Item(TVariant("Summary"))->Color = 0x3000000;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummary = var_Items->AddItem(TVariant("Summary"));
	var_Items->AddBar(hSummary,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant(""),TNoParam());
	long hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task A"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task B"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	hTask = var_Items->InsertItem(hSummary,TNoParam(),TVariant("Task C"));
	var_Items->AddBar(hTask,TVariant("Task"),TVariant(TDateTime(2001,1,6).operator double()),TVariant(TDateTime(2001,1,10).operator double()),TVariant("K3"),TNoParam());
	var_Items->set_ExpandItem(hSummary,true);
	var_Items->DefineSummaryBars(hSummary,TVariant(""),-1,TVariant("<*>"));
	var_Items->set_ItemBar(hSummary,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exSummaryBarBackColor,TVariant(33554432));
G2antt1->EndUpdate();