2357
Specify the size of the Columns panel

G2antt1->BeginUpdate();
G2antt1->HeaderHeight = 24;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"City");
	var_Columns->Add(L"Start")->Visible = false;
	var_Columns->Add(L"End")->Visible = false;
G2antt1->ColumnsFloatBarRect = L",,96";
G2antt1->ColumnsFloatBarVisible = Exg2anttlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleAsChild | Exg2anttlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeCheckColumns;
G2antt1->EndUpdate();

2356
Show a vertical line between pivot and Columns panel (EBN color)

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABRsIQAAYAQGKIYBkAKBQAGaAoDDUNQxQwAAxwfBMKgBBCLIxhEYobgmGIXRpFICQTIcBhaGIZRiAKCRTDmHwyRCNIwCLD8QxtDqBY4gOZZX") +
"hal4cJTgMaBYi+Pw3DZHcbvBRkewzHQAKgnSjoDhEMg1CTVVYTDKdOSzDyEX7sIAACpOIZQVJVEY1VT8cyxIyEZimSypWqiYJ0Ty6cQwTAIgI"));
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exColumnsFloatBackColor] = 0x1000000;
G2antt1->HeaderHeight = 24;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"City");
	var_Columns->Add(L"Start")->Visible = false;
	var_Columns->Add(L"End")->Visible = false;
G2antt1->ColumnsFloatBarVisible = Exg2anttlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleAsChild | Exg2anttlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeCheckColumns;
G2antt1->EndUpdate();

2355
Change the background of the Columns panel (EBN color)

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABNoCg6AADACAxRDAMgBQKAAzQFAYahqGKGAAGOD4JhUAIIRZGMIjFDcEwxC6NIpAWLoJDCH4mSTHYxgJIMWwzDiBZgkCA4fiGEYnThCIxzT") +
"J0aw1CKbYRAKCUKoUAJFsSnQAJIgOO4lULPMIhDDQKQTIKBahoehqIhaEQyDSJNb2DCIahhMSEbKtCooDhGFZUWzLVxTJJNawHJqJJDuOTpSjKH4+RjWFKUXR9b4BJSN" +
"AgqeCQTiSWZEVxRUS0XbGCyZLSQY7uAAMKgOVoDYzdGLwHTtOwrMa1QAsDSbKqWZ5uRpHcQ5aAGN5DPbMbqwOaqLznAaLQLtG4RTikVRPTDYaj437+OaHGyNbI6HTNPp" +
"TlWDJWjYXI8l8C4fg6GYAAEEISgGJJGHQOocgyIwYnqKhYAAIQTH2MYRjQJBRAmZptmEAYIjGU5dk8UgOFgBJUgCTQIBYBoBmCCAmAqApghgDJUDmYQFCCZoEk2OBUm+" +
"BZPCgZgagaYZIHYHoHmGWBcm8NwiEiFJVgmYgji4Kg6GKSI2C6C5jAiRgygwIojiycINkyeJmAYPJjkiTg+g+ZAIkCdIQkyWQWDuDxkBkJhKguZAzlIRQzGQc5ODWFJl" +
"EkVhWhWZYJFYTYTmUE4yF6F5mAmBhihiZhJhYX4WmQaAUnWGpOlmNhuhuZwJkYcocmcSY4naHZlkmKhrDuJ5JnYfofmgCgGgKIJnlmXJ2h4TQKBosRokoNoOiOaQKDSd" +
"4kmiChMncPBpgoZoaiaaZKHaHonmmE5iiKJRpDicomimaoKiaKoqmqSoeiIPgogqPotiyaxKlYPA+GuCqbBMa5KnaPovmwCwGj6LgP24RIhiyCwmkqMpsksNpKD6LQLB" +
"qOIzi0SxWlaHZtAOahPssM5Wi+IYtlsXpijKbZ5lyTo5mAE4UlqOpjHOQpEjubyanKPJvEuNgVj2TY1CCao+k2G52AyP5wAwBp9DYZZ1CCaxsAABAEICA"));
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exColumnsFloatBackColor] = 0x1000000;
G2antt1->HeaderHeight = 24;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"City");
	var_Columns->Add(L"Start")->Visible = false;
	var_Columns->Add(L"End")->Visible = false;
G2antt1->ColumnsFloatBarVisible = Exg2anttlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleAsChild | Exg2anttlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeCheckColumns;
G2antt1->EndUpdate();

2354
Change the background of the Columns panel (solid color)

G2antt1->BeginUpdate();
G2antt1->HeaderHeight = 24;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"City");
	var_Columns->Add(L"Start")->Visible = false;
	var_Columns->Add(L"End")->Visible = false;
G2antt1->ColumnsFloatBarVisible = Exg2anttlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleAsChild | Exg2anttlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeCheckColumns;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exColumnsFloatBackColor] = RGB(240,240,240);
G2antt1->EndUpdate();

2353
Change the visual appearance of the Columns panel

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABNoCg6AADACAxRDAMgBQKAAzQFAYahqGKGAAGOD4JhUAIIRZGMIjFDcEwxC6NIpAWLoJDCH4mSTHYxgJIMWwzDiBZgkCA4fiGEYnThCIxzT") +
"J0aw1CKbYRAKCUKoUAJFsSnQAJIgOO4lULPMIhDDQKQTIKBahoehqIhaEQyDSJNb2DCIahhMSEbKtCooDhGFZUWzLVxTJJNawHJqJJDuOTpSjKH4+RjWFKUXR9b4BJSN" +
"AgqeCQTiSWZEVxRUS0XbGCyZLSQY7uAAMKgOVoDYzdGLwHTtOwrMa1QAsDSbKqWZ5uRpHcQ5aAGN5DPbMbqwOaqLznAaLQLtG4RTikVRPTDYaj437+OaHGyNbI6HTNPp" +
"TlWDJWjYXI8l8C4fg6GYAAEEISgGJJGHQOocgyIwYnqKhYAAIQTH2MYRjQJBRAmZptmEAYIjGU5dk8UgOFgBJUgCTQIBYBoBmCCAmAqApghgDJUDmYQFCCZoEk2OBUm+" +
"BZPCgZgagaYZIHYHoHmGWBcm8NwiEiFJVgmYgji4Kg6GKSI2C6C5jAiRgygwIojiycINkyeJmAYPJjkiTg+g+ZAIkCdIQkyWQWDuDxkBkJhKguZAzlIRQzGQc5ODWFJl" +
"EkVhWhWZYJFYTYTmUE4yF6F5mAmBhihiZhJhYX4WmQaAUnWGpOlmNhuhuZwJkYcocmcSY4naHZlkmKhrDuJ5JnYfofmgCgGgKIJnlmXJ2h4TQKBosRokoNoOiOaQKDSd" +
"4kmiChMncPBpgoZoaiaaZKHaHonmmE5iiKJRpDicomimaoKiaKoqmqSoeiIPgogqPotiyaxKlYPA+GuCqbBMa5KnaPovmwCwGj6LgP24RIhiyCwmkqMpsksNpKD6LQLB" +
"qOIzi0SxWlaHZtAOahPssM5Wi+IYtlsXpijKbZ5lyTo5mAE4UlqOpjHOQpEjubyanKPJvEuNgVj2TY1CCao+k2G52AyP5wAwBp9DYZZ1CCaxsAABAEICA"));
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exColumnsFloatAppearance] = 0x1000000;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exColumnsFloatCaptionBackColor] = RGB(246,246,246);
G2antt1->BackColorHeader = 0x1000000;
G2antt1->HeaderHeight = 24;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"City");
	var_Columns->Add(L"Start")->Visible = false;
	var_Columns->Add(L"End")->Visible = false;
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exColumnsFloatBar] = L"Show/Hide";
G2antt1->ColumnsFloatBarVisible = Exg2anttlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeCheckColumns;
G2antt1->EndUpdate();

2352
Defines the symbol used to indicate repeated captions, providing a clear visual cue for identical entries (ditto mark)

G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->Columns->Add(L"Country")->ShowIdem = L"<fgcolor gray>〃";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Germany"));
	var_Items->AddItem(TVariant("Germany"));
	var_Items->AddItem(TVariant("Germany"));
	var_Items->AddItem(TVariant("Germany"));
G2antt1->EndUpdate();

2351
Defines the symbol used to indicate repeated captions, providing a clear visual cue for identical entries (space)

G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->Columns->Add(L"Country")->ShowIdem = L" ";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Spain"));
	var_Items->AddItem(TVariant("Germany"));
	var_Items->AddItem(TVariant("Germany"));
	var_Items->AddItem(TVariant("Germany"));
	var_Items->AddItem(TVariant("Germany"));
G2antt1->EndUpdate();

2350
Displays a glitch funnel for drop-down filter buttons (empty or active)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->RenderType = -1;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABa8IQAAYAQGKIYBkAKBQAGaAoDDUNQxQwAAxwfBMKgBBCLIxhEYobgmGIXRpFMbxCKQahLEiTIhGUYJHgmK4tRiAUgxVDkBxrECZYqjcBZO") +
"iwLQ2TxDM7DNKUCBnIoABhGOaYDh+IQNQjUFKwTRFGRxK4EIRKAyTDLQdRyGSMMbjdQpBCbMiMRqhESKRq2UwYRYCFS1NalaztO6BUAvK67YrWez/YBfF+SfwGeqDYRe" +
"WAPfgWERnQrGMLxbD8KwZAKTRjkGJ4XhuB41TbQMqufL9ByXHKSSDpGjaXjeO5VVjYNAvS69UzXNq3bhtQAOXCMEwCgI="));
	var_Appearance->Add(2,TVariant("CP:1 -2 0 0 0"));
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesGeometric;
G2antt1->ShowFocusRect = false;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHeaderFilterBarButton] = 0x2000000;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHeaderFilterBarActive] = 0x2000001;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->BackColorHeader = RGB(255,255,255);
G2antt1->HeaderHeight = 24;
G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"1st col");
	var_Column->DisplayFilterButton = true;
	var_Column->DisplayFilterPattern = false;
	var_Column->Filter = L"Item B";
	var_Column->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
G2antt1->Columns->Add(L"2nd col");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("Item B"));
	var_Items->AddItem(TVariant("Item C"));
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2349
Stack vs Cascade

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Flat;
G2antt1->Columns->Add(L"Type");
G2antt1->BackColorAlternate = RGB(240,240,240);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->AllowLinkBars = false;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	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->Copy(L"Task",L"T1");
		var_Bar->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsCascade;
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%9%>"));
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->Copy(L"Task",L"T2");
		var_Bar1->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%9%>"));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Cascade"));
	var_Items->AddBar(h,TVariant("T1"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant("A1"),TNoParam());
	var_Items->AddBar(h,TVariant("T1"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("A2"),TNoParam());
	var_Items->AddBar(h,TVariant("T1"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A3"),TNoParam());
	var_Items->AddBar(h,TVariant("T1"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A4"),TNoParam());
	var_Items->AddBar(h,TVariant("T1"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A5"),TNoParam());
	var_Items->AddBar(h,TVariant("T1"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A6"),TNoParam());
	var_Items->AddBar(h,TVariant("T1"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A7"),TNoParam());
	var_Items->AddBar(h,TVariant("T1"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A8"),TNoParam());
	var_Items->AddBar(h,TVariant("T1"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A9"),TNoParam());
	var_Items->AddBar(h,TVariant("T1"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("AA"),TNoParam());
	h = var_Items->AddItem(TVariant("Stack-AutoArrange"));
	var_Items->AddBar(h,TVariant("T2"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant("A1"),TNoParam());
	var_Items->AddBar(h,TVariant("T2"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("A2"),TNoParam());
	var_Items->AddBar(h,TVariant("T2"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A3"),TNoParam());
	var_Items->AddBar(h,TVariant("T2"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A4"),TNoParam());
	var_Items->AddBar(h,TVariant("T2"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A5"),TNoParam());
	var_Items->AddBar(h,TVariant("T2"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A6"),TNoParam());
	var_Items->AddBar(h,TVariant("T2"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A7"),TNoParam());
	var_Items->AddBar(h,TVariant("T2"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A8"),TNoParam());
	var_Items->AddBar(h,TVariant("T2"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A9"),TNoParam());
	var_Items->AddBar(h,TVariant("T2"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("AA"),TNoParam());
G2antt1->EndUpdate();

2348
Horizontally(left) align the multi-line caption of the bar

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,128);
	var_Chart->LevelCount = 2;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_SelectableItem(var_Items->AddItem(TNoParam()),false);
	long h = var_Items->AddItem(TVariant("Task 1"));
	var_Items->set_ItemHeight(h,42);
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("K1"),TVariant("This is a bit of 1'st line<br>2'nd line<br>3'rd line"));
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(0));
G2antt1->EndUpdate();

2347
Defines the colors, to display overlapping links

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Name");
G2antt1->AntiAliasing = true;
G2antt1->set_OverlapLinksColors(TVariant("black,gray,lightgray"));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,28).operator double()));
	var_Chart->set_PaneWidth(false,64);
	var_Chart->ShowLinks = Exg2anttlib_tlb::ShowExtendedLinksEnum::exChangeColorOnOverlap | Exg2anttlib_tlb::ShowExtendedLinksEnum::exPreventOverlapMixt | Exg2anttlib_tlb::ShowExtendedLinksEnum::exShowDefaultLinks;
	var_Chart->NonworkingDays = 0;
	var_Chart->LinksStyle = Exg2anttlib_tlb::LinkStyleEnum::exLinkSolid;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	long h1 = var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant("A"),TNoParam());
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TVariant("B"),TNoParam());
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,13).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant("C"),TNoParam());
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,18).operator double()),TVariant(TDateTime(2001,1,21).operator double()),TVariant("D"),TNoParam());
	var_Items->AddLink(TVariant("Link1"),h1,TVariant("D"),h1,TVariant("A"));
	var_Items->AddLink(TVariant("Link2"),h1,TVariant("C"),h1,TVariant("B"));
G2antt1->EndUpdate();

2346
The exPreventOverlapMixt option can be combined with the exChangeColorOnOverlap flag, allowing overlapping links to alternately adjust their width while also changing colors

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Name");
G2antt1->AntiAliasing = true;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,28).operator double()));
	var_Chart->set_PaneWidth(false,64);
	var_Chart->ShowLinks = Exg2anttlib_tlb::ShowExtendedLinksEnum::exChangeColorOnOverlap | Exg2anttlib_tlb::ShowExtendedLinksEnum::exPreventOverlapMixt | Exg2anttlib_tlb::ShowExtendedLinksEnum::exShowDefaultLinks;
	var_Chart->NonworkingDays = 0;
	var_Chart->LinksStyle = Exg2anttlib_tlb::LinkStyleEnum::exLinkSolid;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	long h1 = var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant("A"),TNoParam());
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TVariant("B"),TNoParam());
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,13).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant("C"),TNoParam());
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,18).operator double()),TVariant(TDateTime(2001,1,21).operator double()),TVariant("D"),TNoParam());
	var_Items->AddLink(TVariant("Link1"),h1,TVariant("D"),h1,TVariant("A"));
	var_Items->AddLink(TVariant("Link2"),h1,TVariant("C"),h1,TVariant("B"));
G2antt1->EndUpdate();

2345
The exChangeColorOnOverlap flag changes the color for links in areas where they overlap with other links, enhancing clarity and distinction between them

G2antt1->BeginUpdate();
G2antt1->AntiAliasing = true;
G2antt1->Columns->Add(L"Name");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,28).operator double()));
	var_Chart->set_PaneWidth(false,64);
	var_Chart->ShowLinks = Exg2anttlib_tlb::ShowExtendedLinksEnum::exChangeColorOnOverlap | Exg2anttlib_tlb::ShowExtendedLinksEnum::exShowDefaultLinks;
	var_Chart->NonworkingDays = 0;
	var_Chart->LinksStyle = Exg2anttlib_tlb::LinkStyleEnum::exLinkSolid;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	long h1 = var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant("A"),TNoParam());
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,11).operator double()),TVariant("B"),TNoParam());
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,13).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant("C"),TNoParam());
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,18).operator double()),TVariant(TDateTime(2001,1,21).operator double()),TVariant("D"),TNoParam());
	var_Items->AddLink(TVariant("Link1"),h1,TVariant("D"),h1,TVariant("A"));
	var_Items->AddLink(TVariant("Link2"),h1,TVariant("C"),h1,TVariant("B"));
G2antt1->EndUpdate();

2344
How can I assign a multiple-lines caption to an bar

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,128);
	var_Chart->LevelCount = 2;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_SelectableItem(var_Items->AddItem(TNoParam()),false);
	long h = var_Items->AddItem(TVariant("Task 1"));
	var_Items->set_ItemHeight(h,42);
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("K1"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("This is a bit of 1'st line<br>2'nd line<br>3'rd line"));
G2antt1->EndUpdate();

2343
The text on the chart overlap the rest of the bars, while using OverlaidType property on exOverlaidBarsStack

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2002,1,3).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
	var_Chart->Bars->Add(L"Text")->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(0));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(0));
		var_Bar->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsIncludeCaption | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
		var_Bar->OverlaidGroup = L"Text,Task";
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Default"));
	var_Items->AddBar(h,TVariant("Text"),TVariant(TDateTime(2002,1,4).operator double()),TVariant(TDateTime(2002,1,4).operator double()),TVariant(""),TVariant("This is another text"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2002,1,6).operator double()),TVariant(TDateTime(2002,1,8).operator double()),TVariant("A"),TVariant("This is a bit of text"));
G2antt1->EndUpdate();

2342
We are running our application on an Azure server using RDP, with the server language set to English. However, my client has their national language set to Swedish, but the tooltip is displaying dates in the English format (mm/dd/yyyy) instead of the Swedish format (yyyy-mm-dd) (method 2)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Def");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exNoCreateBar;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2010,1,1).operator double()));
	var_Chart->Bars->get_Item(TVariant("Task"))->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarToolTip,TVariant("<%=`Start: ` + (date(%1) format `yyyy-MM-dd` )%>"));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2010,1,2).operator double()),TVariant(TDateTime(2010,1,5).operator double()),TVariant("A"),TVariant("A"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2010,1,5).operator double()),TVariant(TDateTime(2010,1,8).operator double()),TVariant("B"),TVariant("B"));
G2antt1->EndUpdate();

2341
We are running our application on an Azure server using RDP, with the server language set to English. However, my client has their national language set to Swedish, but the tooltip is displaying dates in the English format (mm/dd/yyyy) instead of the Swedish format (yyyy-mm-dd) (method 1)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Def");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exNoCreateBar;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2010,1,1).operator double()));
	var_Chart->Bars->get_Item(TVariant("Task"))->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarToolTip,TVariant("<%=`Start: ` + year(%1) + `-` + (month(%1) lpad `00`) + `-` + (day(%1) lpad `00`)%>"));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2010,1,2).operator double()),TVariant(TDateTime(2010,1,5).operator double()),TVariant("A"),TVariant("A"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2010,1,5).operator double()),TVariant(TDateTime(2010,1,8).operator double()),TVariant("B"),TVariant("B"));
G2antt1->EndUpdate();

2340
How can I replace or add an icon at runtime

G2antt1->BeginUpdate();
G2antt1->ReplaceIcon(TVariant(String("gAAAABgYACEHgUJFEEAAWhUJCEJEEJggEhMCYEXjUbjkJQECj8gj8hAEjkshYEpk8kf8ClsulsvAExmcvf83js5nU7nkCeEcn8boMaocXosCB9Hn09pkzcEuoL/fE+O") +
"kYB0gB9YhIHrddgVcr9aktZADAD8+P8CgIA=="),TNoParam());
G2antt1->ReplaceIcon(TVariant("C:\\images\\favicon.ico"),TVariant(0));
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,128);
	var_Chart->LevelCount = 2;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task 1"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant("K1"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<img>1</img>"));
G2antt1->EndUpdate();

2339
How can I define the sensitivity for link selection when the user clicks or selects a link
// 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->Chart->get_LinkFromPoint(-1,-1)) );
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,29).operator double()));
	var_Chart->set_PaneWidth(false,64);
	var_Chart->LevelCount = 2;
	var_Chart->LinksWidth = 1026;
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());
	var_Items->AddItem(TNoParam());
	long h2 = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,10).operator double()),TVariant("K2"),TNoParam());
	var_Items->AddLink(TVariant("L1"),h1,TVariant("K1"),h2,TVariant("K2"));
	var_Items->AddItem(TNoParam());
	long h3 = var_Items->AddItem(TVariant("Task 3"));
	var_Items->AddBar(h3,TVariant("Task"),TVariant(TDateTime(2001,1,14).operator double()),TVariant(TDateTime(2001,1,16).operator double()),TVariant("K3"),TNoParam());
	var_Items->AddLink(TVariant("L2"),h2,TVariant("K2"),h3,TVariant("K3"));
G2antt1->EndUpdate();

2338
How can I let the user to create task-bars for leaf0-items only, when AllowCreateBar is exCreateBarAuto
// CreateBar event - Fired when the user creates a new bar.
void __fastcall TForm1::G2antt1CreateBar(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,DATE   DateStart,DATE   DateEnd)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		OutputDebugString( L"Call RemoveBar if the ChildCount property returns a non-zero value" );
		OutputDebugString( PChar(var_Items->get_ChildCount(Item)) );
		var_Items->RemoveBar(Item,TVariant("newbar"));
}

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,128);
G2antt1->Columns->Add(L"Task");
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();

2337
How can I convert the exBarStart/exBarEnd property to a string (by default it returns as VARIANT/VT_DATE type, method 3)

// BarResizing event - Occurs when a bar is moving or resizing.
void __fastcall TForm1::G2antt1BarResizing(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,Variant   Key)
{
	OutputDebugString( L"Start" );
	OutputDebugString( L"Key" );
	OutputDebugString( PChar(G2antt1->Items->get_ItemBar(Item,TVariant(Key),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarStartStr)) );
	OutputDebugString( L"End" );
	OutputDebugString( L"Key" );
	OutputDebugString( PChar(G2antt1->Items->get_ItemBar(Item,TVariant(Key),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarEndStr)) );
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Tasks");
G2antt1->Debug = true;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2006,9,20).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,96);
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exMinute;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,24).operator double()),TVariant("K1"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 2")),TVariant("Task"),TVariant(TDateTime(2006,9,22).operator double()),TVariant(TDateTime(2006,9,25).operator double()),TVariant("K2"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 3")),TVariant("Task"),TVariant(TDateTime(2006,9,23).operator double()),TVariant(TDateTime(2006,9,26).operator double()),TVariant("K3"),TNoParam());
G2antt1->EndUpdate();

2336
How can I convert the exBarStart/exBarEnd property to a string (by default it returns as VARIANT/VT_DATE type, method 2)

// BarResizing event - Occurs when a bar is moving or resizing.
void __fastcall TForm1::G2antt1BarResizing(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,Variant   Key)
{
	OutputDebugString( L"Start" );
	OutputDebugString( L"Key" );
	OutputDebugString( PChar(G2antt1->FormatABC(L"dateF(value)",G2antt1->Items->get_ItemBar(Item,TVariant(Key),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarStart),TNoParam(),TNoParam())) );
	OutputDebugString( L"End" );
	OutputDebugString( L"Key" );
	OutputDebugString( PChar(G2antt1->FormatABC(L"dateF(value)",G2antt1->Items->get_ItemBar(Item,TVariant(Key),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarEnd),TNoParam(),TNoParam())) );
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Tasks");
G2antt1->Debug = true;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2006,9,20).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,96);
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exMinute;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,24).operator double()),TVariant("K1"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 2")),TVariant("Task"),TVariant(TDateTime(2006,9,22).operator double()),TVariant(TDateTime(2006,9,25).operator double()),TVariant("K2"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 3")),TVariant("Task"),TVariant(TDateTime(2006,9,23).operator double()),TVariant(TDateTime(2006,9,26).operator double()),TVariant("K3"),TNoParam());
G2antt1->EndUpdate();

2335
How can I convert the exBarStart/exBarEnd property to a string (by default it returns as VARIANT/VT_DATE type, method 1)

// BarResizing event - Occurs when a bar is moving or resizing.
void __fastcall TForm1::G2antt1BarResizing(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,Variant   Key)
{
	OutputDebugString( L"Start" );
	OutputDebugString( L"Key" );
	OutputDebugString( PChar(G2antt1->FormatABC(L"date(value) format `MM/dd/yyyy HH:mm:ss`",G2antt1->Items->get_ItemBar(Item,TVariant(Key),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarStart),TNoParam(),TNoParam())) );
	OutputDebugString( L"End" );
	OutputDebugString( L"Key" );
	OutputDebugString( PChar(G2antt1->FormatABC(L"date(value) format `MM/dd/yyyy HH:mm:ss`",G2antt1->Items->get_ItemBar(Item,TVariant(Key),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarEnd),TNoParam(),TNoParam())) );
}

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Tasks");
G2antt1->Debug = true;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2006,9,20).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,96);
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exMinute;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,24).operator double()),TVariant("K1"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 2")),TVariant("Task"),TVariant(TDateTime(2006,9,22).operator double()),TVariant(TDateTime(2006,9,25).operator double()),TVariant("K2"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 3")),TVariant("Task"),TVariant(TDateTime(2006,9,23).operator double()),TVariant(TDateTime(2006,9,26).operator double()),TVariant("K3"),TNoParam());
G2antt1->EndUpdate();

2334
Add/Remove/Updates the item-bar's resources

// 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::IItemsPtr var_Items = G2antt1->Items;
		long h = var_Items->get_SelectedItem(0);
		var_Items->set_ItemBar(h,TVariant(var_Items->get_FirstItemBar(h)),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarResources,TVariant("+R4[10%]"));
}

G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,96);
	var_Chart->LevelCount = 2;
	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->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%49%>"));
G2antt1->Columns->Add(L"Machines");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Machine 1"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,6).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("K1"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarResources,TVariant("R1,R2"));
	h = var_Items->AddItem(TVariant("Machine 2"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,14).operator double()),TVariant("K2"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("K2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarResources,TVariant("R2[75%],R3"));
G2antt1->EndUpdate();

2333
Distributes resources to a bar

G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,96);
	var_Chart->LevelCount = 2;
	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->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%49%>"));
G2antt1->Columns->Add(L"Machines");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Machine 1"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,6).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("K1"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarResources,TVariant("R1,R2"));
	h = var_Items->AddItem(TVariant("Machine 2"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,14).operator double()),TVariant("K2"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("K2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarResources,TVariant("R2[75%],R3"));
G2antt1->EndUpdate();

2332
How can I display additional information about a time zone when the user clicks on it (expandable)

Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,0);
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2009,12,20).operator double()));
	var_Chart->MarkTimeZone(TVariant("TZ"),TVariant(TDateTime(2010,1,1).operator double()),TVariant(TDateTime(2010,1,3).operator double()),TVariant(65280),TVariant("1;;<c>TimeZone<b><off -4><a ;exp=just more info about>*</a></b>;1"));

2331
How can I have a tooltip for a marked TimeZone

// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	G2antt1->ShowToolTip(G2antt1->Chart->get_TimeZoneFromPoint(-1,-1),TVariant(""),TNoParam(),TVariant("+8"),TNoParam());
}

Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,0);
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2009,12,28).operator double()));
	var_Chart->MarkTimeZone(TVariant("Top"),TVariant(TDateTime(2010,1,1).operator double()),TVariant(TDateTime(2010,1,5).operator double()),TVariant(16711680),TVariant("1;;<fgcolor=FFFFFF>Top;1"));
	var_Chart->MarkTimeZone(TVariant("Partial"),TVariant(TDateTime(2010,1,8).operator double()),TVariant(TDateTime(2010,1,12).operator double()),TVariant(16711680),TVariant("50;;<fgcolor=FFFFFF>Partial;1"));
	var_Chart->MarkTimeZone(TVariant("Default"),TVariant(TDateTime(2010,1,15).operator double()),TVariant(TDateTime(2010,1,19).operator double()),TVariant(16711680),TVariant(";;<fgcolor=FFFFFF>Default;1"));

2330
Can I set a filter that automatically adds a * before and after the word, so the user can just search for 'cat' and it becomes '*cat*' automatically

G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Items");
	var_Column->DisplayFilterButton = true;
	var_Column->DisplayFilterPattern = true;
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exFilterPatternTemplate,TVariant("*<%filter%>*"));
	var_Column->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exPattern;
	var_Column->Filter = L"1";
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"));
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2329
The fine dotted lines in the control appear much thicker than the standard ones we've been using. How can we fix this

G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesGeometric;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesGeometric;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->ColumnAutoResize = false;
G2antt1->Columns->Add(L"Column 1");
G2antt1->Columns->Add(L"Column 2");
G2antt1->Columns->Add(L"Column 3");
G2antt1->Columns->Add(L"Column 4");
G2antt1->EndUpdate();

2328
Load data as a tree using a parent-id relationship

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
/*
	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"ADODB.Recordset");
	rs->Open(TVariant("Select * FROM Employees WHERE 1=0"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.mdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->Columns->get_Item(TVariant(0))->Width = 128;
rs = Variant::CreateObject(L"ADODB.Recordset");
	rs->Open(TVariant("Employees"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.mdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->PutItems(rs->GetRows(0,TNoParam(),TNoParam()),TVariant(";0;17"));
G2antt1->Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();

2327
Is there a way to change the contents of the drop down editor based on a value in another column

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

// EditOpen event - Occurs when the edit operation starts.
void __fastcall TForm1::G2antt1EditOpen(TObject *Sender)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		TVariant v = TVariant(var_Items->get_CellValue(TVariant(var_Items->FocusItem),TVariant(0)));
		String c = var_Items->get_CellCaption(TVariant(var_Items->FocusItem),TVariant(0));
	Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->get_Item(TVariant(1))->Editor;
		var_Editor->ClearItems();
		var_Editor->AddItem(v,L"c",TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesGeometric;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"DropDownList");
	Exg2anttlib_tlb::IEditorPtr var_Editor = var_Column->Editor;
		var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::DropDownListType;
		var_Editor->AddItem(1,L"First",TNoParam());
		var_Editor->AddItem(2,L"Second",TNoParam());
		var_Editor->AddItem(3,L"Third",TNoParam());
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->Columns->Add(L"DropDownList-Related")->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::DropDownListType;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(1))),TVariant(1),TVariant(-1));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(2))),TVariant(1),TVariant(-1));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant(3))),TVariant(1),TVariant(-1));
	var_Items->set_LockedItemCount(Exg2anttlib_tlb::VAlignmentEnum::exBottom,1);
	long h = var_Items->get_LockedItem(Exg2anttlib_tlb::VAlignmentEnum::exBottom,0);
	var_Items->set_ItemDivider(h,0);
	var_Items->set_ItemDividerLineAlignment(h,Exg2anttlib_tlb::DividerAlignmentEnum::DividerTop);
	var_Items->set_CellEditorVisible(TVariant(h),TVariant(0),Exg2anttlib_tlb::EditorVisibleEnum::exEditorHidden);
	var_Items->set_CellSingleLine(TVariant(h),TVariant(0),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionWordWrap);
	var_Items->set_CellValueFormat(TVariant(h),TVariant(0),Exg2anttlib_tlb::ValueFormatEnum::exHTML);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant(String("The drop down editor in the second column is filled during the <b>EditOpen event</b>, and the values are based on the selection") +
" on the first column."));
G2antt1->EndUpdate();

2326
Highlight the editable fields

// Change event - Occurs when the user changes the cell's content.
void __fastcall TForm1::G2antt1Change(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,Variant *   NewValue)
{
	G2antt1->Refresh();
}

G2antt1->FreezeEvents(true);
G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IConditionalFormatsPtr var_ConditionalFormats = G2antt1->ConditionalFormats;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%CE1",TNoParam());
		var_ConditionalFormat->Bold = true;
		var_ConditionalFormat->BackColor = RGB(245,245,245);
		var_ConditionalFormat->ApplyTo = Exg2anttlib_tlb::FormatApplyToEnum(0x1);
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat1 = var_ConditionalFormats->Add(L"%CE2",TNoParam());
		var_ConditionalFormat1->Bold = true;
		var_ConditionalFormat1->BackColor = RGB(245,245,245);
		var_ConditionalFormat1->ApplyTo = Exg2anttlib_tlb::FormatApplyToEnum(0x2);
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat2 = var_ConditionalFormats->Add(L"%CE3",TNoParam());
		var_ConditionalFormat2->Bold = true;
		var_ConditionalFormat2->BackColor = RGB(245,245,245);
		var_ConditionalFormat2->ApplyTo = Exg2anttlib_tlb::FormatApplyToEnum(0x3);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Description");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Qty");
		var_Column->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Price");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exTotalColumn,TVariant("avg(current,rec,%2)"));
		var_Column1->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType;
	Exg2anttlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"Amount");
		var_Column2->ComputedField = L"%1 * %2";
		var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%3)"));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long r = var_Items->AddItem(TVariant("Root"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 1"));
	long h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(10));
	h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(2));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(11));
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 2"));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(12));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(4));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(13));
	var_Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();
G2antt1->FreezeEvents(false);

2325
Highlight the total fields

// Change event - Occurs when the user changes the cell's content.
void __fastcall TForm1::G2antt1Change(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,Variant *   NewValue)
{
	G2antt1->Refresh();
}

G2antt1->FreezeEvents(true);
G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IConditionalFormatsPtr var_ConditionalFormats = G2antt1->ConditionalFormats;
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%CT1",TNoParam());
		var_ConditionalFormat->ForeColor = RGB(128,128,128);
		var_ConditionalFormat->ApplyTo = Exg2anttlib_tlb::FormatApplyToEnum(0x1);
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat1 = var_ConditionalFormats->Add(L"%CT2",TNoParam());
		var_ConditionalFormat1->ForeColor = RGB(128,128,128);
		var_ConditionalFormat1->ApplyTo = Exg2anttlib_tlb::FormatApplyToEnum(0x2);
	Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat2 = var_ConditionalFormats->Add(L"%CT3",TNoParam());
		var_ConditionalFormat2->ForeColor = RGB(128,128,128);
		var_ConditionalFormat2->ApplyTo = Exg2anttlib_tlb::FormatApplyToEnum(0x3);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Description");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Qty");
		var_Column->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Price");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exTotalColumn,TVariant("avg(current,rec,%2)"));
		var_Column1->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType;
	Exg2anttlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"Amount");
		var_Column2->ComputedField = L"%1 * %2";
		var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%3)"));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long r = var_Items->AddItem(TVariant("Root"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 1"));
	long h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(10));
	h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(2));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(11));
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 2"));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(12));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(4));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(13));
	var_Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();
G2antt1->FreezeEvents(false);

2324
Highlight the leaf items

G2antt1->BeginUpdate();
G2antt1->ConditionalFormats->Add(L"%CC0=0",TNoParam())->ForeColor = RGB(128,128,128);
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Item")->Width = 16;
	var_Columns->Add(L"Desc");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hR = var_Items->AddItem(TVariant("Root"));
	var_Items->set_CellValue(TVariant(hR),TVariant(1),TVariant("The root directory /"));
	var_Items->set_ExpandItem(hR,true);
	long h = var_Items->InsertItem(hR,TNoParam(),TVariant("Home"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("The home directory with user directories Alice and Bob"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Alice"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Bob"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->InsertItem(hR,TNoParam(),TVariant("Etc"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("The etc directory with one configuration file"));
	h = var_Items->InsertItem(h,TNoParam(),TVariant("nginx.conf"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(hR,TNoParam(),TVariant("Var"))),TVariant(1),TVariant("The var directory"));
G2antt1->EndUpdate();

2323
Highlight the parent items

G2antt1->BeginUpdate();
G2antt1->ConditionalFormats->Add(L"%CC0",TNoParam())->ForeColor = RGB(255,0,0);
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Item")->Width = 16;
	var_Columns->Add(L"Desc");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hR = var_Items->AddItem(TVariant("Root"));
	var_Items->set_CellValue(TVariant(hR),TVariant(1),TVariant("The root directory /"));
	var_Items->set_ExpandItem(hR,true);
	long h = var_Items->InsertItem(hR,TNoParam(),TVariant("Home"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("The home directory with user directories Alice and Bob"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Alice"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Bob"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->InsertItem(hR,TNoParam(),TVariant("Etc"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("The etc directory with one configuration file"));
	h = var_Items->InsertItem(h,TNoParam(),TVariant("nginx.conf"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(hR,TNoParam(),TVariant("Var"))),TVariant(1),TVariant("The var directory"));
G2antt1->EndUpdate();

2322
Highlight the item being expanded or collapsed

G2antt1->BeginUpdate();
G2antt1->ConditionalFormats->Add(L"%CX0",TNoParam())->Bold = true;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Item")->Width = 16;
	var_Columns->Add(L"Desc");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hR = var_Items->AddItem(TVariant("Root"));
	var_Items->set_CellValue(TVariant(hR),TVariant(1),TVariant("The root directory /"));
	var_Items->set_ExpandItem(hR,true);
	long h = var_Items->InsertItem(hR,TNoParam(),TVariant("Home"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("The home directory with user directories Alice and Bob"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Alice"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Bob"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->InsertItem(hR,TNoParam(),TVariant("Etc"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("The etc directory with one configuration file"));
	h = var_Items->InsertItem(h,TNoParam(),TVariant("nginx.conf"));
	var_Items->set_CellValue(TVariant(var_Items->InsertItem(hR,TNoParam(),TVariant("Var"))),TVariant(1),TVariant("The var directory"));
G2antt1->EndUpdate();

2321
I am using exTotalColumn. Is there an option to exclude specific cells to display the total

// Change event - Occurs when the user changes the cell's content.
void __fastcall TForm1::G2antt1Change(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,Variant *   NewValue)
{
	G2antt1->Refresh();
}

G2antt1->FreezeEvents(true);
G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Description");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Qty");
		var_Column->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Price");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exTotalColumn,TVariant("avg(current,rec,%2)"));
		var_Column1->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType;
	Exg2anttlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"Amount");
		var_Column2->ComputedField = L"%1 * %2";
		var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%3)"));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long r = var_Items->AddItem(TVariant("Root"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 1"));
	var_Items->set_FormatCell(TVariant(g1),TVariant(2),L"`<average missing>`");
	var_Items->set_CellEditorVisible(TVariant(g1),TVariant(2),Exg2anttlib_tlb::EditorVisibleEnum::exEditorHidden);
	var_Items->set_CellBold(TVariant(g1),TVariant(2),true);
	var_Items->set_CellForeColor(TVariant(g1),TVariant(2),RGB(255,0,0));
	long h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(10));
	h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(2));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(11));
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 2"));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(12));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(4));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(13));
	var_Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();
G2antt1->FreezeEvents(false);

2320
How can I add a total column

// Change event - Occurs when the user changes the cell's content.
void __fastcall TForm1::G2antt1Change(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,Variant *   NewValue)
{
	G2antt1->Refresh();
}

G2antt1->FreezeEvents(true);
G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->HeaderHeight = 24;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Description");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Qty");
		var_Column->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%1)"));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Price");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exTotalColumn,TVariant("avg(current,rec,%2)"));
		var_Column1->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType;
	Exg2anttlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"Amount");
		var_Column2->ComputedField = L"%1 * %2";
		var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exTotalColumn,TVariant("sum(current,rec,%3)"));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long r = var_Items->AddItem(TVariant("Root"));
	long g1 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 1"));
	long h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(1));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(10));
	h = var_Items->InsertItem(g1,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(2));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(11));
	long g2 = var_Items->InsertItem(r,TNoParam(),TVariant("Group 2"));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 1"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(3));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(12));
	h = var_Items->InsertItem(g2,TNoParam(),TVariant("Item 2"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(4));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant(13));
	var_Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();
G2antt1->FreezeEvents(false);

2319
Is it possible when I move the horizontal scroll bar, that the whole chart scrolls live during move the horizontal scroll bar. Not it scrolls just when I release the left mouse, not during change the horizontal scroll position
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,0);
	var_Chart->LevelCount = 2;
	var_Chart->ToolTip = L"";

2318
The exLinkStyle is not valid (the style of the link is still solid) if the link's width is greater than 1. What can be done
G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,128);
G2antt1->AntiAliasing = true;
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("K2"),TNoParam());
	var_Items->AddLink(TVariant("L1"),h1,TVariant("K1"),h2,TVariant("K2"));
	var_Items->set_Link(TVariant("L1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkStyle,TVariant(2));
	var_Items->set_Link(TVariant("L1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkWidth,TVariant(2));
	long h3 = var_Items->AddItem(TVariant("Task 4"));
	var_Items->AddBar(h3,TVariant("Task"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,10).operator double()),TVariant("K3"),TNoParam());
	var_Items->AddLink(TVariant("L2"),h2,TVariant("K2"),h3,TVariant("K3"));
	var_Items->set_Link(TVariant("L2"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkStyle,TVariant(1));
	var_Items->set_Link(TVariant("L2"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkWidth,TVariant(2));
G2antt1->EndUpdate();

2317
How can I change the tooltip's margins (method 2)

// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	G2antt1->ShowToolTip(G2antt1->Chart->get_BarFromPoint(-1,-1),TNoParam(),TNoParam(),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->ToolTipMargin = L"16,8";
G2antt1->Columns->Add(L"Def");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exNoCreateBar;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2010,1,1).operator double()));
	var_Chart->Bars->get_Item(TVariant("Task"))->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarToolTip,TVariant("..."));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2010,1,2).operator double()),TVariant(TDateTime(2010,1,5).operator double()),TVariant("A"),TVariant("A"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2010,1,5).operator double()),TVariant(TDateTime(2010,1,8).operator double()),TVariant("B"),TVariant("B"));
G2antt1->EndUpdate();

2316
Are there any properties to set text margins at tooltip, like Margins="5,5" (method 1). Margins is used to get some space between text and the tooltips border

// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	G2antt1->ShowToolTip(G2antt1->Chart->get_BarFromPoint(-1,-1),TNoParam(),TNoParam(),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->ToolTipMargin = L"16,8";
G2antt1->Columns->Add(L"Def");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exNoCreateBar;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2010,1,1).operator double()));
	var_Chart->Bars->get_Item(TVariant("Task"))->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarToolTip,TVariant("..."));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Task"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2010,1,2).operator double()),TVariant(TDateTime(2010,1,5).operator double()),TVariant("A"),TVariant("A"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2010,1,5).operator double()),TVariant(TDateTime(2010,1,8).operator double()),TVariant("B"),TVariant("B"));
G2antt1->EndUpdate();

2315
exShowExtendedLinks

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 24;
G2antt1->HeaderHeight = 20;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->AntiAliasing = true;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2024,1,10).operator double()));
	Exg2anttlib_tlb::ILevelPtr var_Level = var_Chart->get_Level(1);
		var_Level->DrawTickLines = Exg2anttlib_tlb::LevelLineEnum::exLevelNoLine;
		var_Level->DrawTickLinesFrom(0,Exg2anttlib_tlb::LevelLineEnum::exLevelDotLine);
	var_Chart->AllowResizeChart = Exg2anttlib_tlb::ResizeChartEnum(0xfffffef9 | Exg2anttlib_tlb::ResizeChartEnum::exAllowChangeUnitScale | Exg2anttlib_tlb::ResizeChartEnum::exAllowResizeChartMiddle | Exg2anttlib_tlb::ResizeChartEnum::exAllowResizeChartHeader);
	var_Chart->ShowLinks = Exg2anttlib_tlb::ShowExtendedLinksEnum::exShowExtendedLinks;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("T1")),TVariant("Task"),TVariant(TDateTime(2024,1,10,10,00,00,0).operator double()),TVariant(TDateTime(2024,1,10,10,20,00,0).operator double()),TVariant("T1"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T2")),TVariant("Task"),TVariant(TDateTime(2024,1,10,9,00,00,0).operator double()),TVariant(TDateTime(2024,1,10,12,00,00,0).operator double()),TVariant("T2"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T3")),TVariant("Task"),TVariant(TDateTime(2024,1,10,8,00,00,0).operator double()),TVariant(TDateTime(2024,1,10,8,30,00,0).operator double()),TVariant("T3"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T4")),TVariant("Task"),TVariant(TDateTime(2024,1,10,8,00,00,0).operator double()),TVariant(TDateTime(2024,1,10,8,30,00,0).operator double()),TVariant("T4"),TNoParam());
	var_Items->AddLink(TVariant("L13"),var_Items->get_ItemByIndex(0),TVariant("T1"),var_Items->get_ItemByIndex(2),TVariant("T3"));
	var_Items->AddLink(TVariant("L14"),var_Items->get_ItemByIndex(0),TVariant("T1"),var_Items->get_ItemByIndex(3),TVariant("T4"));
	var_Items->AddLink(TVariant("L24"),var_Items->get_ItemByIndex(1),TVariant("T2"),var_Items->get_ItemByIndex(3),TVariant("T4"));
G2antt1->EndUpdate();

2314
According to the documentation of the ShowExtendedLinksEnum value exShowExtendedLinks (1) it is possible to distinctly visualise links (rather than showing them one over another) when two or more links start or end on the same bar

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 24;
G2antt1->HeaderHeight = 20;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->AntiAliasing = true;
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,48);
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2024,1,10).operator double()));
	Exg2anttlib_tlb::ILevelPtr var_Level = var_Chart->get_Level(1);
		var_Level->DrawTickLines = Exg2anttlib_tlb::LevelLineEnum::exLevelNoLine;
		var_Level->DrawTickLinesFrom(0,Exg2anttlib_tlb::LevelLineEnum::exLevelDotLine);
	var_Chart->AllowResizeChart = Exg2anttlib_tlb::ResizeChartEnum(0xfffffef9 | Exg2anttlib_tlb::ResizeChartEnum::exAllowChangeUnitScale | Exg2anttlib_tlb::ResizeChartEnum::exAllowResizeChartMiddle | Exg2anttlib_tlb::ResizeChartEnum::exAllowResizeChartHeader);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("T1")),TVariant("Task"),TVariant(TDateTime(2024,1,10,10,00,00,0).operator double()),TVariant(TDateTime(2024,1,10,10,20,00,0).operator double()),TVariant("T1"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T2")),TVariant("Task"),TVariant(TDateTime(2024,1,10,9,00,00,0).operator double()),TVariant(TDateTime(2024,1,10,12,00,00,0).operator double()),TVariant("T2"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T3")),TVariant("Task"),TVariant(TDateTime(2024,1,10,8,00,00,0).operator double()),TVariant(TDateTime(2024,1,10,8,30,00,0).operator double()),TVariant("T3"),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T4")),TVariant("Task"),TVariant(TDateTime(2024,1,10,8,00,00,0).operator double()),TVariant(TDateTime(2024,1,10,8,30,00,0).operator double()),TVariant("T4"),TNoParam());
	var_Items->AddLink(TVariant("L1"),var_Items->get_ItemByIndex(0),TVariant("T1"),var_Items->get_ItemByIndex(2),TVariant("T3"));
	var_Items->AddLink(TVariant("L2"),var_Items->get_ItemByIndex(1),TVariant("T2"),var_Items->get_ItemByIndex(3),TVariant("T4"));
	var_Items->set_Link(TVariant("L2"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkShowRound,TVariant(4));
G2antt1->EndUpdate();

2313
How to use arrows key left/right to move the cursor left/right inside the text
G2antt1->BeginUpdate();
Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->Add(L"Edit")->Editor;
	var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType;
	var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exLeftArrow,TVariant(false));
	var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exRightArrow,TVariant(false));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("000"));
	var_Items->AddItem(TVariant("111"));
	var_Items->AddItem(TVariant("222"));
G2antt1->EndUpdate();

2312
How can I force the cursor to jump to the end of the editor once the user clicks the cell
G2antt1->BeginUpdate();
G2antt1->SelBackColor = G2antt1->BackColor;
G2antt1->SelForeColor = G2antt1->ForeColor;
Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->Add(L"Edit")->Editor;
	var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType;
	var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exEditSelStart,TVariant(-1));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("000"));
	var_Items->AddItem(TVariant("111"));
	var_Items->AddItem(TVariant("222"));
G2antt1->EndUpdate();

2311
How can I show the overview with a different color except or outside the selection

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABVIDg6AADACAxRDAMgBQKAAzAJBIYhiGgcYCgMZBSDeCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADE2YAoJDUN4nDKMMDybBkRxtDCPIDnGQoD") +
"iGI4nSbKIzSCKMQhrEKZZrnaLJFgOTY8ABLEBvfSgASof6MKBlKhKGoiUo2SCFEaBTBNHxDL6raqqWJ5HDINQlWzbcjjKKFYRbOqTZDkGj4XqKTo3YBAdZSXJsXwTGKk" +
"ji3ZgMOR3HaQaTjOgINpuDZdRzkUYZUDFSwSDqQIRtCpbJqzFZDZbLNbYBYME47AayID0CbdCgmaalSZHNxbVa0BzpXrFLw1TLoDy8AJ+ABseKzfo9PxdIygZRzKJ8ao" +
"fE+YxynIfJcC8QgbCmL5eiEPIKH6RABlibJpicW4/FcAx/HOYRGmud4+CcHxdmiDhkGEIIIEkQJSGMHQHFGSBlFEUITEmewAAQIQ2AYRpDGQJAoEIXhXCkCB5kmSAdmg" +
"VZPmgZJ8gaT4oHSeIHk8aIEnWCJiEiFgmgmYoIiYJIIE8aB8niB0pmyfIGE+ZYmDQPpjgOUg6DqY5DgYPg2mQAxqEKEJkEkFhGhGZIJA4QA2mOY4GDwOsumCe4NAACJK" +
"DoPQOFkZJThaSoZHSGYXmYCYGGKGJmEmFhmCsJoDFYag5iaSISDIAAjAkPJLhyS4JlYbA5iSeZmHqHpnkmdh+hOZx5lSOAzGgSQ+DAAAimkNIkiKTh6DSbIjmkChGhKJ" +
"JpEoVoWiSaJThyKImmSWI4ACCwNkqBhgDsahKhaJopmqComiqKpqkqEhghKYpAAIJIQmYA46jaLZrgqZo6i6a5KnaPotiZRQkiyIg6lIXw7myCwmkqMpsksNpOjObQLC" +
"KQYQiwOpOEKGAPAsZpajabZLHaXo3m4C4GlmNJNisVpFjWZZzkaao6m6S42m6O5vAuRpyjqLhLhidYxgmE5KnqPpvkudp+j+cAMAcAo+i8WIOkSPZuguZwDkKcJMDafp" +
"BE8XAengPJxEwVwWkWcYMGcGpGnGTBTBCRIwhkXwikichMhcJpJnKDIPB+NYNimAgqkucwMkcMoInKO4fC2F5ikyZw6k6c5MncPpPnOLJXAiTZJhOXxGlGdINCcSpSnS" +
"TQ3E6UY0CuYgulSdRNFcVpVnWDRnFSVBwh0axeledgNFsXJRA+HYXGaWZ2g2JxqlqdpNjcZZYmYCJDHKXJ3E2K4doux3gbE8OEF4ygtjuH6L8eAHAHgFGCO8bY2QZgZD" +
"iBwJ4FRijxE4G8DoxBxj6B6EINwTADjvBaMseYHBng1GaPMTg7wepxA4J4Rx8RjgfCYFMeoEQ6BpGqPUTob2MD2A6IQLoNAKiHAuG0WYAAJCVBCCETAHR3DMFWPgDwD2" +
"9j4E8CoV4sw7imAIIcJASggAHBeBIJw5grikCmHoSYNxWjrH2BMAoNgqAZE8O0GYEg5DgAIG8DgxwjhXGaCYZIcgnxBGSDILgmwTjKHkJMNwqgjCREoGEC4RRMifHqJc" +
"YokQ6BgEYJEUIaQOhlHIIESAECAg="));
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exOverviewSelResize] = RGB(1,0,0);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exOverviewSelOut] = RGB(240,240,240);
G2antt1->Chart->OverviewSelBackColor = RGB(255,255,255);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exOverviewSelUnit] = 0x1000000;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,6,21).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->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
	var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exHour,L"");
	var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exMinute,L"");
	var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exSecond,L"");
	var_Chart->AllowOverviewZoom = Exg2anttlib_tlb::OverviewZoomEnum::exAlwaysZoom;
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,7,2).operator double()),TVariant(TDateTime(2001,7,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,11,2).operator double()),TVariant(TDateTime(2001,11,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

2310
Resize the chart using the overview's selection left and right margins (blue)

G2antt1->BeginUpdate();
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exOverviewSelResize] = RGB(0,0,255);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,6,21).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->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
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,7,2).operator double()),TVariant(TDateTime(2001,7,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,11,2).operator double()),TVariant(TDateTime(2001,11,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

2309
Resize the chart using the overview's selection left and right margins (black)

G2antt1->BeginUpdate();
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exOverviewSelResize] = RGB(1,0,0);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,6,21).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->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay;
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,7,2).operator double()),TVariant(TDateTime(2001,7,11).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("Task"),TVariant(TDateTime(2001,11,2).operator double()),TVariant(TDateTime(2001,11,11).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

2308
Disable temporarily the column's sort, resize and drag and drop

G2antt1->BeginUpdate();
G2antt1->OnResizeControl = Exg2anttlib_tlb::OnResizeControlEnum::exResizeChart;
G2antt1->SortBarVisible = true;
G2antt1->SortBarCaption = L"<fgcolor 808080><c>the header and the sort-bar are disabled (no drag and drop is allowed)";
G2antt1->AllowGroupBy = true;
G2antt1->HeaderEnabled = false;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->Columns->Add(L"Index")->FormatColumn = L"1 index ``";
G2antt1->Columns->Add(L"Pos")->FormatColumn = L"1 apos ``";
G2antt1->Columns->Add(L"Edit")->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType;
G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesGeometric;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines;
G2antt1->GridLineColor = RGB(224,224,224);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,28).operator double()));
	var_Chart->set_PaneWidth(false,196);
	var_Chart->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesGeometric;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
	Exg2anttlib_tlb::ILevelPtr var_Level = var_Chart->get_Level(1);
		var_Level->DrawGridLines = true;
		var_Level->GridLineColor = G2antt1->GridLineColor;
G2antt1->EndUpdate();

2307
Adds a Finish-Start(FS) link (method 3)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Name");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,28).operator double()));
	var_Chart->set_PaneWidth(false,64);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Item 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	var_Items->AddLink(TVariant("Link1"),h1,TVariant(""),h2,TVariant(""));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();

2306
Adds a Start-Start(SS) link (method 3)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Name");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,28).operator double()));
	var_Chart->set_PaneWidth(false,64);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Item 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	var_Items->AddLink(TVariant("Link1"),h1,TVariant(""),h2,TVariant(""));
	var_Items->set_Link(TVariant("Link1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkStartPos,TVariant(0));
	var_Items->set_Link(TVariant("Link1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkEndPos,TVariant(0));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();

2305
Adds a Finish-Finish(FF) link (method 3)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Name");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,28).operator double()));
	var_Chart->set_PaneWidth(false,64);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Item 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	var_Items->AddLink(TVariant("Link1"),h1,TVariant(""),h2,TVariant(""));
	var_Items->set_Link(TVariant("Link1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkStartPos,TVariant(2));
	var_Items->set_Link(TVariant("Link1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkEndPos,TVariant(2));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();

2304
Adds a Start-Finish(SF) link (method 3)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Name");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,28).operator double()));
	var_Chart->set_PaneWidth(false,64);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Item 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	var_Items->AddLink(TVariant("Link1"),h1,TVariant(""),h2,TVariant(""));
	var_Items->set_Link(TVariant("Link1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkStartPos,TVariant(0));
	var_Items->set_Link(TVariant("Link1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkEndPos,TVariant(2));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();

2303
Adds a Finish-Start(FS) link (method 2)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Name");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,28).operator double()));
	var_Chart->set_PaneWidth(false,64);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Item 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	var_Items->set_ItemBar(h2,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarPredecessor,TVariant("1FS"));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();

2302
Adds a Start-Start(SS) link (method 2)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Name");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,28).operator double()));
	var_Chart->set_PaneWidth(false,64);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Item 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	var_Items->set_ItemBar(h2,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarPredecessor,TVariant("1SS"));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();

2301
Adds a Finish-Finish(FF) link (method 2)

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Name");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,28).operator double()));
	var_Chart->set_PaneWidth(false,64);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h1 = var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	long h2 = var_Items->AddItem(TVariant("Item 2"));
	var_Items->AddBar(h2,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TNoParam(),TNoParam());
	var_Items->set_ItemBar(h2,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarPredecessor,TVariant("1FF"));
	var_Items->SchedulePDM(0,TVariant(""));
G2antt1->EndUpdate();