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.
procedure TForm1.G2antt1BarResizing(ASender: TObject; Item : HITEM;Key : OleVariant);
begin
	with G2antt1 do
	begin
		OutputDebugString( 'Start' );
		OutputDebugString( Key );
		OutputDebugString( Items.ItemBar[Item,OleVariant(Key),EXG2ANTTLib_TLB.exBarStartStr] );
		OutputDebugString( 'End' );
		OutputDebugString( Key );
		OutputDebugString( Items.ItemBar[Item,OleVariant(Key),EXG2ANTTLib_TLB.exBarEndStr] );
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Tasks');
	Debug := True;
	with Chart do
	begin
		FirstVisibleDate := '9/20/2006';
		LevelCount := 2;
		PaneWidth[False] := 96;
		ResizeUnitScale := EXG2ANTTLib_TLB.exMinute;
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','9/21/2006','9/24/2006','K1',Null);
		AddBar(AddItem('Task 2'),'Task','9/22/2006','9/25/2006','K2',Null);
		AddBar(AddItem('Task 3'),'Task','9/23/2006','9/26/2006','K3',Null);
	end;
	EndUpdate();
end
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.
procedure TForm1.G2antt1BarResizing(ASender: TObject; Item : HITEM;Key : OleVariant);
begin
	with G2antt1 do
	begin
		OutputDebugString( 'Start' );
		OutputDebugString( Key );
		OutputDebugString( FormatABC('dateF(value)',Items.ItemBar[Item,OleVariant(Key),EXG2ANTTLib_TLB.exBarStart],Null,Null) );
		OutputDebugString( 'End' );
		OutputDebugString( Key );
		OutputDebugString( FormatABC('dateF(value)',Items.ItemBar[Item,OleVariant(Key),EXG2ANTTLib_TLB.exBarEnd],Null,Null) );
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Tasks');
	Debug := True;
	with Chart do
	begin
		FirstVisibleDate := '9/20/2006';
		LevelCount := 2;
		PaneWidth[False] := 96;
		ResizeUnitScale := EXG2ANTTLib_TLB.exMinute;
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','9/21/2006','9/24/2006','K1',Null);
		AddBar(AddItem('Task 2'),'Task','9/22/2006','9/25/2006','K2',Null);
		AddBar(AddItem('Task 3'),'Task','9/23/2006','9/26/2006','K3',Null);
	end;
	EndUpdate();
end
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.
procedure TForm1.G2antt1BarResizing(ASender: TObject; Item : HITEM;Key : OleVariant);
begin
	with G2antt1 do
	begin
		OutputDebugString( 'Start' );
		OutputDebugString( Key );
		OutputDebugString( FormatABC('date(value) format `MM/dd/yyyy HH:mm:ss`',Items.ItemBar[Item,OleVariant(Key),EXG2ANTTLib_TLB.exBarStart],Null,Null) );
		OutputDebugString( 'End' );
		OutputDebugString( Key );
		OutputDebugString( FormatABC('date(value) format `MM/dd/yyyy HH:mm:ss`',Items.ItemBar[Item,OleVariant(Key),EXG2ANTTLib_TLB.exBarEnd],Null,Null) );
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Tasks');
	Debug := True;
	with Chart do
	begin
		FirstVisibleDate := '9/20/2006';
		LevelCount := 2;
		PaneWidth[False] := 96;
		ResizeUnitScale := EXG2ANTTLib_TLB.exMinute;
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','9/21/2006','9/24/2006','K1',Null);
		AddBar(AddItem('Task 2'),'Task','9/22/2006','9/25/2006','K2',Null);
		AddBar(AddItem('Task 3'),'Task','9/23/2006','9/26/2006','K3',Null);
	end;
	EndUpdate();
end
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.
procedure TForm1.G2antt1Click(ASender: TObject; );
begin
	with G2antt1 do
	begin
		with Items do
		begin
			h := SelectedItem[0];
			ItemBar[h,FirstItemBar[h],EXG2ANTTLib_TLB.exBarResources] := '+R4[10%]';
		end;
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	with Chart do
	begin
		PaneWidth[False] := 96;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2001';
		with Bars.Item['Task'] do
		begin
			Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18);
			Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%49%>';
		end;
	end;
	Columns.Add('Machines');
	with Items do
	begin
		h := AddItem('Machine 1');
		AddBar(h,'Task','1/6/2001','1/12/2001','K1',Null);
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarResources] := 'R1,R2';
		h := AddItem('Machine 2');
		AddBar(h,'Task','1/4/2001','1/14/2001','K2',Null);
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarResources] := 'R2[75%],R3';
	end;
	EndUpdate();
end
2333
Distributes resources to a bar

with G2antt1 do
begin
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	with Chart do
	begin
		PaneWidth[False] := 96;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2001';
		with Bars.Item['Task'] do
		begin
			Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18);
			Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%49%>';
		end;
	end;
	Columns.Add('Machines');
	with Items do
	begin
		h := AddItem('Machine 1');
		AddBar(h,'Task','1/6/2001','1/12/2001','K1',Null);
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarResources] := 'R1,R2';
		h := AddItem('Machine 2');
		AddBar(h,'Task','1/4/2001','1/14/2001','K2',Null);
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarResources] := 'R2[75%],R3';
	end;
	EndUpdate();
end
2332
How can I display additional information about a time zone when the user clicks on it (expandable)

with G2antt1 do
begin
	with Chart do
	begin
		PaneWidth[False] := 0;
		LevelCount := 2;
		FirstVisibleDate := '12/20/2009';
		MarkTimeZone('TZ','1/1/2010','1/3/2010',OleVariant(65280),'1;;<c>TimeZone<b><off -4><a ;exp=just more info about>*</a></b>;1');
	end;
end
2331
How can I have a tooltip for a marked TimeZone

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		ShowToolTip(Chart.TimeZoneFromPoint[-1,-1],'',Null,'+8',Null);
	end
end;

with G2antt1 do
begin
	with Chart do
	begin
		PaneWidth[False] := 0;
		LevelCount := 2;
		FirstVisibleDate := '12/28/2009';
		MarkTimeZone('Top','1/1/2010','1/5/2010',OleVariant(16711680),'1;;<fgcolor=FFFFFF>Top;1');
		MarkTimeZone('Partial','1/8/2010','1/12/2010',OleVariant(16711680),'50;;<fgcolor=FFFFFF>Partial;1');
		MarkTimeZone('Default','1/15/2010','1/19/2010',OleVariant(16711680),';;<fgcolor=FFFFFF>Default;1');
	end;
end
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

with G2antt1 do
begin
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	with (IUnknown(Columns.Add('Items')) as EXG2ANTTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		DisplayFilterPattern := True;
		Def[EXG2ANTTLib_TLB.exFilterPatternTemplate] := '*<%filter%>*';
		FilterType := EXG2ANTTLib_TLB.exPattern;
		Filter := '1';
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Null,'Child 1');
		InsertItem(h,Null,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Null,'Child 1');
		InsertItem(h,Null,'Child 2');
	end;
	ApplyFilter();
	EndUpdate();
end
2329
The fine dotted lines in the control appear much thicker than the standard ones we've been using. How can we fix this

with G2antt1 do
begin
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	with Chart do
	begin
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	end;
	ColumnAutoResize := False;
	Columns.Add('Column 1');
	Columns.Add('Column 2');
	Columns.Add('Column 3');
	Columns.Add('Column 4');
	EndUpdate();
end
2328
Load data as a tree using a parent-id relationship

with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	DrawGridLines := EXG2ANTTLib_TLB.exVLines;
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Select * FROM Employees WHERE 1=0','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.mdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	Columns.Item[OleVariant(0)].Width := 128;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Employees','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.mdb',3,3,Null);
	end;
	PutItems(rs.GetRows(Null,Null,Null),';0;17');
	Items.ExpandItem[0] := True;
	EndUpdate();
end
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.
procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM);
begin
	with G2antt1 do
	begin
		Items.CellEditorVisible[OleVariant(Item),OleVariant(0)] := EXG2ANTTLib_TLB.exEditorVisible;
		Items.CellEditorVisible[OleVariant(Item),OleVariant(1)] := EXG2ANTTLib_TLB.exEditorVisible;
	end
end;

// EditOpen event - Occurs when the edit operation starts.
procedure TForm1.G2antt1EditOpen(ASender: TObject; );
begin
	with G2antt1 do
	begin
		with Items do
		begin
			v := CellValue[OleVariant(FocusItem),OleVariant(0)];
			c := CellCaption[OleVariant(FocusItem),OleVariant(0)];
		end;
		with Columns.Item[OleVariant(1)].Editor do
		begin
			ClearItems();
			AddItem(v,c,Null);
		end;
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	with (IUnknown(Columns.Add('DropDownList')) as EXG2ANTTLib_TLB.Column) do
	begin
		with Editor do
		begin
			EditType := EXG2ANTTLib_TLB.DropDownListType;
			AddItem(1,'First',Null);
			AddItem(2,'Second',Null);
			AddItem(3,'Third',Null);
		end;
	end;
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	(IUnknown(Columns.Add('DropDownList-Related')) as EXG2ANTTLib_TLB.Column).Editor.EditType := EXG2ANTTLib_TLB.DropDownListType;
	with Items do
	begin
		CellValue[OleVariant(AddItem(OleVariant(1))),OleVariant(1)] := OleVariant(-1);
		CellValue[OleVariant(AddItem(OleVariant(2))),OleVariant(1)] := OleVariant(-1);
		CellValue[OleVariant(AddItem(OleVariant(3))),OleVariant(1)] := OleVariant(-1);
		LockedItemCount[EXG2ANTTLib_TLB.exBottom] := 1;
		h := LockedItem[EXG2ANTTLib_TLB.exBottom,0];
		ItemDivider[h] := 0;
		ItemDividerLineAlignment[h] := EXG2ANTTLib_TLB.DividerTop;
		CellEditorVisible[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exEditorHidden;
		CellSingleLine[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exCaptionWordWrap;
		CellValueFormat[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML;
		CellValue[OleVariant(h),OleVariant(0)] := '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.';
	end;
	EndUpdate();
end
2326
Highlight the editable fields

// Change event - Occurs when the user changes the cell's content.
procedure TForm1.G2antt1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
	with G2antt1 do
	begin
		Refresh();
	end
end;

with G2antt1 do
begin
	FreezeEvents(True);
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	with ConditionalFormats do
	begin
		with Add('%CE1',Null) do
		begin
			Bold := True;
			BackColor := $f5f5f5;
			ApplyTo := EXG2ANTTLib_TLB.FormatApplyToEnum($1);
		end;
		with Add('%CE2',Null) do
		begin
			Bold := True;
			BackColor := $f5f5f5;
			ApplyTo := EXG2ANTTLib_TLB.FormatApplyToEnum($2);
		end;
		with Add('%CE3',Null) do
		begin
			Bold := True;
			BackColor := $f5f5f5;
			ApplyTo := EXG2ANTTLib_TLB.FormatApplyToEnum($3);
		end;
	end;
	with Columns do
	begin
		Add('Description');
		with (IUnknown(Add('Qty')) as EXG2ANTTLib_TLB.Column) do
		begin
			Editor.EditType := EXG2ANTTLib_TLB.SpinType;
			Def[EXG2ANTTLib_TLB.exTotalColumn] := 'sum(current,rec,%1)';
		end;
		with (IUnknown(Add('Price')) as EXG2ANTTLib_TLB.Column) do
		begin
			Def[EXG2ANTTLib_TLB.exTotalColumn] := 'avg(current,rec,%2)';
			Editor.EditType := EXG2ANTTLib_TLB.SpinType;
		end;
		with (IUnknown(Add('Amount')) as EXG2ANTTLib_TLB.Column) do
		begin
			ComputedField := '%1 * %2';
			Def[EXG2ANTTLib_TLB.exTotalColumn] := 'sum(current,rec,%3)';
		end;
	end;
	with Items do
	begin
		r := AddItem('Root');
		g1 := InsertItem(r,Null,'Group 1');
		h := InsertItem(g1,Null,'Item 1');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(1);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(10);
		h := InsertItem(g1,Null,'Item 2');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(2);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(11);
		g2 := InsertItem(r,Null,'Group 2');
		h := InsertItem(g2,Null,'Item 1');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(3);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(12);
		h := InsertItem(g2,Null,'Item 2');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(4);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(13);
		ExpandItem[0] := True;
	end;
	EndUpdate();
	FreezeEvents(False);
end
2325
Highlight the total fields

// Change event - Occurs when the user changes the cell's content.
procedure TForm1.G2antt1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
	with G2antt1 do
	begin
		Refresh();
	end
end;

with G2antt1 do
begin
	FreezeEvents(True);
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	with ConditionalFormats do
	begin
		with Add('%CT1',Null) do
		begin
			ForeColor := $808080;
			ApplyTo := EXG2ANTTLib_TLB.FormatApplyToEnum($1);
		end;
		with Add('%CT2',Null) do
		begin
			ForeColor := $808080;
			ApplyTo := EXG2ANTTLib_TLB.FormatApplyToEnum($2);
		end;
		with Add('%CT3',Null) do
		begin
			ForeColor := $808080;
			ApplyTo := EXG2ANTTLib_TLB.FormatApplyToEnum($3);
		end;
	end;
	with Columns do
	begin
		Add('Description');
		with (IUnknown(Add('Qty')) as EXG2ANTTLib_TLB.Column) do
		begin
			Editor.EditType := EXG2ANTTLib_TLB.SpinType;
			Def[EXG2ANTTLib_TLB.exTotalColumn] := 'sum(current,rec,%1)';
		end;
		with (IUnknown(Add('Price')) as EXG2ANTTLib_TLB.Column) do
		begin
			Def[EXG2ANTTLib_TLB.exTotalColumn] := 'avg(current,rec,%2)';
			Editor.EditType := EXG2ANTTLib_TLB.SpinType;
		end;
		with (IUnknown(Add('Amount')) as EXG2ANTTLib_TLB.Column) do
		begin
			ComputedField := '%1 * %2';
			Def[EXG2ANTTLib_TLB.exTotalColumn] := 'sum(current,rec,%3)';
		end;
	end;
	with Items do
	begin
		r := AddItem('Root');
		g1 := InsertItem(r,Null,'Group 1');
		h := InsertItem(g1,Null,'Item 1');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(1);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(10);
		h := InsertItem(g1,Null,'Item 2');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(2);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(11);
		g2 := InsertItem(r,Null,'Group 2');
		h := InsertItem(g2,Null,'Item 1');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(3);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(12);
		h := InsertItem(g2,Null,'Item 2');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(4);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(13);
		ExpandItem[0] := True;
	end;
	EndUpdate();
	FreezeEvents(False);
end
2324
Highlight the leaf items

with G2antt1 do
begin
	BeginUpdate();
	ConditionalFormats.Add('%CC0=0',Null).ForeColor := $808080;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	with Columns do
	begin
		(IUnknown(Add('Item')) as EXG2ANTTLib_TLB.Column).Width := 16;
		Add('Desc');
	end;
	with Items do
	begin
		hR := AddItem('Root');
		CellValue[OleVariant(hR),OleVariant(1)] := 'The root directory /';
		ExpandItem[hR] := True;
		h := InsertItem(hR,Null,'Home');
		CellValue[OleVariant(h),OleVariant(1)] := 'The home directory with user directories Alice and Bob';
		InsertItem(h,Null,'Alice');
		InsertItem(h,Null,'Bob');
		ExpandItem[h] := True;
		h := InsertItem(hR,Null,'Etc');
		CellValue[OleVariant(h),OleVariant(1)] := 'The etc directory with one configuration file';
		h := InsertItem(h,Null,'nginx.conf');
		CellValue[OleVariant(InsertItem(hR,Null,'Var')),OleVariant(1)] := 'The var directory';
	end;
	EndUpdate();
end
2323
Highlight the parent items

with G2antt1 do
begin
	BeginUpdate();
	ConditionalFormats.Add('%CC0',Null).ForeColor := $ff;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	with Columns do
	begin
		(IUnknown(Add('Item')) as EXG2ANTTLib_TLB.Column).Width := 16;
		Add('Desc');
	end;
	with Items do
	begin
		hR := AddItem('Root');
		CellValue[OleVariant(hR),OleVariant(1)] := 'The root directory /';
		ExpandItem[hR] := True;
		h := InsertItem(hR,Null,'Home');
		CellValue[OleVariant(h),OleVariant(1)] := 'The home directory with user directories Alice and Bob';
		InsertItem(h,Null,'Alice');
		InsertItem(h,Null,'Bob');
		ExpandItem[h] := True;
		h := InsertItem(hR,Null,'Etc');
		CellValue[OleVariant(h),OleVariant(1)] := 'The etc directory with one configuration file';
		h := InsertItem(h,Null,'nginx.conf');
		CellValue[OleVariant(InsertItem(hR,Null,'Var')),OleVariant(1)] := 'The var directory';
	end;
	EndUpdate();
end
2322
Highlight the item being expanded or collapsed

with G2antt1 do
begin
	BeginUpdate();
	ConditionalFormats.Add('%CX0',Null).Bold := True;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	with Columns do
	begin
		(IUnknown(Add('Item')) as EXG2ANTTLib_TLB.Column).Width := 16;
		Add('Desc');
	end;
	with Items do
	begin
		hR := AddItem('Root');
		CellValue[OleVariant(hR),OleVariant(1)] := 'The root directory /';
		ExpandItem[hR] := True;
		h := InsertItem(hR,Null,'Home');
		CellValue[OleVariant(h),OleVariant(1)] := 'The home directory with user directories Alice and Bob';
		InsertItem(h,Null,'Alice');
		InsertItem(h,Null,'Bob');
		ExpandItem[h] := True;
		h := InsertItem(hR,Null,'Etc');
		CellValue[OleVariant(h),OleVariant(1)] := 'The etc directory with one configuration file';
		h := InsertItem(h,Null,'nginx.conf');
		CellValue[OleVariant(InsertItem(hR,Null,'Var')),OleVariant(1)] := 'The var directory';
	end;
	EndUpdate();
end
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.
procedure TForm1.G2antt1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
	with G2antt1 do
	begin
		Refresh();
	end
end;

with G2antt1 do
begin
	FreezeEvents(True);
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	with Columns do
	begin
		Add('Description');
		with (IUnknown(Add('Qty')) as EXG2ANTTLib_TLB.Column) do
		begin
			Editor.EditType := EXG2ANTTLib_TLB.SpinType;
			Def[EXG2ANTTLib_TLB.exTotalColumn] := 'sum(current,rec,%1)';
		end;
		with (IUnknown(Add('Price')) as EXG2ANTTLib_TLB.Column) do
		begin
			Def[EXG2ANTTLib_TLB.exTotalColumn] := 'avg(current,rec,%2)';
			Editor.EditType := EXG2ANTTLib_TLB.SpinType;
		end;
		with (IUnknown(Add('Amount')) as EXG2ANTTLib_TLB.Column) do
		begin
			ComputedField := '%1 * %2';
			Def[EXG2ANTTLib_TLB.exTotalColumn] := 'sum(current,rec,%3)';
		end;
	end;
	with Items do
	begin
		r := AddItem('Root');
		g1 := InsertItem(r,Null,'Group 1');
		FormatCell[OleVariant(g1),OleVariant(2)] := '`<average missing>`';
		CellEditorVisible[OleVariant(g1),OleVariant(2)] := EXG2ANTTLib_TLB.exEditorHidden;
		CellBold[OleVariant(g1),OleVariant(2)] := True;
		CellForeColor[OleVariant(g1),OleVariant(2)] := $ff;
		h := InsertItem(g1,Null,'Item 1');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(1);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(10);
		h := InsertItem(g1,Null,'Item 2');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(2);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(11);
		g2 := InsertItem(r,Null,'Group 2');
		h := InsertItem(g2,Null,'Item 1');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(3);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(12);
		h := InsertItem(g2,Null,'Item 2');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(4);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(13);
		ExpandItem[0] := True;
	end;
	EndUpdate();
	FreezeEvents(False);
end
2320
How can I add a total column

// Change event - Occurs when the user changes the cell's content.
procedure TForm1.G2antt1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
	with G2antt1 do
	begin
		Refresh();
	end
end;

with G2antt1 do
begin
	FreezeEvents(True);
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	with Columns do
	begin
		Add('Description');
		with (IUnknown(Add('Qty')) as EXG2ANTTLib_TLB.Column) do
		begin
			Editor.EditType := EXG2ANTTLib_TLB.SpinType;
			Def[EXG2ANTTLib_TLB.exTotalColumn] := 'sum(current,rec,%1)';
		end;
		with (IUnknown(Add('Price')) as EXG2ANTTLib_TLB.Column) do
		begin
			Def[EXG2ANTTLib_TLB.exTotalColumn] := 'avg(current,rec,%2)';
			Editor.EditType := EXG2ANTTLib_TLB.SpinType;
		end;
		with (IUnknown(Add('Amount')) as EXG2ANTTLib_TLB.Column) do
		begin
			ComputedField := '%1 * %2';
			Def[EXG2ANTTLib_TLB.exTotalColumn] := 'sum(current,rec,%3)';
		end;
	end;
	with Items do
	begin
		r := AddItem('Root');
		g1 := InsertItem(r,Null,'Group 1');
		h := InsertItem(g1,Null,'Item 1');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(1);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(10);
		h := InsertItem(g1,Null,'Item 2');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(2);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(11);
		g2 := InsertItem(r,Null,'Group 2');
		h := InsertItem(g2,Null,'Item 1');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(3);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(12);
		h := InsertItem(g2,Null,'Item 2');
		CellValue[OleVariant(h),OleVariant(1)] := OleVariant(4);
		CellValue[OleVariant(h),OleVariant(2)] := OleVariant(13);
		ExpandItem[0] := True;
	end;
	EndUpdate();
	FreezeEvents(False);
end
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
with G2antt1 do
begin
	with Chart do
	begin
		PaneWidth[False] := 0;
		LevelCount := 2;
		ToolTip := '';
	end;
end
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
with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 128;
	end;
	AntiAliasing := True;
	with Items do
	begin
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001','K1',Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Task','1/5/2001','1/7/2001','K2',Null);
		AddLink('L1',h1,'K1',h2,'K2');
		Link['L1',EXG2ANTTLib_TLB.exLinkStyle] := OleVariant(2);
		Link['L1',EXG2ANTTLib_TLB.exLinkWidth] := OleVariant(2);
		h3 := AddItem('Task 4');
		AddBar(h3,'Task','1/8/2001','1/10/2001','K3',Null);
		AddLink('L2',h2,'K2',h3,'K3');
		Link['L2',EXG2ANTTLib_TLB.exLinkStyle] := OleVariant(1);
		Link['L2',EXG2ANTTLib_TLB.exLinkWidth] := OleVariant(2);
	end;
	EndUpdate();
end
2317
How can I change the tooltip's margins (method 2)

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		ShowToolTip(Chart.BarFromPoint[-1,-1],Null,Null,Null,Null);
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	ToolTipMargin := '16,8';
	Columns.Add('Def');
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
		PaneWidth[False] := 64;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2010';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarToolTip] := '...';
	end;
	with Items do
	begin
		h := AddItem('Task');
		AddBar(h,'Task','1/2/2010','1/5/2010','A','A');
		AddBar(h,'Task','1/5/2010','1/8/2010','B','B');
	end;
	EndUpdate();
end
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.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		ShowToolTip(Chart.BarFromPoint[-1,-1],Null,Null,Null,Null);
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	ToolTipMargin := '16,8';
	Columns.Add('Def');
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
		PaneWidth[False] := 64;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2010';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarToolTip] := '...';
	end;
	with Items do
	begin
		h := AddItem('Task');
		AddBar(h,'Task','1/2/2010','1/5/2010','A','A');
		AddBar(h,'Task','1/5/2010','1/8/2010','B','B');
	end;
	EndUpdate();
end
2315
exShowExtendedLinks

with G2antt1 do
begin
	BeginUpdate();
	DefaultItemHeight := 24;
	HeaderHeight := 20;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	AntiAliasing := True;
	Columns.Add('Task');
	with Chart do
	begin
		PaneWidth[False] := 48;
		LevelCount := 2;
		UnitScale := EXG2ANTTLib_TLB.exHour;
		FirstVisibleDate := '1/10/2024';
		with Level[1] do
		begin
			DrawTickLines := EXG2ANTTLib_TLB.exLevelNoLine;
			DrawTickLinesFrom(0,EXG2ANTTLib_TLB.exLevelDotLine);
		end;
		AllowResizeChart := EXG2ANTTLib_TLB.ResizeChartEnum($fffffef9 Or Integer(EXG2ANTTLib_TLB.exAllowChangeUnitScale) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader));
		ShowLinks := EXG2ANTTLib_TLB.exShowExtendedLinks;
	end;
	with Items do
	begin
		AddBar(AddItem('T1'),'Task','1/10/2024 10:00:00 AM','1/10/2024 10:20:00 AM','T1',Null);
		AddBar(AddItem('T2'),'Task','1/10/2024 9:00:00 AM','1/10/2024 12:00:00 PM','T2',Null);
		AddBar(AddItem('T3'),'Task','1/10/2024 8:00:00 AM','1/10/2024 8:30:00 AM','T3',Null);
		AddBar(AddItem('T4'),'Task','1/10/2024 8:00:00 AM','1/10/2024 8:30:00 AM','T4',Null);
		AddLink('L13',ItemByIndex[0],'T1',ItemByIndex[2],'T3');
		AddLink('L14',ItemByIndex[0],'T1',ItemByIndex[3],'T4');
		AddLink('L24',ItemByIndex[1],'T2',ItemByIndex[3],'T4');
	end;
	EndUpdate();
end
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

with G2antt1 do
begin
	BeginUpdate();
	DefaultItemHeight := 24;
	HeaderHeight := 20;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	AntiAliasing := True;
	Columns.Add('Task');
	with Chart do
	begin
		PaneWidth[False] := 48;
		LevelCount := 2;
		UnitScale := EXG2ANTTLib_TLB.exHour;
		FirstVisibleDate := '1/10/2024';
		with Level[1] do
		begin
			DrawTickLines := EXG2ANTTLib_TLB.exLevelNoLine;
			DrawTickLinesFrom(0,EXG2ANTTLib_TLB.exLevelDotLine);
		end;
		AllowResizeChart := EXG2ANTTLib_TLB.ResizeChartEnum($fffffef9 Or Integer(EXG2ANTTLib_TLB.exAllowChangeUnitScale) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader));
	end;
	with Items do
	begin
		AddBar(AddItem('T1'),'Task','1/10/2024 10:00:00 AM','1/10/2024 10:20:00 AM','T1',Null);
		AddBar(AddItem('T2'),'Task','1/10/2024 9:00:00 AM','1/10/2024 12:00:00 PM','T2',Null);
		AddBar(AddItem('T3'),'Task','1/10/2024 8:00:00 AM','1/10/2024 8:30:00 AM','T3',Null);
		AddBar(AddItem('T4'),'Task','1/10/2024 8:00:00 AM','1/10/2024 8:30:00 AM','T4',Null);
		AddLink('L1',ItemByIndex[0],'T1',ItemByIndex[2],'T3');
		AddLink('L2',ItemByIndex[1],'T2',ItemByIndex[3],'T4');
		Link['L2',EXG2ANTTLib_TLB.exLinkShowRound] := OleVariant(4);
	end;
	EndUpdate();
end
2313
How to use arrows key left/right to move the cursor left/right inside the text
with G2antt1 do
begin
	BeginUpdate();
	with (IUnknown(Columns.Add('Edit')) as EXG2ANTTLib_TLB.Column).Editor do
	begin
		EditType := EXG2ANTTLib_TLB.EditType;
		Option[EXG2ANTTLib_TLB.exLeftArrow] := OleVariant(False);
		Option[EXG2ANTTLib_TLB.exRightArrow] := OleVariant(False);
	end;
	with Items do
	begin
		AddItem('000');
		AddItem('111');
		AddItem('222');
	end;
	EndUpdate();
end
2312
How can I force the cursor to jump to the end of the editor once the user clicks the cell
with G2antt1 do
begin
	BeginUpdate();
	SelBackColor := BackColor;
	SelForeColor := ForeColor;
	with (IUnknown(Columns.Add('Edit')) as EXG2ANTTLib_TLB.Column).Editor do
	begin
		EditType := EXG2ANTTLib_TLB.EditType;
		Option[EXG2ANTTLib_TLB.exEditSelStart] := OleVariant(-1);
	end;
	with Items do
	begin
		AddItem('000');
		AddItem('111');
		AddItem('222');
	end;
	EndUpdate();
end
2311
How can I show the overview with a different color except or outside the selection

with G2antt1 do
begin
	BeginUpdate();
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABVIDg6AADACAxRDAMgBQKAAzAJBIYhiGgcYCgMZBSDeCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADE2YAoJDUN4nDKMMDybBkRxtDCPIDnGQoDi' + 
	'GI4nSbKIzSCKMQhrEKZZrnaLJFgOTY8ABLEBvfSgASof6MKBlKhKGoiUo2SCFEaBTBNHxDL6raqqWJ5HDINQlWzbcjjKKFYRbOqTZDkGj4XqKTo3YBAdZSXJsXwTGKkj' + 
	'i3ZgMOR3HaQaTjOgINpuDZdRzkUYZUDFSwSDqQIRtCpbJqzFZDZbLNbYBYME47AayID0CbdCgmaalSZHNxbVa0BzpXrFLw1TLoDy8AJ+ABseKzfo9PxdIygZRzKJ8aof' + 
	'E+YxynIfJcC8QgbCmL5eiEPIKH6RABlibJpicW4/FcAx/HOYRGmud4+CcHxdmiDhkGEIIIEkQJSGMHQHFGSBlFEUITEmewAAQIQ2AYRpDGQJAoEIXhXCkCB5kmSAdmgV' + 
	'ZPmgZJ8gaT4oHSeIHk8aIEnWCJiEiFgmgmYoIiYJIIE8aB8niB0pmyfIGE+ZYmDQPpjgOUg6DqY5DgYPg2mQAxqEKEJkEkFhGhGZIJA4QA2mOY4GDwOsumCe4NAACJKD' + 
	'oPQOFkZJThaSoZHSGYXmYCYGGKGJmEmFhmCsJoDFYag5iaSISDIAAjAkPJLhyS4JlYbA5iSeZmHqHpnkmdh+hOZx5lSOAzGgSQ+DAAAimkNIkiKTh6DSbIjmkChGhKJJ' + 
	'pEoVoWiSaJThyKImmSWI4ACCwNkqBhgDsahKhaJopmqComiqKpqkqEhghKYpAAIJIQmYA46jaLZrgqZo6i6a5KnaPotiZRQkiyIg6lIXw7myCwmkqMpsksNpOjObQLCK' + 
	'QYQiwOpOEKGAPAsZpajabZLHaXo3m4C4GlmNJNisVpFjWZZzkaao6m6S42m6O5vAuRpyjqLhLhidYxgmE5KnqPpvkudp+j+cAMAcAo+i8WIOkSPZuguZwDkKcJMDafpB' + 
	'E8XAengPJxEwVwWkWcYMGcGpGnGTBTBCRIwhkXwikichMhcJpJnKDIPB+NYNimAgqkucwMkcMoInKO4fC2F5ikyZw6k6c5MncPpPnOLJXAiTZJhOXxGlGdINCcSpSnST' + 
	'Q3E6UY0CuYgulSdRNFcVpVnWDRnFSVBwh0axeledgNFsXJRA+HYXGaWZ2g2JxqlqdpNjcZZYmYCJDHKXJ3E2K4doux3gbE8OEF4ygtjuH6L8eAHAHgFGCO8bY2QZgZDi' + 
	'BwJ4FRijxE4G8DoxBxj6B6EINwTADjvBaMseYHBng1GaPMTg7wepxA4J4Rx8RjgfCYFMeoEQ6BpGqPUTob2MD2A6IQLoNAKiHAuG0WYAAJCVBCCETAHR3DMFWPgDwD29' + 
	'j4E8CoV4sw7imAIIcJASggAHBeBIJw5grikCmHoSYNxWjrH2BMAoNgqAZE8O0GYEg5DgAIG8DgxwjhXGaCYZIcgnxBGSDILgmwTjKHkJMNwqgjCREoGEC4RRMifHqJcY' + 
	'okQ6BgEYJEUIaQOhlHIIESAECAg=');
	BackColorLevelHeader := BackColor;
	Background[EXG2ANTTLib_TLB.exOverviewSelResize] := $1;
	Background[EXG2ANTTLib_TLB.exOverviewSelOut] := $f0f0f0;
	Chart.OverviewSelBackColor := $ffffff;
	Background[EXG2ANTTLib_TLB.exOverviewSelUnit] := $1000000;
	with Chart do
	begin
		FirstVisibleDate := '6/21/2001';
		PaneWidth[False] := 48;
		OverviewVisible := EXG2ANTTLib_TLB.OverviewVisibleEnum($400 Or Integer(EXG2ANTTLib_TLB.exOverviewShowSelMargins) Or Integer(EXG2ANTTLib_TLB.exOverviewShowMargins) Or Integer(EXG2ANTTLib_TLB.exOverviewShowDateTimeScaleBottom) Or Integer(EXG2ANTTLib_TLB.exOverviewShowAllVisible));
		OverviewHeight := 64;
		LevelCount := 2;
		UnitScale := EXG2ANTTLib_TLB.exDay;
		Label[EXG2ANTTLib_TLB.exHour] := '';
		Label[EXG2ANTTLib_TLB.exMinute] := '';
		Label[EXG2ANTTLib_TLB.exSecond] := '';
		AllowOverviewZoom := EXG2ANTTLib_TLB.exAlwaysZoom;
	end;
	Columns.Add('Column');
	with Items do
	begin
		AddBar(AddItem('Item 1'),'Task','1/2/2001','1/11/2001',Null,Null);
		AddBar(AddItem('Item 2'),'Task','7/2/2001','7/11/2001',Null,Null);
		AddBar(AddItem('Item 3'),'Task','11/2/2001','11/11/2001',Null,Null);
	end;
	EndUpdate();
end
2310
Resize the chart using the overview's selection left and right margins (blue)

with G2antt1 do
begin
	BeginUpdate();
	BackColorLevelHeader := BackColor;
	Background[EXG2ANTTLib_TLB.exOverviewSelResize] := $ff0000;
	with Chart do
	begin
		FirstVisibleDate := '6/21/2001';
		PaneWidth[False] := 48;
		OverviewVisible := EXG2ANTTLib_TLB.OverviewVisibleEnum($400 Or Integer(EXG2ANTTLib_TLB.exOverviewShowSelMargins) Or Integer(EXG2ANTTLib_TLB.exOverviewShowMargins) Or Integer(EXG2ANTTLib_TLB.exOverviewShowDateTimeScaleBottom) Or Integer(EXG2ANTTLib_TLB.exOverviewShowAllVisible));
		OverviewHeight := 64;
		LevelCount := 2;
		UnitScale := EXG2ANTTLib_TLB.exDay;
	end;
	Columns.Add('Column');
	with Items do
	begin
		AddBar(AddItem('Item 1'),'Task','1/2/2001','1/11/2001',Null,Null);
		AddBar(AddItem('Item 2'),'Task','7/2/2001','7/11/2001',Null,Null);
		AddBar(AddItem('Item 3'),'Task','11/2/2001','11/11/2001',Null,Null);
	end;
	EndUpdate();
end
2309
Resize the chart using the overview's selection left and right margins (black)

with G2antt1 do
begin
	BeginUpdate();
	BackColorLevelHeader := BackColor;
	Background[EXG2ANTTLib_TLB.exOverviewSelResize] := $1;
	with Chart do
	begin
		FirstVisibleDate := '6/21/2001';
		PaneWidth[False] := 48;
		OverviewVisible := EXG2ANTTLib_TLB.OverviewVisibleEnum($400 Or Integer(EXG2ANTTLib_TLB.exOverviewShowSelMargins) Or Integer(EXG2ANTTLib_TLB.exOverviewShowMargins) Or Integer(EXG2ANTTLib_TLB.exOverviewShowDateTimeScaleBottom) Or Integer(EXG2ANTTLib_TLB.exOverviewShowAllVisible));
		OverviewHeight := 64;
		LevelCount := 2;
		UnitScale := EXG2ANTTLib_TLB.exDay;
	end;
	Columns.Add('Column');
	with Items do
	begin
		AddBar(AddItem('Item 1'),'Task','1/2/2001','1/11/2001',Null,Null);
		AddBar(AddItem('Item 2'),'Task','7/2/2001','7/11/2001',Null,Null);
		AddBar(AddItem('Item 3'),'Task','11/2/2001','11/11/2001',Null,Null);
	end;
	EndUpdate();
end
2308
Disable temporarily the column's sort, resize and drag and drop

with G2antt1 do
begin
	BeginUpdate();
	OnResizeControl := EXG2ANTTLib_TLB.exResizeChart;
	SortBarVisible := True;
	SortBarCaption := '<fgcolor 808080><c>the header and the sort-bar are disabled (no drag and drop is allowed)';
	AllowGroupBy := True;
	HeaderEnabled := False;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	(IUnknown(Columns.Add('Index')) as EXG2ANTTLib_TLB.Column).FormatColumn := '1 index ``';
	(IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column).FormatColumn := '1 apos ``';
	(IUnknown(Columns.Add('Edit')) as EXG2ANTTLib_TLB.Column).Editor.EditType := EXG2ANTTLib_TLB.EditType;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	DrawGridLines := EXG2ANTTLib_TLB.exVLines;
	GridLineColor := RGB(224,224,224);
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 196;
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		with Level[1] do
		begin
			DrawGridLines := True;
			GridLineColor := G2antt1.GridLineColor;
		end;
	end;
	EndUpdate();
end
2307
Adds a Finish-Start(FS) link (method 3)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h1 := AddItem('Item 1');
		AddBar(h1,'Task','1/3/2001','1/6/2001',Null,Null);
		h2 := AddItem('Item 2');
		AddBar(h2,'Task','1/3/2001','1/6/2001',Null,Null);
		AddLink('Link1',h1,'',h2,'');
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2306
Adds a Start-Start(SS) link (method 3)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h1 := AddItem('Item 1');
		AddBar(h1,'Task','1/3/2001','1/6/2001',Null,Null);
		h2 := AddItem('Item 2');
		AddBar(h2,'Task','1/3/2001','1/6/2001',Null,Null);
		AddLink('Link1',h1,'',h2,'');
		Link['Link1',EXG2ANTTLib_TLB.exLinkStartPos] := OleVariant(0);
		Link['Link1',EXG2ANTTLib_TLB.exLinkEndPos] := OleVariant(0);
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2305
Adds a Finish-Finish(FF) link (method 3)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h1 := AddItem('Item 1');
		AddBar(h1,'Task','1/3/2001','1/6/2001',Null,Null);
		h2 := AddItem('Item 2');
		AddBar(h2,'Task','1/3/2001','1/6/2001',Null,Null);
		AddLink('Link1',h1,'',h2,'');
		Link['Link1',EXG2ANTTLib_TLB.exLinkStartPos] := OleVariant(2);
		Link['Link1',EXG2ANTTLib_TLB.exLinkEndPos] := OleVariant(2);
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2304
Adds a Start-Finish(SF) link (method 3)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h1 := AddItem('Item 1');
		AddBar(h1,'Task','1/3/2001','1/6/2001',Null,Null);
		h2 := AddItem('Item 2');
		AddBar(h2,'Task','1/3/2001','1/6/2001',Null,Null);
		AddLink('Link1',h1,'',h2,'');
		Link['Link1',EXG2ANTTLib_TLB.exLinkStartPos] := OleVariant(0);
		Link['Link1',EXG2ANTTLib_TLB.exLinkEndPos] := OleVariant(2);
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2303
Adds a Finish-Start(FS) link (method 2)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h1 := AddItem('Item 1');
		AddBar(h1,'Task','1/3/2001','1/6/2001',Null,Null);
		h2 := AddItem('Item 2');
		AddBar(h2,'Task','1/3/2001','1/6/2001',Null,Null);
		ItemBar[h2,'',EXG2ANTTLib_TLB.exBarPredecessor] := '1FS';
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2302
Adds a Start-Start(SS) link (method 2)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h1 := AddItem('Item 1');
		AddBar(h1,'Task','1/3/2001','1/6/2001',Null,Null);
		h2 := AddItem('Item 2');
		AddBar(h2,'Task','1/3/2001','1/6/2001',Null,Null);
		ItemBar[h2,'',EXG2ANTTLib_TLB.exBarPredecessor] := '1SS';
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2301
Adds a Finish-Finish(FF) link (method 2)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h1 := AddItem('Item 1');
		AddBar(h1,'Task','1/3/2001','1/6/2001',Null,Null);
		h2 := AddItem('Item 2');
		AddBar(h2,'Task','1/3/2001','1/6/2001',Null,Null);
		ItemBar[h2,'',EXG2ANTTLib_TLB.exBarPredecessor] := '1FF';
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2300
Adds a Start-Finish(SF) link (method 2)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h1 := AddItem('Item 1');
		AddBar(h1,'Task','1/3/2001','1/6/2001',Null,Null);
		h2 := AddItem('Item 2');
		AddBar(h2,'Task','1/3/2001','1/6/2001',Null,Null);
		ItemBar[h2,'',EXG2ANTTLib_TLB.exBarPredecessor] := '1SF';
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2299
Adds a Start-Finish(SF) link (method 1)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h1 := AddItem('Item 1');
		AddBar(h1,'Task','1/3/2001','1/6/2001',Null,Null);
		h2 := AddItem('Item 2');
		AddBar(h2,'Task','1/3/2001','1/6/2001',Null,Null);
		AddLink('Link1',h1,'',h2,'');
		Link['Link1',EXG2ANTTLib_TLB.exLinkType] := 'SF';
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2298
Adds a Finish-Finish(FF) link (method 1)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h1 := AddItem('Item 1');
		AddBar(h1,'Task','1/3/2001','1/6/2001',Null,Null);
		h2 := AddItem('Item 2');
		AddBar(h2,'Task','1/3/2001','1/6/2001',Null,Null);
		AddLink('Link1',h1,'',h2,'');
		Link['Link1',EXG2ANTTLib_TLB.exLinkType] := 'FF';
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2297
Adds a Start-Start(SS) link (method 1)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h1 := AddItem('Item 1');
		AddBar(h1,'Task','1/3/2001','1/6/2001',Null,Null);
		h2 := AddItem('Item 2');
		AddBar(h2,'Task','1/3/2001','1/6/2001',Null,Null);
		AddLink('Link1',h1,'',h2,'');
		Link['Link1',EXG2ANTTLib_TLB.exLinkType] := 'SS';
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2296
Adds a Finish-Start(FS) link (method 1)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h1 := AddItem('Item 1');
		AddBar(h1,'Task','1/3/2001','1/6/2001',Null,Null);
		h2 := AddItem('Item 2');
		AddBar(h2,'Task','1/3/2001','1/6/2001',Null,Null);
		AddLink('Link1',h1,'',h2,'');
		Link['Link1',EXG2ANTTLib_TLB.exLinkType] := 'FS';
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2295
What is the difference between lags with "W" or without

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
		with Bars.Add('Task:Split') do
		begin
			Shortcut := 'Task';
			Def[EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		end;
	end;
	with Items do
	begin
		AddBar(AddItem('Item 1'),'Task','1/3/2001','1/6/2001',Null,Null);
		AddBar(AddItem('Item 2'),'Task','1/3/2001','1/6/2001',Null,Null);
		AddBar(AddItem('Item 3'),'Task','1/3/2001','1/6/2001',Null,Null);
		ItemBar[ItemByIndex[0],'',EXG2ANTTLib_TLB.exBarSuccessor] := '2SF:-1,3SF:-1W';
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2294
What is the difference between lags with "W" or without

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		AddBar(AddItem('Item 1'),'Task','1/3/2001','1/6/2001',Null,Null);
		AddBar(AddItem('Item 2'),'Task','1/3/2001','1/6/2001',Null,Null);
		AddBar(AddItem('Item 3'),'Task','1/3/2001','1/6/2001',Null,Null);
		ItemBar[ItemByIndex[0],'',EXG2ANTTLib_TLB.exBarSuccessor] := '2SF:-1,3SF:-1W';
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2293
How can I remove all outgoing links

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		AddBar(AddItem('Item 1'),'Task','1/1/2001','1/4/2001',Null,Null);
		AddBar(AddItem('Item 2'),'Task','1/5/2001','1/8/2001',Null,Null);
		AddBar(AddItem('Item 3'),'Task','1/9/2001','1/12/2001',Null,Null);
		AddLink('L1',ItemByIndex[0],'',ItemByIndex[1],'');
		AddLink('L2',ItemByIndex[1],'',ItemByIndex[2],'');
		ItemBar[ItemByIndex[1],'',EXG2ANTTLib_TLB.exBarSuccessor] := '';
	end;
	EndUpdate();
end
2292
How can I remove all incoming links

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		AddBar(AddItem('Item 1'),'Task','1/1/2001','1/4/2001',Null,Null);
		AddBar(AddItem('Item 2'),'Task','1/5/2001','1/8/2001',Null,Null);
		AddBar(AddItem('Item 3'),'Task','1/9/2001','1/12/2001',Null,Null);
		AddLink('L1',ItemByIndex[0],'',ItemByIndex[1],'');
		AddLink('L2',ItemByIndex[1],'',ItemByIndex[2],'');
		ItemBar[ItemByIndex[1],'',EXG2ANTTLib_TLB.exBarPredecessor] := '';
	end;
	EndUpdate();
end
2291
How do I add a link between two bars (method 3)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h := AddItem('Item 1');
		AddBar(h,'Task','1/1/2001','1/4/2001',Null,Null);
		AddBar(AddItem('Item 2'),'Task','1/5/2001','1/8/2001',Null,Null);
		ItemBar[h,'',EXG2ANTTLib_TLB.exBarSuccessor] := '2SF';
	end;
	EndUpdate();
end
2290
How do I add a link between two bars (method 2)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Name');
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
	end;
	with Items do
	begin
		h := AddItem('Item 1');
		AddBar(h,'Task','1/1/2001','1/4/2001',Null,Null);
		AddBar(AddItem('Item 2'),'Task','1/5/2001','1/8/2001',Null,Null);
		ItemBar[h,'',EXG2ANTTLib_TLB.exBarPredecessor] := '2SF';
	end;
	EndUpdate();
end
2289
Highlight the selected-link while editing the predecessor/successor column

// AddLink event - Occurs when the user links two bars using the mouse.
procedure TForm1.G2antt1AddLink(ASender: TObject; LinkKey : WideString);
begin
	with G2antt1 do
	begin
		Items.Link[OleVariant(LinkKey),EXG2ANTTLib_TLB.exLinkShowRound] := OleVariant(3);
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	OnResizeControl := EXG2ANTTLib_TLB.exResizeChart;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	ColumnAutoResize := False;
	HeaderHeight := 32;
	DefaultItemHeight := 28;
	BackColorLevelHeader := RGB(255,255,255);
	Background[EXG2ANTTLib_TLB.exPSLinkColorEditSel] := $a0a0a0;
	Background[EXG2ANTTLib_TLB.exPSBarColorEditSel] := $808080;
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 48;
		with (IUnknown(Add('Start')) as EXG2ANTTLib_TLB.Column) do
		begin
			Width := 48;
			Editor.EditType := EXG2ANTTLib_TLB.DateType;
			Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
		end;
		with (IUnknown(Add('End')) as EXG2ANTTLib_TLB.Column) do
		begin
			Width := 48;
			Editor.EditType := EXG2ANTTLib_TLB.DateType;
			Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(543);
		end;
		with (IUnknown(Add('Predecessor')) as EXG2ANTTLib_TLB.Column) do
		begin
			with Editor do
			begin
				EditType := EXG2ANTTLib_TLB.EditType;
				EditType := EXG2ANTTLib_TLB.MaskType;
				Mask := ';;;rich';
			end;
			Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(270);
		end;
		with (IUnknown(Add('Successor')) as EXG2ANTTLib_TLB.Column) do
		begin
			with Editor do
			begin
				EditType := EXG2ANTTLib_TLB.EditType;
				EditType := EXG2ANTTLib_TLB.MaskType;
				Mask := ';;;rich';
			end;
			Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(271);
		end;
		with (IUnknown(Add('(I)')) as EXG2ANTTLib_TLB.Column) do
		begin
			FormatColumn := '1 index ``';
			Position := 0;
			AllowSizing := False;
			Width := 20;
		end;
	end;
	ColumnAutoResize := True;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	GridLineColor := RGB(224,224,224);
	AntiAliasing := True;
	with Chart do
	begin
		ShowLinks := EXG2ANTTLib_TLB.exShowExtendedLinks;
		LinksStyle := EXG2ANTTLib_TLB.exLinkSolid;
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 362;
		NonworkingDays := 0;
		AllowLinkBars := True;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAutoEndInclusive;
		AllowZoomOnFly := EXG2ANTTLib_TLB.ZoomOnFlyEnum($fffffcc4 Or Integer(EXG2ANTTLib_TLB.exZoomOnFlyIncludeSelectedItems) Or Integer(EXG2ANTTLib_TLB.exZoomOnFlyBarsOnly) Or Integer(EXG2ANTTLib_TLB.exZoomOnFly) Or Integer(EXG2ANTTLib_TLB.exZoomOnFlyCtrl) Or Integer(EXG2ANTTLib_TLB.exZoomOnFlyShift));
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		with Bars.Item['Task'] do
		begin
			Height := 15;
			Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%C5%>';
		end;
	end;
	with Items do
	begin
		AllowCellValueToItemBar := True;
		AddBar(AddItem('Phase A'),'Task','1/1/2001','1/6/2001',Null,Null);
		AddBar(AddItem('Phase B'),'Task','1/2/2001','1/7/2001',Null,Null);
		AddBar(AddItem('Phase C'),'Task','12/29/2000','1/4/2001',Null,Null);
		AddLink('L1',ItemByIndex[0],'',ItemByIndex[1],'');
		Link['L1',EXG2ANTTLib_TLB.exLinkPDMDelay] := OleVariant(1);
		AddLink('L2',ItemByIndex[0],'',ItemByIndex[2],'');
		AddLink('L3',ItemByIndex[2],'',ItemByIndex[1],'');
		SchedulePDM(0,'');
	end;
	EndUpdate();
end
2288
Adding an editable successor column

with G2antt1 do
begin
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 48;
		with (IUnknown(Add('Successor')) as EXG2ANTTLib_TLB.Column) do
		begin
			with Editor do
			begin
				EditType := EXG2ANTTLib_TLB.EditType;
				EditType := EXG2ANTTLib_TLB.MaskType;
				Mask := ';;;rich';
			end;
			Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(271);
		end;
		with (IUnknown(Add('(I)')) as EXG2ANTTLib_TLB.Column) do
		begin
			FormatColumn := '1 index ``';
			Position := 0;
			AllowSizing := False;
			Width := 20;
		end;
	end;
	ColumnAutoResize := True;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	GridLineColor := RGB(224,224,224);
	AntiAliasing := True;
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 256;
		AllowLinkBars := True;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAutoEndInclusive;
	end;
	with Items do
	begin
		AllowCellValueToItemBar := True;
		AddBar(AddItem('Phase A'),'Task','1/1/2001','1/6/2001',Null,Null);
		AddBar(AddItem('Phase B'),'Task','1/2/2001','1/7/2001',Null,Null);
		AddBar(AddItem('Phase C'),'Task','12/29/2000','1/4/2001',Null,Null);
		AddLink('L1',ItemByIndex[0],'',ItemByIndex[1],'');
		AddLink('L2',ItemByIndex[0],'',ItemByIndex[2],'');
		AddLink('L3',ItemByIndex[2],'',ItemByIndex[1],'');
	end;
	EndUpdate();
end
2287
Adding an editable predecessor column

with G2antt1 do
begin
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 48;
		with (IUnknown(Add('Predecessor')) as EXG2ANTTLib_TLB.Column) do
		begin
			with Editor do
			begin
				EditType := EXG2ANTTLib_TLB.EditType;
				EditType := EXG2ANTTLib_TLB.MaskType;
				Mask := ';;;rich';
			end;
			Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(270);
		end;
		with (IUnknown(Add('(I)')) as EXG2ANTTLib_TLB.Column) do
		begin
			FormatColumn := '1 index ``';
			Position := 0;
			AllowSizing := False;
			Width := 20;
		end;
	end;
	ColumnAutoResize := True;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	GridLineColor := RGB(224,224,224);
	AntiAliasing := True;
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 256;
		AllowLinkBars := True;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAutoEndInclusive;
	end;
	with Items do
	begin
		AllowCellValueToItemBar := True;
		AddBar(AddItem('Phase A'),'Task','1/1/2001','1/6/2001',Null,Null);
		AddBar(AddItem('Phase B'),'Task','1/2/2001','1/7/2001',Null,Null);
		AddBar(AddItem('Phase C'),'Task','12/29/2000','1/4/2001',Null,Null);
		AddLink('L1',ItemByIndex[0],'',ItemByIndex[1],'');
		AddLink('L2',ItemByIndex[0],'',ItemByIndex[2],'');
		AddLink('L3',ItemByIndex[2],'',ItemByIndex[1],'');
	end;
	EndUpdate();
end
2286
Adding an Index column

with G2antt1 do
begin
	BeginUpdate();
	Chart.PaneWidth[True] := 0;
	with Columns do
	begin
		(IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column).Width := 48;
		with (IUnknown(Add('Index')) as EXG2ANTTLib_TLB.Column) do
		begin
			FormatColumn := '1 index ``';
			Position := 0;
			AllowSizing := False;
			Width := 48;
		end;
	end;
	with Items do
	begin
		AddItem('Phase A');
		AddItem('Phase B');
		AddItem('Phase C');
	end;
	EndUpdate();
end
2285
Create a new bar should start at 1 day (after moving some pixel to the right 1 days is showing) and new days should been showing as soon as you hit the next day. How can I do that (create bar manually)

// CreateBar event - Fired when the user creates a new bar.
procedure TForm1.G2antt1CreateBar(ASender: TObject; Item : HITEM;DateStart : TDateTime;DateEnd : TDateTime);
begin
	with G2antt1 do
	begin
		Items.AddBar(Item,'Task',OleVariant(DateStart),OleVariant(DateEnd),'','new');
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	OnResizeControl := EXG2ANTTLib_TLB.exResizeChart;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	(IUnknown(Columns.Add('Index')) as EXG2ANTTLib_TLB.Column).FormatColumn := '1 index ``';
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	DrawGridLines := EXG2ANTTLib_TLB.exHLines;
	GridLineColor := RGB(224,224,224);
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
		NonworkingDays := 0;
		AllowLinkBars := True;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarManualEndInclusive;
		AllowZoomOnFly := EXG2ANTTLib_TLB.ZoomOnFlyEnum($fffffcc4 Or Integer(EXG2ANTTLib_TLB.exZoomOnFlyIncludeSelectedItems) Or Integer(EXG2ANTTLib_TLB.exZoomOnFlyBarsOnly) Or Integer(EXG2ANTTLib_TLB.exZoomOnFly) Or Integer(EXG2ANTTLib_TLB.exZoomOnFlyCtrl) Or Integer(EXG2ANTTLib_TLB.exZoomOnFlyShift));
		GridLineStyle := G2antt1.GridLineStyle;
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		with Level[1] do
		begin
			DrawGridLines := True;
			GridLineColor := G2antt1.GridLineColor;
		end;
	end;
	with Items do
	begin
		AddItem('');
		AddItem('');
		AddItem('');
	end;
	EndUpdate();
end
2284
Create a new bar should start at 1 day (after moving some pixel to the right 1 days is showing) and new days should been showing as soon as you hit the next day. How can I do that (create bar automatically)

with G2antt1 do
begin
	BeginUpdate();
	OnResizeControl := EXG2ANTTLib_TLB.exResizeChart;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	(IUnknown(Columns.Add('Index')) as EXG2ANTTLib_TLB.Column).FormatColumn := '1 index ``';
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	DrawGridLines := EXG2ANTTLib_TLB.exHLines;
	GridLineColor := RGB(224,224,224);
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/28/2000';
		PaneWidth[False] := 64;
		NonworkingDays := 0;
		AllowLinkBars := True;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAutoEndInclusive;
		AllowZoomOnFly := EXG2ANTTLib_TLB.ZoomOnFlyEnum($fffffcc4 Or Integer(EXG2ANTTLib_TLB.exZoomOnFlyIncludeSelectedItems) Or Integer(EXG2ANTTLib_TLB.exZoomOnFlyBarsOnly) Or Integer(EXG2ANTTLib_TLB.exZoomOnFly) Or Integer(EXG2ANTTLib_TLB.exZoomOnFlyCtrl) Or Integer(EXG2ANTTLib_TLB.exZoomOnFlyShift));
		GridLineStyle := G2antt1.GridLineStyle;
		DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
		with Level[1] do
		begin
			DrawGridLines := True;
			GridLineColor := G2antt1.GridLineColor;
		end;
	end;
	EndUpdate();
end
2283
How can I display the "<%ddd%> <%d%> <%mmm%>" format followed by number of working-days when using the DateTickerLabel property (method 4, locale)

with G2antt1 do
begin
	BeginUpdate();
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVertical);
	Background[EXG2ANTTLib_TLB.exDateTickerLabelVAlign] := $1;
	Columns.Add('Tasks');
	with Chart do
	begin
		Bars.Add('Task:Split').Shortcut := 'Task';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarKeepWorkingCount] := OleVariant(True);
		PaneWidth[False] := 96;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		FirstVisibleDate := '6/20/2005';
		LevelCount := 2;
		DrawDateTicker := True;
		DateTickerLabel := '<%=value format `ddd dd`%><fgcolor 808080><%=(value=end?` (` + (wcount) + `wd)`:``)%>';
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','6/21/2005','6/28/2005',Null,Null);
		AddBar(AddItem('Task 2'),'Task','6/28/2005','7/1/2005',Null,Null);
	end;
	EndUpdate();
end
2282
How can I display the "<%ddd%> <%d%> <%mmm%>" format followed by number of days when using the DateTickerLabel property (method 4, locale)

with G2antt1 do
begin
	BeginUpdate();
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVertical);
	Background[EXG2ANTTLib_TLB.exDateTickerLabelVAlign] := $1;
	Columns.Add('Tasks');
	with Chart do
	begin
		PaneWidth[False] := 96;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		FirstVisibleDate := '6/20/2005';
		LevelCount := 2;
		DrawDateTicker := True;
		DateTickerLabel := '<%=value format `ddd dd`%><fgcolor 808080><%=(value=end?` (` + (end-start) + `d)`:``)%>';
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','6/21/2005','6/28/2005',Null,Null);
		AddBar(AddItem('Task 2'),'Task','6/28/2005','7/1/2005',Null,Null);
	end;
	EndUpdate();
end
2281
How can I display the "<%ddd%> <%d%> <%mmm%>" format followed by number of days when using the DateTickerLabel property (method 3, english locale)

with G2antt1 do
begin
	BeginUpdate();
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVertical);
	Background[EXG2ANTTLib_TLB.exDateTickerLabelVAlign] := $1;
	Columns.Add('Tasks');
	with Chart do
	begin
		PaneWidth[False] := 96;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		FirstVisibleDate := '6/20/2005';
		LevelCount := 2;
		DrawDateTicker := True;
		DateTickerLabel := '<%=(0 array (0:=(longdate(date(value)) split `,`)) left 3) + ` ` +  ((2 array ((1 array =:0) split ` `)) lpad `00`) + (value=end' + 
	'?` (` + (end-start) + `d)`:``)%>';
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','6/21/2005','6/28/2005',Null,Null);
		AddBar(AddItem('Task 2'),'Task','6/28/2005','7/1/2005',Null,Null);
	end;
	EndUpdate();
end
2280
How can I display the "<%ddd%> <%d%> <%mmm%>" format for start and end margins, but end margin should display one day before followed by the number of days

with G2antt1 do
begin
	BeginUpdate();
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVertical);
	Background[EXG2ANTTLib_TLB.exDateTickerLabelVAlign] := $1;
	Columns.Add('Tasks');
	with Chart do
	begin
		PaneWidth[False] := 96;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		FirstVisibleDate := '6/20/2005';
		LevelCount := 2;
		DrawDateTicker := True;
		DateTickerLabel := '<%=(weekday(0:=(value-(value=end?1:0))) array ''Sun Mon Tue Wed Thu Fri Sat'' split '' '') + ` ` + day(=:0) + ` ` + ((month(=:0) - 1' + 
	') array ''Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'' split '' '') + (value=end?` (` + (end-start) + `d)`:``)%>';
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','6/21/2005','6/28/2005',Null,Null);
		AddBar(AddItem('Task 2'),'Task','6/28/2005','7/1/2005',Null,Null);
	end;
	EndUpdate();
end
2279
How can I display the "<%ddd%> <%d%> <%mmm%>" format followed by number of days when using the DateTickerLabel property (method 2)

with G2antt1 do
begin
	BeginUpdate();
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVertical);
	Background[EXG2ANTTLib_TLB.exDateTickerLabelVAlign] := $1;
	Columns.Add('Tasks');
	with Chart do
	begin
		PaneWidth[False] := 96;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		FirstVisibleDate := '6/20/2005';
		LevelCount := 2;
		DrawDateTicker := True;
		DateTickerLabel := '<%ddd%> <%d%> <%mmm%><%=(value=end?` (` + (end-start) + `d)`:``)%>';
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','6/21/2005','6/28/2005',Null,Null);
		AddBar(AddItem('Task 2'),'Task','6/28/2005','7/1/2005',Null,Null);
	end;
	EndUpdate();
end
2278
How can I display the "<%ddd%> <%d%> <%mmm%>" format followed by number of days when using the DateTickerLabel property (method 1)

with G2antt1 do
begin
	BeginUpdate();
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVertical);
	Background[EXG2ANTTLib_TLB.exDateTickerLabelVAlign] := $1;
	Columns.Add('Tasks');
	with Chart do
	begin
		PaneWidth[False] := 96;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		FirstVisibleDate := '6/20/2005';
		LevelCount := 2;
		DrawDateTicker := True;
		DateTickerLabel := '<%=(weekday(value) array ''Sun Mon Tue Wed Thu Fri Sat'' split '' '') + ` ` + day(value) + ` ` + ((month(value) - 1) array ''Jan Feb ' + 
	'Mar Apr May Jun Jul Aug Sep Oct Nov Dec'' split '' '') + (value=end?` (` + (end-start) + `d)`:``)%>';
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','6/21/2005','6/28/2005',Null,Null);
		AddBar(AddItem('Task 2'),'Task','6/28/2005','7/1/2005',Null,Null);
	end;
	EndUpdate();
end
2277
How can I display just the end-margin when user resizes the bar

with G2antt1 do
begin
	BeginUpdate();
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVertical);
	Background[EXG2ANTTLib_TLB.exDateTickerLabelVAlign] := $1;
	Columns.Add('Tasks');
	with Chart do
	begin
		PaneWidth[False] := 96;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		FirstVisibleDate := '6/20/2005';
		LevelCount := 2;
		DrawDateTicker := True;
		DateTickerLabel := '<%=value=start?``:value%>';
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','6/21/2005','6/28/2005',Null,Null);
		AddBar(AddItem('Task 2'),'Task','6/23/2005','7/3/2005',Null,Null);
	end;
	EndUpdate();
end
2276
Is it possible to include the number of days (duration in days, hours, minutes) within the date-label

with G2antt1 do
begin
	BeginUpdate();
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVertical);
	Background[EXG2ANTTLib_TLB.exDateTickerLabelVAlign] := $1;
	Columns.Add('Tasks');
	with Chart do
	begin
		PaneWidth[False] := 96;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		ResizeUnitScale := EXG2ANTTLib_TLB.exHour;
		FirstVisibleDate := '6/20/2005';
		LevelCount := 2;
		DrawDateTicker := True;
		DateTickerLabel := '<%=date(value=end?value-1:value)%><fgcolor 666666><off -4><%=value=end?` ` + ((1:=int(0:= end - start)) != 0 ? (=:1 + '' day(s)'')' + 
	' : '''') + (=:1 ? '' '' : '''' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != 0 ? =:1 + '' hour(s) '' : '''' ) + ((1:=round((=:0 - =' + 
	':1)*60)) != 0 ? =:1 + '' min(s)'' : ''''):``%>';
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','6/21/2005','6/28/2005',Null,Null);
		AddBar(AddItem('Task 2'),'Task','6/23/2005','7/3/2005',Null,Null);
	end;
	EndUpdate();
end
2275
Is it possible to include the number of days within the date-label

with G2antt1 do
begin
	BeginUpdate();
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVertical);
	Background[EXG2ANTTLib_TLB.exDateTickerLabelVAlign] := $1;
	Columns.Add('Tasks');
	with Chart do
	begin
		PaneWidth[False] := 96;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		FirstVisibleDate := '6/20/2005';
		LevelCount := 2;
		DrawDateTicker := True;
		DateTickerLabel := '<%mmm%> <%d%><fgcolor 808080><%=value=end?` (`+(end - start) + ` days)`:``%>';
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','6/21/2005','6/28/2005',Null,Null);
		AddBar(AddItem('Task 2'),'Task','6/23/2005','7/3/2005',Null,Null);
	end;
	EndUpdate();
end
2274
Is it possible to show the date-label with the bar being created, moved or resized instead below the header-bar

with G2antt1 do
begin
	BeginUpdate();
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVertical);
	Background[EXG2ANTTLib_TLB.exDateTickerLabelVAlign] := $1;
	Columns.Add('Tasks');
	with Chart do
	begin
		PaneWidth[False] := 96;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		FirstVisibleDate := '6/20/2005';
		LevelCount := 2;
		DrawDateTicker := True;
		DateTickerLabel := '<%mmm%> <%d%>';
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','6/21/2005','6/28/2005',Null,Null);
		AddBar(AddItem('Task 2'),'Task','6/23/2005','7/3/2005',Null,Null);
	end;
	EndUpdate();
end
2273
Date-label customization

with G2antt1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABT0GACAADACAxRDAMgBQKAAzAJBIYhiGgcYCgMZBSDeCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADCOIwAFBIZhrE4ZRwGCQRRgyI43RhHUBzVI' + 
	'UBxDEaTZLlGY4NjSIYHThPMzyDRlEyBBqVKKoWLZMjiIY2RhJM7SBR0OROGQaRJrewZHDUMJiQjZVoVNTkNyxH6uYzoKSqVACLowTJNFZXDDkeR5JqcKBqChIEpKO5wR' + 
	'riAABVZoAA3Rq+AAuPBJIwYAAyXTIdTwThkBz3R6tchgOw7LxeZJpWbZOo0TgGFwTLDQNCifI7Vi6NJ1DdcKLNNx3tDBdpGXZ4JznGa8a7jN57dr+JQ7U6degACytKxL' + 
	'BeOprHMcA+GafxaAiBIUA0JgziGVJkGUGJIFyUYiBEN5VBsGxCEUEIcn0cAxBgWBijmM4Ekec57n0RwJBgBgCgCEZCC4BoBmAdBwgSApgkgMQcB8YQIEYERHAceBWBaB' + 
	'YRkGQgagaYY0HAaYHmICIBBwGJiEiFglEcBYYiYKoKhGQRCC6C5inQcBNgyYxIlIMoNGMWI2DCDAigiLgrgiYhohoHoIGIGBmByBwhEgXgXgOYQoEoCoDGCWAWAiAggA' + 
	'gDgDEcH5pGUHAoCWSR2F0cxOjSHQJEAQCAg=');
		Add(2,'CP:1 -2 -2 4 4');
	end;
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVertical);
	Background[EXG2ANTTLib_TLB.exDateTickerLabelBack] := $2000000;
	Background[EXG2ANTTLib_TLB.exDateTickerLabelFore] := $ffffff;
	Background[EXG2ANTTLib_TLB.exDateTickerLabelHAlign] := $1;
	Background[EXG2ANTTLib_TLB.exDateTickerLabelVAlign] := $1;
	Background[EXG2ANTTLib_TLB.exDateTickerLabelHMargin] := $4;
	Columns.Add('Tasks');
	with Chart do
	begin
		PaneWidth[False] := 96;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		FirstVisibleDate := '6/20/2005';
		LevelCount := 2;
		DrawDateTicker := True;
		DateTickerLabel := '<%mmm%><br><%d%>';
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','6/21/2005','6/28/2005',Null,Null);
		AddBar(AddItem('Task 2'),'Task','6/23/2005','7/3/2005',Null,Null);
	end;
	EndUpdate();
end
2272
How can I change the visual appearance for the date-label (EBN)

with G2antt1 do
begin
	BeginUpdate();
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABaICg6AADACAxRDAMgBQKAAzAJBIYhiGgcYCgMZBSDeCYXABCEYRXBIZQ7BKNIxjSJwFiCCQwSDKEjyCKcGRHF6MI6gOYpCgOIYjRJNIASVA' + 
	'ceAAGaUZrjSgobjmOYhAJCL70WAFFr/DCgZThGgJHomMIhAhHAJwTQ8EytJqmKajCaRSDUJZkWZOIyjBd6a5tVbXEaVTAccxhOKeahvGo5Fred40TRINCWHI1d4NH69J' + 
	'bwMLbSgMIKFABXdhWFC+Ex9Kiea7kOqIJwyA5bY5kGRWDRkLzROAALJ1Cz7KqydpDYyAGbABagAYfPy8JzxHKNarfA5GZzuG4zdi8U41WCBdpnHQNS4KL6ndBbWrdFoi' + 
	'C8X4QnAOQ8B4dp6BONQoBoTBnEOKZIkoMYQi2JZECIb4mDYNoEgoIQ8k2PIIDEGBAEuO4UmcF5xHufgqiACAGAKAJfmKdJogGWRAACbYCk0KA0mCA5OFgRgSgSYRIDyY' + 
	'AymGCAsm0QhNAgdJmgeX5DgiYYImISIWCaCBhCMUgqEITJIjSZ4Lk4OJGDKDJjEiVgvDmYpTDILILGAc4gmSD5kAkBhChCY5YmYOwzA6GQmBSEpkkgShJDoZBkA4OQ6i' + 
	'USB+FaFZlgkZJmhUDopEQAIOE6OYGDeGJmEmFg3hgTo5HoYIYGOWY2G6G9cCIaoLE6SZWE+HZngmZhPh1YJMkyBolkoBoCiCZbBn4O4ogmIoKiKaJJiKCA7ieY4+hKHw' + 
	'pEoVoW3MI4+H4PApkgaoeieagIGqHF3jocoPimaoKiaD4omeY5Gi6JhrAqRoyiYapjkYfg8iuCoOjqLprkqDo4DzcROkKLRsEsFpG4+I5OH4PQskqfpOjObQKn6TA9XE' + 
	'VpWjIbYLGaWoyG0Y5WlWNYtDuBpijibQ7HYfg9i6Cx2mqOpuksdpoD3cRenKO5vEuVp26wI5eH4PgvkuZp+j+cALmafA+XEZwGkCcIMCcCpAnAY5mH4PoxAwNwSkScRM' + 
	'DcEA+jCfBfBqRpxkwdwYgsZBzm8IpInITIXCaSdxHMKpKnKTI3C6S4lmgNJSkCT5slcNpNnODJnAMNZzkQJpvDYdAMDUTpQnQRQ7A2UANhuPRKFKZJ4iiVIOHUDRGDmU' + 
	'4higJJrGuQAEAQgI');
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVertical);
	Background[EXG2ANTTLib_TLB.exDateTickerLabelBack] := $1000000;
	Background[EXG2ANTTLib_TLB.exDateTickerLabelFore] := $a0a0a;
	Columns.Add('Tasks');
	with Chart do
	begin
		PaneWidth[False] := 96;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		FirstVisibleDate := '6/20/2005';
		LevelCount := 2;
		DrawDateTicker := True;
		DateTickerLabel := ' <%mmm%> <%d%>';
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','6/21/2005','6/28/2005',Null,Null);
		AddBar(AddItem('Task 2'),'Task','6/23/2005','7/3/2005',Null,Null);
	end;
	EndUpdate();
end
2271
How can I change the visual appearance for the date-label (solid colors)

with G2antt1 do
begin
	BeginUpdate();
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVertical);
	Background[EXG2ANTTLib_TLB.exDateTickerLabelBack] := $1;
	Background[EXG2ANTTLib_TLB.exDateTickerLabelFore] := $ffffff;
	Columns.Add('Tasks');
	with Chart do
	begin
		PaneWidth[False] := 96;
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		FirstVisibleDate := '6/20/2005';
		LevelCount := 2;
		DrawDateTicker := True;
		DateTickerLabel := '<%mmm%> <%d%>';
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','6/21/2005','6/28/2005',Null,Null);
		AddBar(AddItem('Task 2'),'Task','6/23/2005','7/3/2005',Null,Null);
	end;
	EndUpdate();
end
2270
Expandable-caption

// AnchorClick event - Occurs when an anchor element is clicked.
procedure TForm1.G2antt1AnchorClick(ASender: TObject; AnchorID : WideString;Options : WideString);
begin
	with G2antt1 do
	begin
		OutputDebugString( AnchorID );
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	TreeColumnIndex := -1;
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	BackColorAlternate := RGB(240,240,240);
	ShowFocusRect := False;
	Columns.Add('Default');
	with Items do
	begin
		AddItem('before item');
		h := AddItem('<solidline> <c><b>Bank Account 1</b></solidline><br>+ owner: String <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAA+AAgAECMcTi4AMwAM4A' + 
	'jMGhEGOUVAA4AAwk8plcqihwAElg0wiUlOkOiUEgQvgcFhsKhkIhUQiUUnccj0gn0jmMagUlowAMNOpEfkMNkkmlEqrctjQmAAjAA5AA2sssHcbnkdq1Ln1QtVSjQAAE' + 
	'BA==>▲</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;e64=gA8ABjAA+AECMwAM8DA' + 
	'BvABshoAOQAEAAHAAGEWjEajMGNoAMoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAEBA==>&#' + 
	'9650;</a><br>+ withdraw(amount: Currency)');
		CellValueFormat[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML;
		CellSingleLine[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exCaptionWordWrap;
		h := AddItem('<solidline> <c><b>Bank Account 2</b><br> <c><fgcolor 808080>properties</solidline><a 1;e64=gArAAgABvAB3ABuABlAByAA6gYAKYAOkNABph' + 
	'IAM8RHgAMMRGIAHcLAA2AA0AA9jQAIIAHEsABCAB6mEyO01ABznBwnBrlcvJU4Os4NkwlsClstjctIoAIYAJoAMYAKkXk8wqMIltRlEtNVQABHABoAFNsRPABVABWo1X' + 
	'pMHAE+l88otTONWslasoAosbGFwjFqoton1owN7jZRAE3jdTI1jnIAJeQnxJyFqxWHtUKqdTr9/jcKv9fNtgj8bwUFuFbABOAFonlNM1xsGun0+0tFpt3h1TitfxWlt9' + 
	'ft41toyyM6nRIqQAMUZnxkAF3kJMjMhxUVtkT4FtpsylsqlQ+AEdh3kEwAEYAHMlAHGv8jjovjwA8kd5/n8uRg1FjDpP8jKGPIgSCOej6io+ziSIgginqGhyHIZBY8oi' + 
	'lSCL++b+L4q0AKshUBgBESAgA==><r>▼</a></fgcolor><br><c><fgcolor 808080>methods</fgcolor><r><a 2;e64=gArAAgABkABlABwABvABzABp' + 
	'AB0AAoABhABthYAOoAN0RAA6gYAIcaAByksHjgAMYAPIAFIAHkVkIyAA7lA2AA0AA9ABnABBAA4n4AIQANVDoECoBFkQAJoAO9Dp9CIlDop2q0NABojNAJ4AKNDplAoB' + 
	'IpAAI4AphXo1qmVHp9pJ1dp10r8+oFzphSut4AFfldmsgArFLABKrcqt1cGFgxONKk9AGNkcYNYAON1p5GABsABVklcy54h91yMQhxYttzkdHy84plRwxZodmJNDtIxu' + 
	'tH2g3zufrUdy9RrlCF8p0Ejz2XGuS2ViolDnk8H0wk/VEwAEYAHIAnHNxs2mPHi3VmJi64AgUEqMQiVcg0mi1RikWjEMjcdiUggkjjaTJMhCOpWlqXgAACAg><fgcolo' + 
	'r 808080>▼</fgcolor></a>');
		CellValueFormat[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML;
		CellSingleLine[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exCaptionWordWrap;
		AddItem('after item');
	end;
	EndUpdate();
end
2269
Expandable-caption

with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	TreeColumnIndex := -1;
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	BackColorAlternate := RGB(240,240,240);
	ShowFocusRect := False;
	Columns.Add('Default');
	with Items do
	begin
		AddItem('before item');
		h := AddItem('<solidline><b>Header</b></solidline><br>Line1<r><a ;exp=show lines>+</a><br>Line2<br>Line3');
		CellValueFormat[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML;
		CellSingleLine[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exCaptionWordWrap;
		AddItem('after item');
	end;
	EndUpdate();
end
2268
Can I change the pattern for a specific bar only
with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '12/31/2009';
		LevelCount := 2;
		PaneWidth[False] := 96;
		with Bars.Item['Task'] do
		begin
			StartColor := $ffffff;
			EndColor := Color;
		end;
	end;
	Columns.Add('Types');
	with Items do
	begin
		AddBar(AddItem('Original'),'Task','1/4/2010','1/9/2010','',Null);
		h := AddItem('W/h Pattern');
		AddBar(h,'Task','1/4/2010','1/9/2010','',Null);
		ItemBar[h,'',EXG2ANTTLib_TLB.exBarPattern] := OleVariant(6);
		AddBar(AddItem('Original'),'Task','1/4/2010','1/9/2010','',Null);
	end;
	EndUpdate();
end
2267
Force hover-all feature
with G2antt1 do
begin
	Background[EXG2ANTTLib_TLB.exScrollHoverAll] := $ffffffff;
end
2266
Disable hover-all feature (Windows 11 or greater)
with G2antt1 do
begin
	Background[EXG2ANTTLib_TLB.exScrollHoverAll] := $1;
end
2265
I'm using the Milestone bar type, but find it to small and want to enlarge it. I can change the bar height, but then the shape gets a bit distorted (e.g. it doesn't scale properly)

with G2antt1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABJYCg6AADACAxRDgMQBQKAAzQFAYZhmGSGAAGIZhXgmFgAQhFcZQSKUOQTDKMIRfeQwAiNf4hQKBMIjKKAShaHCVIDlSThYAKCQxDZNUCQXD' + 
	'cdRRDaBR7hGgoaj6JolSRFUgSABEEigNIxToOU4jFgeCR2C7AZBEbTENBtBIUKDsKA4IBiFxAVjQFpSNZlWzdN64LhuK47UrWbYiXZeN5XXblaTxPrAMBwKzrLwPBqHX' + 
	'rfeIYXhlDzVC7GchxTCsSxXCaPY7lWZZPRGN49ODMNBibL9EwSA6laToWpRVpGSYpVrGdT2KgNQxbL61YLse5ZTrGF5vXrONz4LBeAwHP7FXLwfJaVxFeaPZq7eT6LRf' + 
	'EKa5PmgdJ7DuLotkeL5Am0eA4F2ToOHeK5hnOco8HIfQ/GOUZumWeY9h2fx/lOJ5Im8bY+j+LpWnecYxH6YAHgWMB/hgeAGAYe4aheSZ5gGYJICGG4BByaA2BIfRgjYR' + 
	'gTgWihaAobhhggdgBG+IY1nYHoImCRgaBAeQiEiJgHHGIgVnoKoLmEOBFmUchjAiVgYF4XZoloOoImKaJNGyDpkAiJZdggZAZBYLxphmWQaEqDRYmkLhOhEZJZD4UoMF' + 
	'SGJ6FOFZhheEhDhYJZHGYW4PGWWYFlSDQjmkbhi0WBZaCcepmgmBgygsJtLHCCYnBkBh0hkWAJlYMIICeBgKHqBxhimdh3h+ZYWEoa4MigR4hh6IZnhoJheGuIpYD6Dh' + 
	'umAOhFh+JJaCedoWgIaYGg2RYjCgahNnGIIbgmaZqigKI5jmaoVGqOIiEuKxjnobZjhGKwJCKNRoCSSpejaLorggeo8i8a51koVIwFaeoijOIRsEsApJhgIArC4ZIzia' + 
	'Kg+lCM5tDsRoUjUXRqkqWIrhuSxulmKQtmkIYsjgY4LGqZIum4e4UAAOpRBQJQBICA==');
		Add(2,'CP:1 1 1 11 -2');
	end;
	DefaultItemHeight := 32;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	Columns.Add('Task');
	with Chart do
	begin
		LevelCount := 2;
		PaneWidth[False] := 128;
		FirstVisibleDate := '1/1/2001';
		with Bars.Item['Milestone'] do
		begin
			Height := 24;
			Color := $2000000;
		end;
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Milestone','1/2/2001','1/2/2001',Null,Null);
	end;
	EndUpdate();
end
2264
I'm using the Milestone bar type, but find it to small and want to enlarge it. I can change the bar height, but then the shape gets a bit distorted (e.g. it doesn't scale properly)

with G2antt1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABXYCg6AADACAxRDgMQBQKAAzQFAYZhmGSGAAGIZhXgmFgAQhFcZQSKUOQTDKMIRfeQwAiNf4hQKBMIjKKAShaHCVIDlSThYAKCQxDZNUCDND' + 
	'YAR1FCeQACCCaDgOII/SZJMiRNIEQARBIoDRMM5DVLIZYHQjCcBkERtNQvHiBRQoSw6GAAGIaRDQMZSNZlWxMfx9XyeBoVeapFhbO4mZavEyCeTgfS3MBwLA3XZxTTxK' + 
	'IaD6KASbepEKh6VDNF52bYrA6XWy/T6PW7GDLmUY1H5UQpnfR4Uj/JyUT7KIS7bpMNTOWYfZ7XcxibKaZw2LDvIoxWL6UosH7UEpXfR/RLGcIVL7KKTLbpQNp8GwYXJW' + 
	'AMBJ+mubB3gaV5qhyNp/FIFhfmoLgPg+RZkmCeA7gWN46iSXJ4G2Mh6m+ax7nGdJ4G6MxegoXpaiSPJ/CmRZTnyJR3iAOAKASAZgGOfImBcD5iigXx7B6ZhVHAPhPHMW' + 
	'JDD0CohkSfQrEYE58ioGAPnKJBfggYg4goJIJmIaImCOA8gjQYg9kqMZAngNQMAOSIrByT5CmAcA/ksMYon8K4GEOfIsBjLQuESEYkFkHhKhIZJJCCLQYk+YpEGZNhBk' + 
	'SbgrkeM7viIT5zBCAA/kucZsn8LxHHOfI4BwT5ylQbU9kGLJ/CyBoJj4cYcCcKZUjYGwPkMDDlkqcZhgUMwPBKaIID8DQSReMoIVYRQgmiIgIn8MJlnMCB+VKaYUjpOx' + 
	'ylgboaEbQQ3BuD5TBgfg8kuAgMncbobgOYJjDWTwCmCB1oGIVJ/DQCQDnyTAjCsYgujkP5MjqaJKhcDIaCSRwg3eMIGDyCxyAieA3k0FxRG8dgOCMVJxC8CJTnCVwmg+' + 
	'cxchgP5NCIUpcjeLZbHyfw1gkexYhteZSDjkQNAeSYDGyT5LCyUQ8EvL58DeSkrFwJ+ZmSG4/G+cxsh0PxNkKDJ0C+CQGkWOBthadpQniNBtDIMJ8DiSlWGMKYPnOCIm' + 
	'D8TgiiidI6GyO41huQwdGcYorj1g5smIKZPkOBweC+SQjmCYA0i6bIRjYbgYFMNJvC0CBLCCCA9k2Iwik6SQOjWJQDEAQCAg');
		Add(2,'CP:1 -6 0 20 0');
	end;
	DefaultItemHeight := 32;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	Columns.Add('Task');
	with Chart do
	begin
		LevelCount := 2;
		PaneWidth[False] := 128;
		FirstVisibleDate := '1/1/2001';
		with Bars.Item['Milestone'] do
		begin
			Height := 28;
			Color := $2000000;
		end;
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Milestone','1/2/2001','1/2/2001',Null,Null);
	end;
	EndUpdate();
end
2263
I'm using the Milestone bar type, but find it to small and want to enlarge it. I can change the bar height, but then the shape gets a bit distorted (e.g. it doesn't scale properly)

with G2antt1 do
begin
	BeginUpdate();
	DefaultItemHeight := 32;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	Columns.Add('Task');
	with Chart do
	begin
		LevelCount := 2;
		PaneWidth[False] := 128;
		FirstVisibleDate := '1/1/2001';
		Bars.Item['Milestone'].Height := 28;
	end;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Milestone','1/2/2001','1/2/2001',Null,Null);
	end;
	EndUpdate();
end
2262
Display the bar's tooltip at runtime

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		ShowToolTip(Chart.BarFromPoint[-1,-1],Null,Null,Null,Null);
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Def');
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
		PaneWidth[False] := 64;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2010';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarToolTip] := '...';
	end;
	with Items do
	begin
		h := AddItem('Task');
		AddBar(h,'Task','1/2/2010','1/5/2010','A','A');
		AddBar(h,'Task','1/5/2010','1/8/2010','B','B');
	end;
	EndUpdate();
end
2261
Includes the cell's state and user-data to bar's tooltip

with G2antt1 do
begin
	BeginUpdate();
	(IUnknown(Columns.Add('Def')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True);
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
		PaneWidth[False] := 96;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2010';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarToolTip] := '<%=%C0%><br>Start: <%=%1%><br>End: <%=%2%><br>State: <b><%=%CS0%></b><br>UserData: <b><%=%CD0%></b>';
	end;
	with Items do
	begin
		h := AddItem('Machine 1');
		CellState[OleVariant(h),OleVariant(0)] := 1;
		CellData[OleVariant(h),OleVariant(0)] := 'just some data';
		AddBar(h,'Task','1/2/2010','1/5/2010','A','A');
		h := AddItem('Machine 2');
		AddBar(h,'Task','1/2/2010','1/5/2010','B','B');
		CellData[OleVariant(h),OleVariant(0)] := 'just nother data';
	end;
	EndUpdate();
end
2260
Shows the tooltip of the object moved relative to its default position

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		ShowToolTip('<null>','<null>',Null,'+8','+8');
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Def');
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
		PaneWidth[False] := 64;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2010';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarToolTip] := '<b><%=%C0 + ` ` + %9%></b><br>Start: <b><%=%1%></b><br>End: <b><%=%2%></b>';
	end;
	with Items do
	begin
		h := AddItem('Task');
		AddBar(h,'Task','1/2/2010','1/5/2010','A','A');
		AddBar(h,'Task','1/5/2010','1/8/2010','B','B');
	end;
	EndUpdate();
end
2259
Adds, changes or replaces the title of the object's tooltip

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		ShowToolTip('<null>',Chart.BarFromPoint[-1,-1],Null,Null,Null);
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Def');
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
		PaneWidth[False] := 64;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2010';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarToolTip] := '<b><%=%C0 + ` ` + %9%></b><br>Start: <b><%=%1%></b><br>End: <b><%=%2%></b>';
	end;
	with Items do
	begin
		h := AddItem('Task');
		AddBar(h,'Task','1/2/2010','1/5/2010','A','A');
		AddBar(h,'Task','1/5/2010','1/8/2010','B','B');
	end;
	EndUpdate();
end
2258
Adds, changes or replaces the object's tooltip

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		ShowToolTip(Chart.BarFromPoint[-1,-1],Null,Null,Null,Null);
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Def');
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
		PaneWidth[False] := 64;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2010';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarToolTip] := '<b><%=%C0 + ` ` + %9%></b><br>Start: <b><%=%1%></b><br>End: <b><%=%2%></b>';
	end;
	with Items do
	begin
		h := AddItem('Task');
		AddBar(h,'Task','1/2/2010','1/5/2010','A','A');
		AddBar(h,'Task','1/5/2010','1/8/2010','B','B');
	end;
	EndUpdate();
end
2257
Shows a new tooltip and title at current position

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		ShowToolTip('new content','new title',Null,Null,Null);
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Def');
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
		PaneWidth[False] := 64;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2010';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarToolTip] := '<b><%=%C0 + ` ` + %9%></b><br>Start: <b><%=%1%></b><br>End: <b><%=%2%></b>';
	end;
	with Items do
	begin
		h := AddItem('Task');
		AddBar(h,'Task','1/2/2010','1/5/2010','A','A');
		AddBar(h,'Task','1/5/2010','1/8/2010','B','B');
	end;
	EndUpdate();
end
2256
Shows a new tooltip and title moved relative to the current position

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		ShowToolTip('new content','new title',Null,'+8','+8');
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Def');
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
		PaneWidth[False] := 64;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2010';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarToolTip] := '<b><%=%C0 + ` ` + %9%></b><br>Start: <b><%=%1%></b><br>End: <b><%=%2%></b>';
	end;
	with Items do
	begin
		h := AddItem('Task');
		AddBar(h,'Task','1/2/2010','1/5/2010','A','A');
		AddBar(h,'Task','1/5/2010','1/8/2010','B','B');
	end;
	EndUpdate();
end
2255
Displays a different tooltip at a fixed position
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		ShowToolTip('new content','',Null,OleVariant(128),OleVariant(128));
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Def');
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
		PaneWidth[False] := 64;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2010';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarToolTip] := '<b><%=%C0 + ` ` + %9%></b><br>Start: <b><%=%1%></b><br>End: <b><%=%2%></b>';
	end;
	with Items do
	begin
		h := AddItem('Task');
		AddBar(h,'Task','1/2/2010','1/5/2010','A','A');
		AddBar(h,'Task','1/5/2010','1/8/2010','B','B');
	end;
	EndUpdate();
end
2254
Hide the tooltip

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		ShowToolTip('','',Null,Null,Null);
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Def');
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
		PaneWidth[False] := 64;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2010';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarToolTip] := '<b><%=%C0 + ` ` + %9%></b><br>Start: <b><%=%1%></b><br>End: <b><%=%2%></b>';
	end;
	with Items do
	begin
		h := AddItem('Task');
		AddBar(h,'Task','1/2/2010','1/5/2010','A','A');
		AddBar(h,'Task','1/5/2010','1/8/2010','B','B');
	end;
	EndUpdate();
end
2253
I need 2 bars that are linked together and cannot be moved/splitted alone (moving one should move the two bars, like a « Group » of bars). How can I achieve that

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 96;
		LevelCount := 2;
	end;
	with Items do
	begin
		AddItem(Null);
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/5/2001 12:00:00 PM','1/7/2001','T1',Null);
		ItemBar[h1,'',EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18);
		AddBar(h1,'Task','1/3/2001','1/4/2001 12:00:00 PM','T2',Null);
		ItemBar[h1,'T2',EXG2ANTTLib_TLB.exBarColor] := OleVariant(255);
		GroupBars(h1,'T1',True,h1,'T2',True,OleVariant(27),OleVariant(0));
		AddItem(Null);
	end;
	EndUpdate();
end
2252
How can I show the tooltip programmatically ( I want to be able to set the tooltip content dynamically just before the tooltip start to appear, not using the exBarTooltip )
// ToolTip event - Fired when the control prepares the object's tooltip.
procedure TForm1.G2antt1ToolTip(ASender: TObject; Item : HITEM;ColIndex : Integer;var Visible : WordBool;var X : Integer;var Y : Integer;CX : Integer;CY : Integer);
begin
	with G2antt1 do
	begin
		ShowToolTip(Chart.BarFromPoint[-1,-1],Null,Null,Null,Null);
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Def');
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exNoCreateBar;
		PaneWidth[False] := 64;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2010';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarToolTip] := '...';
	end;
	with Items do
	begin
		h := AddItem('Task');
		AddBar(h,'Task','1/2/2010','1/5/2010','A','A');
		AddBar(h,'Task','1/5/2010','1/8/2010','B','B');
		AddBar(h,'Task','1/8/2010','1/11/2010','C','C');
		GroupBars(h,'A',False,h,'B',True,OleVariant(39),Null);
		GroupBars(h,'B',False,h,'C',True,OleVariant(39),Null);
	end;
	EndUpdate();
end
2251
I'd like to move itembars from one item to another, using .Chart.Bars("Task").Def(exBarCanMoveToAnother) = True this works for any new bar. The question is how can I specify this feature for bars already created

with G2antt1 do
begin
	BeginUpdate();
	DefaultItemHeight := 32;
	DrawGridLines := EXG2ANTTLib_TLB.exRowLines;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	with Chart do
	begin
		LevelCount := 2;
		DrawGridLines := EXG2ANTTLib_TLB.exRowLines;
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
		AllowLinkBars := False;
		with Bars.Item['Task'] do
		begin
			OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsCascade;
			Def[EXG2ANTTLib_TLB.exBarCaption] := 'only horizontal';
			Def[EXG2ANTTLib_TLB.exBarCaptionVOffset] := OleVariant(18);
			Def[EXG2ANTTLib_TLB.exBarCanMoveToAnother] := OleVariant(True);
		end;
	end;
	Columns.Add('Column');
	with Items do
	begin
		AddBar(AddItem('Item 1'),'Task','1/3/2001','1/5/2001','A',Null);
		AddBar(AddItem('Item 2'),'Task','1/4/2001','1/6/2001','B',Null);
		AddBar(AddItem('Item 3'),'Task','1/3/2001','1/5/2001','C',Null);
		ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarCanMoveToAnother] := OleVariant(False);
	end;
	EndUpdate();
end
2250
I'd like to move itembars from one item to another, using .Chart.Bars("Task").Def(exBarCanMoveToAnother) = True this works for any new bar. The question is can I disable this for particular item-bars

with G2antt1 do
begin
	BeginUpdate();
	DefaultItemHeight := 32;
	DrawGridLines := EXG2ANTTLib_TLB.exRowLines;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	with Chart do
	begin
		LevelCount := 2;
		DrawGridLines := EXG2ANTTLib_TLB.exRowLines;
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
		AllowLinkBars := False;
		with Bars.Item['Task'] do
		begin
			OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsCascade;
			Def[EXG2ANTTLib_TLB.exBarCaption] := 'anywhere';
			Def[EXG2ANTTLib_TLB.exBarCaptionVOffset] := OleVariant(18);
			Def[EXG2ANTTLib_TLB.exBarCanMoveToAnother] := OleVariant(True);
		end;
	end;
	Columns.Add('Column');
	with Items do
	begin
		AddBar(AddItem('Item 1'),'Task','1/3/2001','1/5/2001','A',Null);
		h := AddItem('Item 2');
		AddBar(h,'Task','1/4/2001','1/6/2001','B','only horiontal');
		ItemBar[h,'B',EXG2ANTTLib_TLB.exBarCanMoveToAnother] := OleVariant(False);
		AddBar(AddItem('Item 3'),'Task','1/3/2001','1/5/2001','C',Null);
	end;
	EndUpdate();
end
2249
I need the top row to display months, while the second to show units in weeks, but can 10 by 10 days days. Is it possible

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		PaneWidth[False] := 0;
		DrawGridLines := EXG2ANTTLib_TLB.exVLines;
		FirstVisibleDate := '1/1/2001';
		UnitWidth := 30;
		LevelCount := 2;
		Level[0].Unit := EXG2ANTTLib_TLB.exMonth;
		with Level[1] do
		begin
			Unit := EXG2ANTTLib_TLB.exDay;
			Count := 10;
		end;
	end;
	EndUpdate();
end
2248
Limit the chart's margins when using the CopyTo method

with G2antt1 do
begin
	BeginUpdate();
	MarkSearchColumn := False;
	with Columns do
	begin
		Add('Tasks');
		with (IUnknown(Add('Start')) as EXG2ANTTLib_TLB.Column) do
		begin
			Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
			Editor.EditType := EXG2ANTTLib_TLB.SpinType;
		end;
		with (IUnknown(Add('End')) as EXG2ANTTLib_TLB.Column) do
		begin
			Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(2);
			Editor.EditType := EXG2ANTTLib_TLB.SpinType;
		end;
	end;
	with Chart do
	begin
		PaneWidth[False] := 196;
		LevelCount := 2;
		ShowEmptyBars := 1;
		FirstVisibleDate := '1/1/2009';
	end;
	with Items do
	begin
		AllowCellValueToItemBar := True;
		AddBar(AddItem('Task 1'),'Task','1/2/2009','1/7/2009',Null,Null);
		AddBar(AddItem('Task 2'),'Task','1/4/2009','1/9/2009',Null,Null);
	end;
	with Chart do
	begin
		StartPrintDate := '1/4/2009';
		EndPrintDate := '1/5/2009';
	end;
	var_CopyTo := CopyTo['c:/temp/xtest.pdf'];
	OutputDebugString( 'Look for C:\Temp\xtest.pdf file.' );
	EndUpdate();
end
2247
I want to always keep the bottom item stationary. It can always display even when scrolling vertically. The bar placed at the bottom item is must be movable to other items

with G2antt1 do
begin
	color := 15790320;
	BeginUpdate();
	Debug := True;
	HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	ShowLockedItems := True;
	with Chart do
	begin
		PaneWidth[False] := 128;
		LevelCount := 2;
		FirstVisibleDate := '12/31/2015';
		Bars.Item['Task'].Def[EXG2ANTTLib_TLB.exBarCanMoveToAnother] := OleVariant(True);
	end;
	Columns.Add('Column');
	with Items do
	begin
		LockedItemCount[EXG2ANTTLib_TLB.exTop] := 3;
		h := LockedItem[EXG2ANTTLib_TLB.exTop,0];
		ItemBackColor[h] := color;
		G2antt1.Chart.ItemBackColor[h] := color;
		CellValue[OleVariant(h),OleVariant(0)] := 'locked-top 1';
		AddBar(h,'Task','1/4/2016','1/8/2016','T1',Null);
		h := LockedItem[EXG2ANTTLib_TLB.exTop,1];
		ItemBackColor[h] := color;
		G2antt1.Chart.ItemBackColor[h] := color;
		CellValue[OleVariant(h),OleVariant(0)] := 'locked-top 2';
		AddBar(h,'Task','1/5/2016','1/9/2016','T2',Null);
		h := LockedItem[EXG2ANTTLib_TLB.exTop,2];
		SelectItem[h] := False;
		ItemDivider[h] := 0;
		ItemHeight[h] := 2;
		AddBar(AddItem('un-locked item 1'),'Task','1/4/2016','1/8/2016','T3',Null);
		AddBar(AddItem('un-locked item 2'),'Task','1/5/2016','1/9/2016','T4',Null);
		LockedItemCount[EXG2ANTTLib_TLB.exMiddle] := 3;
		h := LockedItem[EXG2ANTTLib_TLB.exMiddle,0];
		SelectItem[h] := False;
		ItemDivider[h] := 0;
		ItemHeight[h] := 2;
		h := LockedItem[EXG2ANTTLib_TLB.exMiddle,1];
		ItemBackColor[h] := color;
		G2antt1.Chart.ItemBackColor[h] := color;
		CellValue[OleVariant(h),OleVariant(0)] := 'locked-bottom 1';
		AddBar(h,'Task','1/4/2016','1/8/2016','T5',Null);
		h := LockedItem[EXG2ANTTLib_TLB.exMiddle,2];
		ItemBackColor[h] := color;
		G2antt1.Chart.ItemBackColor[h] := color;
		CellValue[OleVariant(h),OleVariant(0)] := 'locked-bottom 2';
		AddBar(h,'Task','1/5/2016','1/9/2016','T6',Null);
	end;
	EndUpdate();
end
2246
How can I get a cell that shows the sum of a column of minutes in hours + minutes format

with G2antt1 do
begin
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	with (IUnknown(Columns.Add('Minutes')) as EXG2ANTTLib_TLB.Column) do
	begin
		SortType := EXG2ANTTLib_TLB.SortNumeric;
		with Editor do
		begin
			EditType := EXG2ANTTLib_TLB.EditType;
			Numeric := EXG2ANTTLib_TLB.exInteger;
		end;
	end;
	with Items do
	begin
		AddItem(OleVariant(10));
		AddItem(OleVariant(20));
		AddItem(OleVariant(30));
		AddItem(OleVariant(40));
		AddItem(OleVariant(50));
		h := AddItem('sum(all,dir,dbl(%0))');
		SelectableItem[h] := False;
		SortableItem[h] := False;
		CellValueFormat[OleVariant(h),OleVariant(0)] := Integer(EXG2ANTTLib_TLB.exTotalField) Or Integer(EXG2ANTTLib_TLB.exHTML);
		CellHAlignment[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.RightAlignment;
		FormatCell[OleVariant(h),OleVariant(0)] := '''<b>HH:NN</b>: ''+ (int(value/60) lpad ''00'') + '':'' + ((value mod 60) lpad ''00'')';
	end;
	EndUpdate();
end
2245
Ensure that a bar fits the chart's visible area (unique keys)

with G2antt1 do
begin
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	with Chart do
	begin
		FirstVisibleDate := '3/26/2023';
		LevelCount := 2;
		PaneWidth[False] := 128;
	end;
	Columns.Add('Tasks');
	with Items do
	begin
		AddBar(AddItem('Task A'),'Task','1/2/2001','1/12/2001','T1',Null);
		AddBar(AddItem('Task B'),'Task','1/20/2001','1/31/2001','T2',Null);
		EnsureVisibleBar(0,'T1');
	end;
	EndUpdate();
end
2244
Ensure that a bar fits the chart's visible area

with G2antt1 do
begin
	BeginUpdate();
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	with Chart do
	begin
		FirstVisibleDate := '3/26/2023';
		LevelCount := 2;
		PaneWidth[False] := 128;
	end;
	Columns.Add('Tasks');
	with Items do
	begin
		h1 := AddItem('Task A');
		AddBar(h1,'Task','1/2/2001','1/12/2001','T1',Null);
		h2 := AddItem('Task B');
		AddBar(h2,'Task','1/20/2001','1/31/2001','T2',Null);
		EnsureVisibleBar(h1,'T1');
	end;
	EndUpdate();
end
2243
Is it possible to change the visual appearance for the frame to create newly bar by drag and drop

with G2antt1 do
begin
	BeginUpdate();
	VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
	Background[EXG2ANTTLib_TLB.exChartCreateBar] := $1000000;
	Background[EXG2ANTTLib_TLB.exCreateBarHeight] := $f;
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		PaneWidth[False] := 128;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2001';
		with Bars.Item['Task'] do
		begin
			Color := $1000000;
			Height := 15;
		end;
	end;
	Columns.Add('Column');
	with Items do
	begin
		AddBar(AddItem('Item 1'),'Task','1/2/2001','1/7/2001',Null,Null);
		AddBar(AddItem('Item 2'),'Task','1/6/2001','1/14/2001',Null,Null);
	end;
	EndUpdate();
end
2242
Highlight the match once the filter is applied

// FilterChange event - Occurs when the filter was changed.
procedure TForm1.G2antt1FilterChange(ASender: TObject; );
begin
	with G2antt1 do
	begin
		format := FormatABC('`lower(value) replace lower(''` + value + `'') with ''<bgcolor 000000><fgcolor FFFFFF>` + value  + `</fgcolor></bgcolor>''`',OleVariant(FilterBarPromptPattern),Null,Null);
		Columns.Item[OleVariant(0)].FormatColumn := format;
		Columns.Item[OleVariant(1)].FormatColumn := format;
		Columns.Item[OleVariant(2)].FormatColumn := format;
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	SelBackColor := BackColor;
	SelForeColor := ForeColor;
	ColumnAutoResize := True;
	ContinueColumnScroll := False;
	MarkSearchColumn := False;
	SearchColumnIndex := 1;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 23;
	BackColorLevelHeader := BackColor;
	FilterBarCaption := '`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)';
	FilterBarPromptVisible := Integer(EXG2ANTTLib_TLB.exFilterBarCompact) Or Integer(EXG2ANTTLib_TLB.exFilterBarCaptionVisible) Or Integer(EXG2ANTTLib_TLB.exFilterBarVisible) Or Integer(EXG2ANTTLib_TLB.exFilterBarPromptVisible);
	FilterBarBackColor := BackColor;
	FilterBarPromptPattern := 'and';
	with Columns do
	begin
		with (IUnknown(Add('Name')) as EXG2ANTTLib_TLB.Column) do
		begin
			Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1);
			FormatColumn := 'lower(value)';
		end;
		with (IUnknown(Add('Title')) as EXG2ANTTLib_TLB.Column) do
		begin
			Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1);
			FormatColumn := 'lower(value)';
		end;
		with (IUnknown(Add('City')) as EXG2ANTTLib_TLB.Column) do
		begin
			Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1);
			FormatColumn := 'lower(value)';
		end;
	end;
	with Items do
	begin
		h0 := AddItem('Nancy Davolio');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Andrew Fuller');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Vice President, Sales';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Tacoma';
		SelectItem[h0] := True;
		h0 := AddItem('Janet Leverling');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Kirkland';
		h0 := AddItem('Margaret Peacock');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Redmond';
		h0 := AddItem('Steven Buchanan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Manager';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Michael Suyama');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Robert King');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
		h0 := AddItem('Laura Callahan');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Inside Sales Coordinator';
		CellValue[OleVariant(h0),OleVariant(2)] := 'Seattle';
		h0 := AddItem('Anne Dodsworth');
		CellValue[OleVariant(h0),OleVariant(1)] := 'Sales Representative';
		CellValue[OleVariant(h0),OleVariant(2)] := 'London';
	end;
	EndUpdate();
end
2241
The count of filtered items includes the group-parents. How can I exclude them from count

with G2antt1 do
begin
	BeginUpdate();
	DrawGridLines := EXG2ANTTLib_TLB.exVLines;
	HeaderAppearance := EXG2ANTTLib_TLB.Flat;
	HeaderHeight := 24;
	SortBarHeight := 28;
	SortBarVisible := True;
	AllowGroupBy := True;
	Columns.Add('Col 1');
	Columns.Add('Col 2');
	with Items do
	begin
		CellValue[OleVariant(AddItem('219 Smith')),OleVariant(1)] := 'Ignacio 1234';
		CellValue[OleVariant(AddItem('1666 County Road 309A')),OleVariant(1)] := '897 Manassa';
		CellValue[OleVariant(AddItem('38 Lone Pine')),OleVariant(1)] := 'Durango 11';
		CellValue[OleVariant(AddItem('612 Jachim Street')),OleVariant(1)] := 'Lamar 222';
	end;
	Layout := 'MultipleSort="C1:1"';
	FilterBarCaption := '`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? leafitemcount + ` result(s)` : ``)';
	FilterBarPromptVisible := Integer(EXG2ANTTLib_TLB.exFilterBarCompact) Or Integer(EXG2ANTTLib_TLB.exFilterBarCaptionVisible) Or Integer(EXG2ANTTLib_TLB.exFilterBarVisible) Or Integer(EXG2ANTTLib_TLB.exFilterBarPromptVisible);
	FilterBarPromptType := Integer(EXG2ANTTLib_TLB.exFilterPromptCaseSensitive) Or Integer(EXG2ANTTLib_TLB.exFilterPromptContainsAll);
	FilterBarPromptPattern := '12';
	FilterBarBackColor := BackColor;
	EndUpdate();
end
2240
Is it possible to display the count of filtered items

with G2antt1 do
begin
	BeginUpdate();
	DrawGridLines := EXG2ANTTLib_TLB.exVLines;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	Columns.Add('Col 1');
	Columns.Add('Col 2');
	with Items do
	begin
		CellValue[OleVariant(AddItem('219 Smith')),OleVariant(1)] := 'Ignacio 1234';
		CellValue[OleVariant(AddItem('1666 County Road 309A')),OleVariant(1)] := '897 Manassa';
		CellValue[OleVariant(AddItem('38 Lone Pine')),OleVariant(1)] := 'Durango 11';
		CellValue[OleVariant(AddItem('612 Jachim Street')),OleVariant(1)] := 'Lamar 222';
	end;
	FilterBarCaption := '`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)';
	FilterBarPromptVisible := Integer(EXG2ANTTLib_TLB.exFilterBarCompact) Or Integer(EXG2ANTTLib_TLB.exFilterBarCaptionVisible) Or Integer(EXG2ANTTLib_TLB.exFilterBarVisible) Or Integer(EXG2ANTTLib_TLB.exFilterBarPromptVisible);
	FilterBarPromptType := Integer(EXG2ANTTLib_TLB.exFilterPromptCaseSensitive) Or Integer(EXG2ANTTLib_TLB.exFilterPromptContainsAll);
	FilterBarPromptPattern := '12';
	FilterBarBackColor := BackColor;
	EndUpdate();
end
2239
ADOR, MDB (JET)
// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM);
begin
	with G2antt1 do
	begin
		with Items do
		begin
			AddBar(Item,'Task',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],Null,Null);
		end;
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.mdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	with Chart do
	begin
		FirstVisibleDate := '8/4/1994';
		LevelCount := 2;
		PaneWidth[False] := 256;
	end;
	Items.AllowCellValueToItemBar := True;
	Columns.Item[OleVariant(2)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
	Columns.Item[OleVariant(4)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(2);
	EndUpdate();
end
2238
exOverlaidBarsOffset + exOverlaidBarTransparent + exBarCanMoveToAnother
with G2antt1 do
begin
	BeginUpdate();
	DefaultItemHeight := 22;
	DrawGridLines := EXG2ANTTLib_TLB.exRowLines;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	Columns.Add('Task');
	with Chart do
	begin
		DrawGridLines := EXG2ANTTLib_TLB.exRowLines;
		GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
		ResizeUnitScale := EXG2ANTTLib_TLB.exHour;
		PaneWidth[False] := 48;
		FirstVisibleDate := '1/1/2001';
		with Bars.Item['Task'] do
		begin
			OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsTransparent) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsOffset);
			Overlaid[EXG2ANTTLib_TLB.exOverlaidBarsTransparent] := OleVariant(70);
			Def[EXG2ANTTLib_TLB.exBarCanMoveToAnother] := OleVariant(True);
		end;
	end;
	ItemsAllowSizing := EXG2ANTTLib_TLB.exResizeItem;
	with Items do
	begin
		SelectableItem[AddItem(Null)] := False;
		h := AddItem('Task 1');
		AddBar(h,'Task','1/2/2001','1/4/2001','A1',Null);
		AddBar(h,'Task','1/3/2001','1/5/2001','A2',Null);
		AddBar(h,'Task','1/4/2001','1/7/2001','A3',Null);
		ItemHeight[h] := 64;
		h := AddItem('Task 2');
		AddBar(h,'Task','1/7/2001','1/10/2001','A4',Null);
		AddBar(h,'Task','1/8/2001','1/12/2001','A5',Null);
		SelectableItem[AddItem(Null)] := False;
	end;
	EndUpdate();
end
2237
Editors (ImageSize = 32)

with G2antt1 do
begin
	BeginUpdate();
	ImageSize := 32;
	DefaultItemHeight := 36;
	HeaderHeight := DefaultItemHeight;
	SortBarHeight := DefaultItemHeight;
	Font.Size := 16;
	FilterBarFont.Size := G2antt1.Font.Size;
	ToolTipFont.Size := G2antt1.Font.Size;
	Indent := 26;
	Images('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');
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABfICg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6' + 
	'CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM' + 
	'RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsOatVqjG5sYjcGC3La9cz3Pq/bpuDCbMxuaK1TrYXr1TTrcofBDldAxXRKDxR' + 
	'DWVhLnYOw9i6XxzjuXprCaOoKB6EwbiCZZCGOdZYlcT4xHmbhMnwNxtn+G5bmqdZ7n4Pw/i+X5zm+dQ9g4CAFjsfAJheOI8HsDoWDWTB/lwSAQkmA5PEgRYoDyDwYFYF' + 
	'oFmGCBmBqBphDgRJ0gOTIYBGRB/lyRh0iSCZbjYWJzgWDwIjYLoLmMCJGDKDJjBgWgqG6YhyhGHRzA2aJ1mCABOAiOJvhCZBJBYRoRmSCQmEqEQimkAZgg8TZnDCV4Uk' + 
	'mCUmBKZYJGYWoWCUUhiFMNZckNUh2GENoaGaGZmgmJhqhqZpGGIEx2GYIxSGGGJdggWJth2Z4JmYeoemeSZ2H6H4hGmQhihyTRHGYLg7CiCgmgqIpokoNoOiOaJ4jqAo' + 
	'chqaZGgaCxpAoZoaiaaJqEmWIcGgShcnCJwqEqFoR3YOoFlgchflqNouiuawHmWSYqGkWZQhcatzmaOoumuSp2j6L5bBaKo0GQKRnGGCxqiyCwmkqMpsksNpOGUGI7A0' + 
	'ew1G0Rxlg0PptgsZuDG2Sx2l6N5tnYNZZjUDRXDCVo5l2FoymqOpukuNpujubwLjmWY5k0ZwxkaFxYlWdp6j6b5Lnafo/nABQdg2FxcUsY5BkmXAkmeQpckwNRrkKTh8' + 
	'CSHZBk4NwyC4KxxgMDwakOMZDn8GgwnGAo2C4cwthMcwmCcMoHBMHRehwTIghySYNksZwcH4HBMEsHx5hyPItiweYxnwSZEH4Mozn0fR+DMAo7EYJ50gkdZelKdNql2U' + 
	'gJn0GIukwH4HicQRai2GI4mSVpNl0dZGledgNgcYpYDWUx3FsOQi5YV5anaTY3G6W53A2RxylydxFjiaxEFCCgBBAQ==');
		Add(2,'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' + 
	'RBCCQAgQEA==');
		Add(3,'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');
		Add(4,'gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' + 
	'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU' + 
	'rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3' + 
	'NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY' + 
	'YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm' + 
	'WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo' + 
	'WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS' + 
	'e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF' + 
	'CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==');
	end;
	BackColorHeader := $4c6c6c6;
	SelBackColor := $4000000;
	SelForeColor := RGB(0,0,1);
	ShowFocusRect := False;
	CheckImage[EXG2ANTTLib_TLB.Unchecked] := 16777216;
	CheckImage[EXG2ANTTLib_TLB.Checked] := 33554432;
	CheckImage[EXG2ANTTLib_TLB.PartialChecked] := 50331648;
	(IUnknown(Columns.Add('Editors')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1);
	with Items do
	begin
		CellEditor[OleVariant(AddItem('(ReadOnly)')),OleVariant(0)].EditType := EXG2ANTTLib_TLB.ReadOnly;
		CellEditor[OleVariant(AddItem('(EditType)')),OleVariant(0)].EditType := EXG2ANTTLib_TLB.EditType;
		h := AddItem('Value 1');
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.DropDownType;
			AddItem(1,'Value 1',OleVariant(1));
			AddItem(2,'Value 2',OleVariant(2));
			AddItem(3,'Value 3',OleVariant(3));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownType)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.DropDownListType;
			DropDownAutoWidth := EXG2ANTTLib_TLB.exDropDownEditorWidth;
			AddItem(1,'Nancy Davolio',OleVariant(1));
			AddItem(2,'Andrew Fuller',OleVariant(2));
			AddItem(3,'Janet Leverling',OleVariant(3));
			AddItem(4,'Peacock Margaret',OleVariant(3));
			AddItem(5,'Steven Buchanan',OleVariant(2));
			AddItem(6,'Michael Suyama',OleVariant(1));
			AddItem(7,'Robert King',OleVariant(2));
			AddItem(8,'Laura Callahan',OleVariant(3));
			AddItem(9,'Anne Dodsworth',OleVariant(2));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - single column list)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.DropDownListType;
			DropDownAutoWidth := EXG2ANTTLib_TLB.exDropDownEditorWidth;
			AddItem(1,'Nancy Davolio',OleVariant(1));
			AddItem(2,'Andrew Fuller',OleVariant(2));
			InsertItem(3,'Janet Leverling',OleVariant(3),OleVariant(2));
			InsertItem(4,'Peacock Margaret',OleVariant(3),OleVariant(2));
			InsertItem(5,'Steven Buchanan',OleVariant(2),OleVariant(2));
			InsertItem(6,'Michael Suyama',OleVariant(1),OleVariant(5));
			InsertItem(7,'Robert King',OleVariant(2),OleVariant(2));
			InsertItem(8,'Laura Callahan',OleVariant(3),OleVariant(2));
			InsertItem(9,'Anne Dodsworth',OleVariant(2),OleVariant(5));
			ExpandAll();
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - single column tree)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.DropDownListType;
			DropDownAutoWidth := EXG2ANTTLib_TLB.exDropDownEditorWidth;
			Option[EXG2ANTTLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
			Option[EXG2ANTTLib_TLB.exDropDownColumnWidth] := '312¦¦¦96';
			AddItem(1,'Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857',OleVariant(1));
			AddItem(2,'Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482',OleVariant(2));
			AddItem(3,'Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412',OleVariant(3));
			AddItem(4,'Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122',OleVariant(3));
			AddItem(5,'Steven Buchanan¦Sales Manager¦London¦(71) 555-4848',OleVariant(2));
			AddItem(6,'Michael Suyama¦Sales Representative¦London¦(71) 555-7773',OleVariant(1));
			AddItem(7,'Robert King¦Sales Representative¦Kirkland¦(71) 555-5598',OleVariant(2));
			AddItem(8,'Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189',OleVariant(3));
			AddItem(9,'Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444',OleVariant(2));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - multiple columns list)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.DropDownListType;
			DropDownAutoWidth := EXG2ANTTLib_TLB.exDropDownEditorWidth;
			Option[EXG2ANTTLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
			Option[EXG2ANTTLib_TLB.exDropDownColumnWidth] := '312¦¦¦96';
			AddItem(1,'Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857',OleVariant(1));
			AddItem(2,'Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482',OleVariant(2));
			InsertItem(3,'Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412',OleVariant(3),OleVariant(2));
			InsertItem(4,'Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122',OleVariant(3),OleVariant(2));
			InsertItem(5,'Steven Buchanan¦Sales Manager¦London¦(71) 555-4848',OleVariant(2),OleVariant(2));
			InsertItem(6,'Michael Suyama¦Sales Representative¦London¦(71) 555-7773',OleVariant(1),OleVariant(5));
			InsertItem(7,'Robert King¦Sales Representative¦Kirkland¦(71) 555-5598',OleVariant(2),OleVariant(2));
			InsertItem(8,'Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189',OleVariant(3),OleVariant(2));
			InsertItem(9,'Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444',OleVariant(2),OleVariant(5));
			ExpandAll();
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - multiple columns tree)''';
		h := AddItem(OleVariant(100));
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXG2ANTTLib_TLB.SpinType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (SpinType)''';
		CellEditor[OleVariant(AddItem('(MemoType)')),OleVariant(0)].EditType := EXG2ANTTLib_TLB.MemoType;
		h := AddItem(OleVariant(3));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.CheckListType;
			AddItem(1,'Border',OleVariant(1));
			AddItem(2,'Single',OleVariant(2));
			AddItem(4,'Frame',OleVariant(3));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (CheckListType)''';
		h := AddItem('193.226.40.161');
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			Mask := '{0,255}.{0,255}.{0,255}.{0,255}';
			EditType := EXG2ANTTLib_TLB.MaskType;
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (MaskType)''';
		h := AddItem(OleVariant(65280));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.ColorType;
			Mask := '`RGB(`{0,255}\,{0,255}\,{0,255}`)`;;0';
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ColorType)''';
		h := AddItem('Tahoma');
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXG2ANTTLib_TLB.FontType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (FontType)''';
		h := AddItem('gBHJJGHA5MIwAEIe4AAAFhwbiAliQwig7ixFjBQjRbjhljxwkB7kSFkiQkyblCllSwli7lzFmDQmTbmjlmzwnD7nQBnk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1YhgAEL5AgBhj/AAssMJthABFof4JDhIWCgYKDBATFT8M6hUIFAQAEQCCDwYF/QoWDZCRBgOKgIYHCQXMisKBAEQAAgOBZaSgQhjERANKQiZhIWamY' + 
	'yIBQ6FzcNKxQLJT4ADA4RjwObAAidBYdHwABQgUxMQYZEI0cD4OgnYKaKyzIRFNQx2YCKoFHScYD0ADXQwUAgwLoLQDqaCWBJoNQ9NBxFJTVQORgiarqSABbamGwtDAw' + 
	'BUWhQmqYALnOFQvGYPA4m6AwKhkZxKj2PBWC0SZCgmVY6CwIJgieBAniubRKHgaYgiwQwGiCfxGDWbBRmGZYIi2VwGnAexxGUSwUFiaR+hQPbBgOCoLCIHh4DAARCmQG' + 
	'4AlgNxuhwWgpFAEQUhuOxOk0NrhAaQoBmgPYdFSIZPjYGYbn+HhgEoAA7HMBIOjUM51AoPojHkEwVlET5slgWZtAEUBdjeSoeF6X5/rQRRSi+QB6GychsEAfZshKYABG' + 
	'QZorlAOgMBqEgAjYHB2jqSoigmYBLk+QZnBqGhggAEwImgbojgoIwSE+MxUHiS4REQCQWluD48B+JJoL+YQikuaI9AALgLmsJQfnSdAvDkCJEhIIIBgOegLEiPBqCyCA' + 
	'AjcCwgAAIJBhQBQkHGL4gDaNBokkZQMiwUAuioJQiCAQYsHMcwwEIeoigAYIogsGIwFKIYICIWguEoPgQhsawBASGgwCuJwLH8K4LigAIaDwbxMAOKxbisPwfASQATFA' + 
	'SoagIEYwgcSoKGiAA/mEdIuiGPxCmObIlhMIJNHONxFH8EpPCGeB+noEpBBSSRjCsPZEiyKhgjAH5whSdLEjwDxjC8TxVEMFRzFWJJZBUSI0gQEQLBOM4VHkIg1D0CAJ' + 
	'DQNg/p4AAdoC');
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXG2ANTTLib_TLB.PictureType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (PictureType)''';
		CellEditor[OleVariant(AddItem('(ButtonType)')),OleVariant(0)].EditType := EXG2ANTTLib_TLB.ButtonType;
		h := AddItem(OleVariant(25));
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXG2ANTTLib_TLB.ProgressBarType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ProgressBarType)''';
		h := AddItem('Value 1');
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.PickEditType;
			AddItem(1,'Value 1',OleVariant(1));
			AddItem(2,'Value 2',OleVariant(2));
			AddItem(3,'Value 3',OleVariant(3));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (PickEditType)''';
		CellEditor[OleVariant(AddItem('(LinkEditType)')),OleVariant(0)].EditType := EXG2ANTTLib_TLB.LinkEditType;
		with CellEditor[OleVariant(AddItem('(UserEditorType)')),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.UserEditorType;
			UserEditor('Exontrol.ComboBox','');
			with (IUnknown(UserEditorObject) as EXCOMBOBOXLib_TLB.ComboBox) do
			begin
				BeginUpdate();
				LabelHeight := G2antt1.DefaultItemHeight;
				Style := 2;
				ColumnAutoResize := False;
				rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
				with rs do
				begin
					Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null);
				end;
				DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
				MinHeightList := 128;
				SearchColumnIndex := 0;
				UseTabKey := False;
				EndUpdate();
			end;
		end;
		h := AddItem(OleVariant(255));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.ColorListType;
			Option[EXG2ANTTLib_TLB.exColorListShowName] := OleVariant(True);
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ColorListType)''';
		CellEditor[OleVariant(AddItem(OleVariant(65280))),OleVariant(0)].EditType := EXG2ANTTLib_TLB.ColorListType;
		CellEditor[OleVariant(AddItem('(MemoDropDownType)')),OleVariant(0)].EditType := EXG2ANTTLib_TLB.MemoDropDownType;
		with CellEditor[OleVariant(AddItem(OleVariant(-1))),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.CheckValueType;
			Option[EXG2ANTTLib_TLB.exCheckValue2] := OleVariant(1);
		end;
		h := AddItem(OleVariant(50));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.SliderType;
			Option[EXG2ANTTLib_TLB.exSliderWidth] := OleVariant(-60);
			Option[EXG2ANTTLib_TLB.exSliderTickFrequency] := OleVariant(10);
			Option[EXG2ANTTLib_TLB.exSliderTickStyle] := OleVariant(2);
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (SliderType)''';
		h := AddItem(OleVariant(100));
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXG2ANTTLib_TLB.CalculatorType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (CalculatorType)''';
		EnsureVisibleItem(h);
	end;
	EndUpdate();
end
2236
Editors (ImageSize = 16, default)

with G2antt1 do
begin
	BeginUpdate();
	ImageSize := 16;
	Images('gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqd' + 
	'SqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVtt' + 
	'mp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8ac' + 
	'vQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtTG' + 
	'sbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPn' + 
	'wD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==');
	with VisualAppearance do
	begin
		Add(4,'gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' + 
	'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU' + 
	'rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3' + 
	'NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY' + 
	'YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm' + 
	'WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo' + 
	'WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS' + 
	'e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF' + 
	'CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==');
	end;
	(IUnknown(Columns.Add('Editors')) as EXG2ANTTLib_TLB.Column).Def[EXG2ANTTLib_TLB.exCellValueFormat] := OleVariant(1);
	with Items do
	begin
		CellEditor[OleVariant(AddItem('(ReadOnly)')),OleVariant(0)].EditType := EXG2ANTTLib_TLB.ReadOnly;
		CellEditor[OleVariant(AddItem('(EditType)')),OleVariant(0)].EditType := EXG2ANTTLib_TLB.EditType;
		h := AddItem('Value 1');
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.DropDownType;
			AddItem(1,'Value 1',OleVariant(1));
			AddItem(2,'Value 2',OleVariant(2));
			AddItem(3,'Value 3',OleVariant(3));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownType)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.DropDownListType;
			DropDownAutoWidth := EXG2ANTTLib_TLB.exDropDownEditorWidth;
			AddItem(1,'Nancy Davolio',OleVariant(1));
			AddItem(2,'Andrew Fuller',OleVariant(2));
			AddItem(3,'Janet Leverling',OleVariant(3));
			AddItem(4,'Peacock Margaret',OleVariant(3));
			AddItem(5,'Steven Buchanan',OleVariant(2));
			AddItem(6,'Michael Suyama',OleVariant(1));
			AddItem(7,'Robert King',OleVariant(2));
			AddItem(8,'Laura Callahan',OleVariant(3));
			AddItem(9,'Anne Dodsworth',OleVariant(2));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - single column list)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.DropDownListType;
			DropDownAutoWidth := EXG2ANTTLib_TLB.exDropDownEditorWidth;
			AddItem(1,'Nancy Davolio',OleVariant(1));
			AddItem(2,'Andrew Fuller',OleVariant(2));
			InsertItem(3,'Janet Leverling',OleVariant(3),OleVariant(2));
			InsertItem(4,'Peacock Margaret',OleVariant(3),OleVariant(2));
			InsertItem(5,'Steven Buchanan',OleVariant(2),OleVariant(2));
			InsertItem(6,'Michael Suyama',OleVariant(1),OleVariant(5));
			InsertItem(7,'Robert King',OleVariant(2),OleVariant(2));
			InsertItem(8,'Laura Callahan',OleVariant(3),OleVariant(2));
			InsertItem(9,'Anne Dodsworth',OleVariant(2),OleVariant(5));
			ExpandAll();
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - single column tree)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.DropDownListType;
			DropDownAutoWidth := EXG2ANTTLib_TLB.exDropDownEditorWidth;
			Option[EXG2ANTTLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
			Option[EXG2ANTTLib_TLB.exDropDownColumnWidth] := '312¦¦¦96';
			AddItem(1,'Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857',OleVariant(1));
			AddItem(2,'Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482',OleVariant(2));
			AddItem(3,'Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412',OleVariant(3));
			AddItem(4,'Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122',OleVariant(3));
			AddItem(5,'Steven Buchanan¦Sales Manager¦London¦(71) 555-4848',OleVariant(2));
			AddItem(6,'Michael Suyama¦Sales Representative¦London¦(71) 555-7773',OleVariant(1));
			AddItem(7,'Robert King¦Sales Representative¦Kirkland¦(71) 555-5598',OleVariant(2));
			AddItem(8,'Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189',OleVariant(3));
			AddItem(9,'Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444',OleVariant(2));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - multiple columns list)''';
		h := AddItem(OleVariant(1));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.DropDownListType;
			DropDownAutoWidth := EXG2ANTTLib_TLB.exDropDownEditorWidth;
			Option[EXG2ANTTLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
			Option[EXG2ANTTLib_TLB.exDropDownColumnWidth] := '312¦¦¦96';
			AddItem(1,'Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857',OleVariant(1));
			AddItem(2,'Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482',OleVariant(2));
			InsertItem(3,'Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412',OleVariant(3),OleVariant(2));
			InsertItem(4,'Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122',OleVariant(3),OleVariant(2));
			InsertItem(5,'Steven Buchanan¦Sales Manager¦London¦(71) 555-4848',OleVariant(2),OleVariant(2));
			InsertItem(6,'Michael Suyama¦Sales Representative¦London¦(71) 555-7773',OleVariant(1),OleVariant(5));
			InsertItem(7,'Robert King¦Sales Representative¦Kirkland¦(71) 555-5598',OleVariant(2),OleVariant(2));
			InsertItem(8,'Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189',OleVariant(3),OleVariant(2));
			InsertItem(9,'Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444',OleVariant(2),OleVariant(5));
			ExpandAll();
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (DropDownList - multiple columns tree)''';
		h := AddItem(OleVariant(100));
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXG2ANTTLib_TLB.SpinType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (SpinType)''';
		CellEditor[OleVariant(AddItem('(MemoType)')),OleVariant(0)].EditType := EXG2ANTTLib_TLB.MemoType;
		h := AddItem(OleVariant(3));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.CheckListType;
			AddItem(1,'Border',OleVariant(1));
			AddItem(2,'Single',OleVariant(2));
			AddItem(4,'Frame',OleVariant(3));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (CheckListType)''';
		h := AddItem('193.226.40.161');
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			Mask := '{0,255}.{0,255}.{0,255}.{0,255}';
			EditType := EXG2ANTTLib_TLB.MaskType;
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (MaskType)''';
		h := AddItem(OleVariant(65280));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.ColorType;
			Mask := '`RGB(`{0,255}\,{0,255}\,{0,255}`)`;;0';
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ColorType)''';
		h := AddItem('Tahoma');
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXG2ANTTLib_TLB.FontType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (FontType)''';
		h := AddItem('gBHJJGHA5MIwAEIe4AAAFhwbiAliQwig7ixFjBQjRbjhljxwkB7kSFkiQkyblCllSwli7lzFmDQmTbmjlmzwnD7nQBnk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1YhgAEL5AgBhj/AAssMJthABFof4JDhIWCgYKDBATFT8M6hUIFAQAEQCCDwYF/QoWDZCRBgOKgIYHCQXMisKBAEQAAgOBZaSgQhjERANKQiZhIWamY' + 
	'yIBQ6FzcNKxQLJT4ADA4RjwObAAidBYdHwABQgUxMQYZEI0cD4OgnYKaKyzIRFNQx2YCKoFHScYD0ADXQwUAgwLoLQDqaCWBJoNQ9NBxFJTVQORgiarqSABbamGwtDAw' + 
	'BUWhQmqYALnOFQvGYPA4m6AwKhkZxKj2PBWC0SZCgmVY6CwIJgieBAniubRKHgaYgiwQwGiCfxGDWbBRmGZYIi2VwGnAexxGUSwUFiaR+hQPbBgOCoLCIHh4DAARCmQG' + 
	'4AlgNxuhwWgpFAEQUhuOxOk0NrhAaQoBmgPYdFSIZPjYGYbn+HhgEoAA7HMBIOjUM51AoPojHkEwVlET5slgWZtAEUBdjeSoeF6X5/rQRRSi+QB6GychsEAfZshKYABG' + 
	'QZorlAOgMBqEgAjYHB2jqSoigmYBLk+QZnBqGhggAEwImgbojgoIwSE+MxUHiS4REQCQWluD48B+JJoL+YQikuaI9AALgLmsJQfnSdAvDkCJEhIIIBgOegLEiPBqCyCA' + 
	'AjcCwgAAIJBhQBQkHGL4gDaNBokkZQMiwUAuioJQiCAQYsHMcwwEIeoigAYIogsGIwFKIYICIWguEoPgQhsawBASGgwCuJwLH8K4LigAIaDwbxMAOKxbisPwfASQATFA' + 
	'SoagIEYwgcSoKGiAA/mEdIuiGPxCmObIlhMIJNHONxFH8EpPCGeB+noEpBBSSRjCsPZEiyKhgjAH5whSdLEjwDxjC8TxVEMFRzFWJJZBUSI0gQEQLBOM4VHkIg1D0CAJ' + 
	'DQNg/p4AAdoC');
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXG2ANTTLib_TLB.PictureType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (PictureType)''';
		CellEditor[OleVariant(AddItem('(ButtonType)')),OleVariant(0)].EditType := EXG2ANTTLib_TLB.ButtonType;
		h := AddItem(OleVariant(25));
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXG2ANTTLib_TLB.ProgressBarType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ProgressBarType)''';
		h := AddItem('Value 1');
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.PickEditType;
			AddItem(1,'Value 1',OleVariant(1));
			AddItem(2,'Value 2',OleVariant(2));
			AddItem(3,'Value 3',OleVariant(3));
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (PickEditType)''';
		CellEditor[OleVariant(AddItem('(LinkEditType)')),OleVariant(0)].EditType := EXG2ANTTLib_TLB.LinkEditType;
		with CellEditor[OleVariant(AddItem('(UserEditorType)')),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.UserEditorType;
			UserEditor('Exontrol.ComboBox','');
			with (IUnknown(UserEditorObject) as EXCOMBOBOXLib_TLB.ComboBox) do
			begin
				BeginUpdate();
				LabelHeight := G2antt1.DefaultItemHeight;
				Style := 2;
				ColumnAutoResize := False;
				rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
				with rs do
				begin
					Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null);
				end;
				DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
				MinHeightList := 128;
				SearchColumnIndex := 0;
				UseTabKey := False;
				EndUpdate();
			end;
		end;
		h := AddItem(OleVariant(255));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.ColorListType;
			Option[EXG2ANTTLib_TLB.exColorListShowName] := OleVariant(True);
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ColorListType)''';
		CellEditor[OleVariant(AddItem(OleVariant(65280))),OleVariant(0)].EditType := EXG2ANTTLib_TLB.ColorListType;
		CellEditor[OleVariant(AddItem('(MemoDropDownType)')),OleVariant(0)].EditType := EXG2ANTTLib_TLB.MemoDropDownType;
		with CellEditor[OleVariant(AddItem(OleVariant(-1))),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.CheckValueType;
			Option[EXG2ANTTLib_TLB.exCheckValue2] := OleVariant(1);
		end;
		h := AddItem(OleVariant(50));
		with CellEditor[OleVariant(h),OleVariant(0)] do
		begin
			EditType := EXG2ANTTLib_TLB.SliderType;
			Option[EXG2ANTTLib_TLB.exSliderWidth] := OleVariant(-60);
			Option[EXG2ANTTLib_TLB.exSliderTickFrequency] := OleVariant(10);
			Option[EXG2ANTTLib_TLB.exSliderTickStyle] := OleVariant(2);
		end;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (SliderType)''';
		h := AddItem(OleVariant(100));
		CellEditor[OleVariant(h),OleVariant(0)].EditType := EXG2ANTTLib_TLB.CalculatorType;
		FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (CalculatorType)''';
		EnsureVisibleItem(h);
	end;
	EndUpdate();
end
2235
Is it possible to limit the overlaid to two rows only

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Tasks');
	with Chart do
	begin
		NonworkingDays := 0;
		FirstVisibleDate := '9/17/2006';
		PaneWidth[False] := 64;
		LevelCount := 2;
		Bars.Item['Task'].OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsCascade;
	end;
	with Items do
	begin
		h1 := AddItem('Task');
		AddBar(h1,'Task','9/26/2006','10/6/2006','K1','K1');
		AddBar(h1,'Task','10/5/2006','10/10/2006','K3','K2');
		AddBar(h1,'Task','9/21/2006','9/27/2006','T1','T');
		ItemBar[0,'<T*>',EXG2ANTTLib_TLB.exBarColor] := OleVariant(65280);
		ItemBar[0,'<K*>',EXG2ANTTLib_TLB.exBarOverlaidKey] := 'Level0';
		ItemBar[0,'<T*>',EXG2ANTTLib_TLB.exBarOverlaidKey] := 'Level1';
		ItemMaxHeight[h1] := 26;
	end;
	EndUpdate();
end
2234
Is it possible to sort the bars

with G2antt1 do
begin
	BeginUpdate();
	AntiAliasing := True;
	(IUnknown(Columns.Add('Task')) as EXG2ANTTLib_TLB.Column).AllowSort := False;
	with (IUnknown(Columns.Add('Name')) as EXG2ANTTLib_TLB.Column) do
	begin
		Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(0);
		SortType := EXG2ANTTLib_TLB.SortString;
		Visible := False;
	end;
	with Chart do
	begin
		FirstVisibleDate := '12/31/2000';
		PaneWidth[False] := 48;
		LevelCount := 2;
		Bars.Item['Task'].Pattern := EXG2ANTTLib_TLB.exPatternSolid;
		Bars.Copy('Task','Red').Color := $ff;
		NonworkingDaysPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		NonworkingDaysColor := $e0e0e0;
		LinksStyle := EXG2ANTTLib_TLB.exLinkSolid;
	end;
	with Items do
	begin
		AllowCellValueToItemBar := True;
		h1 := AddItem('Task 1');
		AddBar(h1,'Task','1/2/2001','1/4/2001',Null,Null);
		h2 := AddItem('Task 2');
		AddBar(h2,'Red','1/2/2001','1/5/2001',Null,Null);
		h3 := AddItem('Task 3');
		AddBar(h3,'Task','1/2/2001','1/5/2001',Null,Null);
		h4 := AddItem('Task 4');
		AddBar(h4,'Red','1/2/2001','1/5/2001',Null,Null);
		h5 := AddItem('Task 5');
		AddBar(h5,'Red','1/2/2001','1/5/2001',Null,Null);
		AddLink('L1',h1,'',h3,'');
		AddLink('L2',h2,'',h4,'');
		AddLink('L3',h3,'',h4,'');
		AddLink('L4',h4,'',h5,'');
		SchedulePDM(0,'');
	end;
	Chart.ShowLinks := EXG2ANTTLib_TLB.exShowExtendedLinks;
	Columns.Item['Name'].SortOrder := EXG2ANTTLib_TLB.SortAscending;
	EndUpdate();
end
2233
Re-order the cell's caption, icons and images/pictures

with G2antt1 do
begin
	BeginUpdate();
	Images('gBJJgBAICAADAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEahkZAIAEEbjMjlErlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrlTiFdib/sNjr9gs1nldlrlqtFtt0stlguNvulyh91ud1vVVvNuvt7wFHr9/vl3luEwOJouIq+Dw2KyGRyWTymVy2XzGZzUuiw+lmej0gkUaksljaAnmDc' + 
	'D/cEbf7w1+ufD/fEbeB028bYAO3enB6AB++4EoA4A4sb4vHjXJ4nG5vKAHA4ca6XBjTAD/Y2x/eB/jcB');
	with (IUnknown(Columns.Add('ToLeft')) as EXG2ANTTLib_TLB.Column) do
	begin
		Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True);
	end;
	with (IUnknown(Columns.Add('ToRight')) as EXG2ANTTLib_TLB.Column) do
	begin
		Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True);
		Def[EXG2ANTTLib_TLB.exCellDrawPartsOrder] := 'caption,picture,icons,icon,check';
	end;
	DefaultItemHeight := 32;
	DrawGridLines := EXG2ANTTLib_TLB.exVLines;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	with Items do
	begin
		h := AddItem('Caption');
		CellImage[OleVariant(h),OleVariant(0)] := 2;
		CellImages[OleVariant(h),OleVariant(0)] := '1,2';
		CellPicture[OleVariant(h),OleVariant(0)] := (IUnknown(G2antt1.ExecuteTemplate('loadpicture(`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' + 
	'Gw+wbHkkTpEw7gpFgIAA2sABJEUThEK4QhgIJAQ==`)')) as _TLB.Object);
		CellValue[OleVariant(h),OleVariant(1)] := CellValue[OleVariant(h),OleVariant(0)];
		CellHAlignment[OleVariant(h),OleVariant(1)] := EXG2ANTTLib_TLB.RightAlignment;
		CellImage[OleVariant(h),OleVariant(1)] := CellImage[OleVariant(h),OleVariant(0)];
		CellImages[OleVariant(h),OleVariant(1)] := '2,1';
		CellPicture[OleVariant(h),OleVariant(1)] := (IUnknown(CellPicture[OleVariant(h),OleVariant(0)]) as _TLB.Object);
		h := AddItem('<b>HTML</b> <off 4>Caption');
		CellValueFormat[OleVariant(h),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML;
		CellImage[OleVariant(h),OleVariant(0)] := 2;
		CellImages[OleVariant(h),OleVariant(0)] := '1,2';
		CellPicture[OleVariant(h),OleVariant(0)] := (IUnknown(G2antt1.ExecuteTemplate('loadpicture(`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' + 
	'Gw+wbHkkTpEw7gpFgIAA2sABJEUThEK4QhgIJAQ==`)')) as _TLB.Object);
		CellValue[OleVariant(h),OleVariant(1)] := CellValue[OleVariant(h),OleVariant(0)];
		CellValueFormat[OleVariant(h),OleVariant(1)] := EXG2ANTTLib_TLB.exHTML;
		CellHAlignment[OleVariant(h),OleVariant(1)] := EXG2ANTTLib_TLB.RightAlignment;
		CellImage[OleVariant(h),OleVariant(1)] := CellImage[OleVariant(h),OleVariant(0)];
		CellImages[OleVariant(h),OleVariant(1)] := '2,1';
		CellPicture[OleVariant(h),OleVariant(1)] := (IUnknown(CellPicture[OleVariant(h),OleVariant(0)]) as _TLB.Object);
	end;
	EndUpdate();
end
2232
ImageSize property on 32 (specifies the size of control' icons/images/check-boxes/radio-buttons)

// AddColumn event - Fired after a new column has been added.
procedure TForm1.G2antt1AddColumn(ASender: TObject; Column : IColumn);
begin
	// Column.Def(48) = 2
	// Column.Def(49) = 2
end;

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM);
begin
	with G2antt1 do
	begin
		Items.AddBar(Item,'Task','1/2/2022','1/8/2022',Null,'<img>1</img>');
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	ImageSize := 32;
	DefaultItemHeight := 36;
	HeaderHeight := DefaultItemHeight;
	SortBarHeight := DefaultItemHeight;
	Font.Size := 16;
	FilterBarFont.Size := G2antt1.Font.Size;
	ToolTipFont.Size := G2antt1.Font.Size;
	Indent := 26;
	with Chart do
	begin
		FirstVisibleDate := '1/1/2022';
		Bars.Item['Task'].Height := 22;
	end;
	Images('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');
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABfICg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6' + 
	'CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM' + 
	'RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsOatVqjG5sYjcGC3La9cz3Pq/bpuDCbMxuaK1TrYXr1TTrcofBDldAxXRKDxR' + 
	'DWVhLnYOw9i6XxzjuXprCaOoKB6EwbiCZZCGOdZYlcT4xHmbhMnwNxtn+G5bmqdZ7n4Pw/i+X5zm+dQ9g4CAFjsfAJheOI8HsDoWDWTB/lwSAQkmA5PEgRYoDyDwYFYF' + 
	'oFmGCBmBqBphDgRJ0gOTIYBGRB/lyRh0iSCZbjYWJzgWDwIjYLoLmMCJGDKDJjBgWgqG6YhyhGHRzA2aJ1mCABOAiOJvhCZBJBYRoRmSCQmEqEQimkAZgg8TZnDCV4Uk' + 
	'mCUmBKZYJGYWoWCUUhiFMNZckNUh2GENoaGaGZmgmJhqhqZpGGIEx2GYIxSGGGJdggWJth2Z4JmYeoemeSZ2H6H4hGmQhihyTRHGYLg7CiCgmgqIpokoNoOiOaJ4jqAo' + 
	'chqaZGgaCxpAoZoaiaaJqEmWIcGgShcnCJwqEqFoR3YOoFlgchflqNouiuawHmWSYqGkWZQhcatzmaOoumuSp2j6L5bBaKo0GQKRnGGCxqiyCwmkqMpsksNpOGUGI7A0' + 
	'ew1G0Rxlg0PptgsZuDG2Sx2l6N5tnYNZZjUDRXDCVo5l2FoymqOpukuNpujubwLjmWY5k0ZwxkaFxYlWdp6j6b5Lnafo/nABQdg2FxcUsY5BkmXAkmeQpckwNRrkKTh8' + 
	'CSHZBk4NwyC4KxxgMDwakOMZDn8GgwnGAo2C4cwthMcwmCcMoHBMHRehwTIghySYNksZwcH4HBMEsHx5hyPItiweYxnwSZEH4Mozn0fR+DMAo7EYJ50gkdZelKdNql2U' + 
	'gJn0GIukwH4HicQRai2GI4mSVpNl0dZGledgNgcYpYDWUx3FsOQi5YV5anaTY3G6W53A2RxylydxFjiaxEFCCgBBAQ==');
		Add(2,'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' + 
	'RBCCQAgQEA==');
		Add(3,'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');
		Add(4,'gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' + 
	'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU' + 
	'rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3' + 
	'NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY' + 
	'YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm' + 
	'WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo' + 
	'WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS' + 
	'e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF' + 
	'CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==');
	end;
	BackColorHeader := $4c6c6c6;
	SelBackColor := $4000000;
	SelForeColor := RGB(0,0,1);
	CheckImage[EXG2ANTTLib_TLB.Unchecked] := 16777216;
	CheckImage[EXG2ANTTLib_TLB.Checked] := 33554432;
	CheckImage[EXG2ANTTLib_TLB.PartialChecked] := 50331648;
	Background[EXG2ANTTLib_TLB.exSelBackColorFilter] := SelBackColor;
	Background[EXG2ANTTLib_TLB.exSelForeColorFilter] := SelForeColor;
	Background[EXG2ANTTLib_TLB.exBackColorFilter] := BackColor;
	Background[EXG2ANTTLib_TLB.exForeColorFilter] := ForeColor;
	Background[EXG2ANTTLib_TLB.exCursorHoverColumn] := $ffffffff;
	Background[EXG2ANTTLib_TLB.exHeaderFilterBarButton] := $4000000;
	Background[EXG2ANTTLib_TLB.exHeaderFilterBarActive] := $4010101;
	Background[EXG2ANTTLib_TLB.exFooterFilterBarButton] := $40000ff;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	ShowFocusRect := False;
	SortBarVisible := True;
	AllowGroupBy := True;
	BackColorSortBar := BackColor;
	BackColorLevelHeader := BackColor;
	FilterBarDropDownHeight := 1;
	with (IUnknown(Columns.Add('Check')) as EXG2ANTTLib_TLB.Column) do
	begin
		Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
		Width := 128;
		DisplayFilterButton := True;
		FilterList := EXG2ANTTLib_TLB.exShowCheckBox;
	end;
	with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do
	begin
		FormatColumn := '1 pos ``';
		AllowSort := False;
		Width := 48;
		AllowSizing := False;
		Alignment := EXG2ANTTLib_TLB.CenterAlignment;
		HeaderAlignment := EXG2ANTTLib_TLB.CenterAlignment;
	end;
	with (IUnknown(Columns.Add('Image')) as EXG2ANTTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXG2ANTTLib_TLB.exShowExclude) Or Integer(EXG2ANTTLib_TLB.exShowCheckBox) Or Integer(EXG2ANTTLib_TLB.exSortItemsAsc);
		FilterType := EXG2ANTTLib_TLB.exImage;
		DisplayExpandButton := True;
		ExpandColumns := '1,2,3';
		Width := 128;
		HeaderImage := 1;
	end;
	with (IUnknown(Columns.Add('Images')) as EXG2ANTTLib_TLB.Column) do
	begin
		Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True);
		Width := 196;
		HTMLCaption := '<img>1</img><img>2</img><img>3</img> Images';
	end;
	Columns.Item['Pos'].Position := 3;
	with Items do
	begin
		hR := AddItem('Root');
		ItemDivider[hR] := 0;
		ItemDividerLine[hR] := EXG2ANTTLib_TLB.EmptyLine;
		h := InsertItem(hR,Null,'Child A');
		CellImage[OleVariant(h),OleVariant(2)] := 1;
		CellImages[OleVariant(h),OleVariant(3)] := '1,2,3';
		CellValue[OleVariant(h),OleVariant(3)] := '123';
		h := InsertItem(hR,Null,'Child B');
		CellState[OleVariant(h),OleVariant(0)] := 1;
		CellImage[OleVariant(h),OleVariant(2)] := 3;
		CellImages[OleVariant(h),OleVariant(3)] := '2,3,1';
		CellValue[OleVariant(h),OleVariant(3)] := '231';
		SelectItem[h] := True;
		h := InsertItem(hR,Null,'Child C');
		CellImage[OleVariant(h),OleVariant(2)] := 2;
		CellState[OleVariant(h),OleVariant(3)] := 1;
		CellValue[OleVariant(h),OleVariant(3)] := '312';
		CellImages[OleVariant(h),OleVariant(3)] := '3,1,2';
		ExpandItem[hR] := True;
	end;
	EndUpdate();
end
2231
ImageSize property on 16 (default) (specifies the size of control' icons/images/check-boxes/radio-buttons)

// AddColumn event - Fired after a new column has been added.
procedure TForm1.G2antt1AddColumn(ASender: TObject; Column : IColumn);
begin
	// Column.Def(48) = 2
	// Column.Def(49) = 2
end;

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM);
begin
	with G2antt1 do
	begin
		Items.AddBar(Item,'Task','1/2/2022','1/8/2022',Null,'<img>1</img>');
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Chart.FirstVisibleDate := '1/1/2022';
	ImageSize := 16;
	Images('gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqd' + 
	'SqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVtt' + 
	'mp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8ac' + 
	'vQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtTG' + 
	'sbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPn' + 
	'wD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==');
	with VisualAppearance do
	begin
		Add(4,'gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' + 
	'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU' + 
	'rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3' + 
	'NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY' + 
	'YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm' + 
	'WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo' + 
	'WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS' + 
	'e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF' + 
	'CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==');
	end;
	BackColorHeader := $4c6c6c6;
	SelBackColor := $4000000;
	SelForeColor := RGB(0,0,1);
	Background[EXG2ANTTLib_TLB.exSelBackColorFilter] := SelBackColor;
	Background[EXG2ANTTLib_TLB.exSelForeColorFilter] := SelForeColor;
	Background[EXG2ANTTLib_TLB.exBackColorFilter] := BackColor;
	Background[EXG2ANTTLib_TLB.exForeColorFilter] := ForeColor;
	Background[EXG2ANTTLib_TLB.exCursorHoverColumn] := $ffffffff;
	Background[EXG2ANTTLib_TLB.exHeaderFilterBarButton] := $4000000;
	Background[EXG2ANTTLib_TLB.exHeaderFilterBarActive] := $4010101;
	Background[EXG2ANTTLib_TLB.exFooterFilterBarButton] := $40000ff;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	ShowFocusRect := False;
	SortBarVisible := True;
	AllowGroupBy := True;
	BackColorSortBar := BackColor;
	BackColorLevelHeader := BackColor;
	FilterBarDropDownHeight := 1;
	with (IUnknown(Columns.Add('Check')) as EXG2ANTTLib_TLB.Column) do
	begin
		Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True);
		PartialCheck := True;
		Width := 128;
		DisplayFilterButton := True;
		FilterList := EXG2ANTTLib_TLB.exShowCheckBox;
	end;
	with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do
	begin
		FormatColumn := '1 pos ``';
		AllowSort := False;
		Width := 48;
		AllowSizing := False;
		Alignment := EXG2ANTTLib_TLB.CenterAlignment;
		HeaderAlignment := EXG2ANTTLib_TLB.CenterAlignment;
	end;
	with (IUnknown(Columns.Add('Image')) as EXG2ANTTLib_TLB.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXG2ANTTLib_TLB.exShowExclude) Or Integer(EXG2ANTTLib_TLB.exShowCheckBox) Or Integer(EXG2ANTTLib_TLB.exSortItemsAsc);
		FilterType := EXG2ANTTLib_TLB.exImage;
		DisplayExpandButton := True;
		ExpandColumns := '1,2,3';
		Width := 128;
		HeaderImage := 1;
	end;
	with (IUnknown(Columns.Add('Images')) as EXG2ANTTLib_TLB.Column) do
	begin
		Def[EXG2ANTTLib_TLB.exCellHasCheckBox] := OleVariant(True);
		Width := 196;
		HTMLCaption := '<img>1</img><img>2</img><img>3</img> Images';
	end;
	Columns.Item['Pos'].Position := 3;
	with Items do
	begin
		hR := AddItem('Root');
		ItemDivider[hR] := 0;
		ItemDividerLine[hR] := EXG2ANTTLib_TLB.EmptyLine;
		h := InsertItem(hR,Null,'Child A');
		CellImage[OleVariant(h),OleVariant(2)] := 1;
		CellImages[OleVariant(h),OleVariant(3)] := '1,2,3';
		CellValue[OleVariant(h),OleVariant(3)] := '123';
		h := InsertItem(hR,Null,'Child B');
		CellState[OleVariant(h),OleVariant(0)] := 1;
		CellImage[OleVariant(h),OleVariant(2)] := 3;
		CellImages[OleVariant(h),OleVariant(3)] := '2,3,1';
		CellValue[OleVariant(h),OleVariant(3)] := '231';
		SelectItem[h] := True;
		h := InsertItem(hR,Null,'Child C');
		CellImage[OleVariant(h),OleVariant(2)] := 2;
		CellState[OleVariant(h),OleVariant(3)] := 1;
		CellValue[OleVariant(h),OleVariant(3)] := '312';
		CellImages[OleVariant(h),OleVariant(3)] := '3,1,2';
		ExpandItem[hR] := True;
	end;
	EndUpdate();
end
2230
How do I clip/hide/align the bar's caption/text based on the bar's size/width/length

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Clip');
	ScrollBySingleLine := True;
	DrawGridLines := EXG2ANTTLib_TLB.exRowLines;
	with Chart do
	begin
		AllowResizeChart := Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader);
		DrawGridLines := EXG2ANTTLib_TLB.exRowLines;
		FirstVisibleDate := '12/23/2000';
		LevelCount := 2;
		PaneWidth[False] := 216;
		with Bars.Item['Task'] do
		begin
			Pattern := EXG2ANTTLib_TLB.exPatternBox;
			Color := $a4a4a4;
			StartColor := $f0f0f0;
			EndColor := StartColor;
			OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsIncludeCaption) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
			Height := 15;
		end;
		MinUnitWidth := UnitWidth;
	end;
	with Items do
	begin
		h := AddItem('no clip, (0-2)');
		AddBar(h,'Task','1/2/2001','1/4/2001','K1',Null);
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaption] := 'no clip, right(<b>2</b>)';
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(2);
		AddBar(h,'Task','1/2/2001','1/4/2001','K2',Null);
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaption] := 'no clip, center(<b>1</b>)';
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(1);
		AddBar(h,'Task','1/2/2001','1/4/2001','K3',Null);
		ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarExtraCaption] := 'no clip, left(<b>0</b>)';
		ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(0);
		h := AddItem('clip, inside (3-5)');
		AddBar(h,'Task','12/28/2000','1/8/2001','K1',Null);
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaption] := 'clip, inside, right(<b>5</b>)';
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(5);
		AddBar(h,'Task','12/28/2000','1/8/2001','K2',Null);
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaption] := 'clip, inside, center(<b>4</b>)';
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(4);
		AddBar(h,'Task','12/28/2000','1/8/2001','K3',Null);
		ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarExtraCaption] := 'clip, inside, left(<b>3</b>)';
		ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(3);
		h := AddItem('hide on min width, clip if not fit, inside (6-8)');
		AddBar(h,'Task','12/26/2000','1/10/2001','K1',Null);
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaption] := 'hide on min width, clip if not fit, inside, right(<b>8</b>)';
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(8);
		AddBar(h,'Task','12/26/2000','1/10/2001','K2',Null);
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaption] := 'hide on min width, clip if not fit, inside, center(<b>7</b>)';
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(7);
		AddBar(h,'Task','12/26/2000','1/10/2001','K3',Null);
		ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarExtraCaption] := 'hide on min width, clip if not fit, inside, left(<b>6</b>)';
		ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(6);
		h := AddItem('hide if not fit, no clip, inside (9-11)');
		AddBar(h,'Task','12/28/2000','1/8/2001','K1',Null);
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaption] := 'hide if not fit, no clip, inside, right(<b>11</b>)';
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(11);
		AddBar(h,'Task','12/28/2000','1/8/2001','K2',Null);
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaption] := 'hide if not fit, no clip, center(<b>10</b>)';
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(10);
		AddBar(h,'Task','12/28/2000','1/8/2001','K3',Null);
		ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarExtraCaption] := 'hide if not fit, no clip, inside, left(<b>9</b>)';
		ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(9);
		h := AddItem('no clip, inside, outside (12-14)');
		AddBar(h,'Task','12/28/2000','1/8/2001','K1',Null);
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaption] := 'no clip, inside, outside, right(<b>14</b>)';
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(14);
		AddBar(h,'Task','12/28/2000','1/8/2001','K2',Null);
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaption] := 'no clip, inside, outside, center(<b>13</b>)';
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(13);
		AddBar(h,'Task','12/28/2000','1/8/2001','K3',Null);
		ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarExtraCaption] := 'no clip, inside, outside, left(<b>12</b>)';
		ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(12);
		h := AddItem('no clip, outside (16-18)');
		AddBar(h,'Task','12/30/2000','1/6/2001','K1',Null);
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaption] := 'no clip, outside, right(<b>18</b>)';
		ItemBar[h,'K1',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(18);
		AddBar(h,'Task','12/30/2000','1/6/2001','K2',Null);
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaption] := 'no clip, outside, center(<b>17</b>)';
		ItemBar[h,'K2',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(17);
		AddBar(h,'Task','12/30/2000','1/6/2001','K3',Null);
		ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarExtraCaption] := 'no clip, outside, left(<b>16</b>)';
		ItemBar[h,'K3',EXG2ANTTLib_TLB.exBarExtraCaptionHAlign] := OleVariant(16);
	end;
	EndUpdate();
end
2229
The user clicks the drop-down filter, select a value and the control's list filters for the selected item(s). Is there a way for when the user then goes to the next column to add another filter and the drop down arrow is clicked for the list of values they can filter by to be limited to what is being displayed in the list due to the first filter they set

// AddColumn event - Fired after a new column has been added.
procedure TForm1.G2antt1AddColumn(ASender: TObject; Column : IColumn);
begin
	with G2antt1 do
	begin
		with Column do
		begin
		end;
	end
end;

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM);
begin
	with G2antt1 do
	begin
		with Items do
		begin
			AddBar(Item,'Task',CellValue[OleVariant(Item),OleVariant(2)],CellValue[OleVariant(Item),OleVariant(4)],Null,Null);
		end;
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	with Chart do
	begin
		FirstVisibleDate := '8/4/1994';
		LevelCount := 2;
		PaneWidth[False] := 290;
	end;
	Items.AllowCellValueToItemBar := True;
	Columns.Item[OleVariant(2)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(1);
	Columns.Item[OleVariant(4)].Def[EXG2ANTTLib_TLB.exCellValueToItemBarProperty] := OleVariant(2);
	Columns.Item['ShipVia'].Position := 2;
	EndUpdate();
end
2228
Does the control display images from database (DAO)

with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	DefaultItemHeight := 48;
	with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.36'))) as DAO_TLB.PrivDBEngine) do
	begin
		rs := OpenDatabase('C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.mdb',Null,Null,Null).OpenRecordset('Employees',Null,Null,Null);
	end;
	DataSource := (IUnknown(rs) as DAO_TLB.Recordset);
	with Columns.Item['Photo'] do
	begin
		Position := 1;
		Width := 128;
	end;
	EndUpdate();
end
2227
Does the control display images from database (ADO)

with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	DrawGridLines := EXG2ANTTLib_TLB.exAllLines;
	GridLineStyle := EXG2ANTTLib_TLB.exGridLinesGeometric;
	DefaultItemHeight := 48;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Employees','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',3,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	with Columns.Item['Photo'] do
	begin
		Position := 1;
		Width := 128;
	end;
	EndUpdate();
end
2226
Is it possible to set from code, a column sort without being inserted in the sortbar

with G2antt1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2antt\Sample\Access\misc.accdb',1,3,Null);
	end;
	DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
	SortBarVisible := True;
	Layout := 'singlesort="C1:1"';
	EndUpdate();
end
2225
Is it possible to view all events the control fires
// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
procedure TForm1.G2antt1BeforeExpandItem(ASender: TObject; Item : HITEM;var Cancel : OleVariant);
begin
	with G2antt1 do
	begin
		Refresh();
	end
end;

// Event event - Notifies the application once the control fires an event.
procedure TForm1.G2antt1Event(ASender: TObject; EventID : Integer);
begin
	with G2antt1 do
	begin
		OutputDebugString( EventParam[-2] );
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Indent := 16;
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	HasLines := EXG2ANTTLib_TLB.exSolidLine;
	DrawGridLines := EXG2ANTTLib_TLB.exHLines;
	Columns.Add('Tasks');
	with Chart do
	begin
		FirstVisibleDate := '9/20/2006';
		ShowCollapsedBars := True;
		LevelCount := 2;
		PaneWidth[False] := 128;
		DrawGridLines := EXG2ANTTLib_TLB.exHLines;
		with Bars.Item['Task'] do
		begin
			OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsStack;
			Color := $0;
			StartColor := $c4c4c4;
			EndColor := $c4c4c4;
			Pattern := EXG2ANTTLib_TLB.exPatternBox;
		end;
	end;
	with Items do
	begin
		h := AddItem('Project 1');
		h1 := InsertItem(h,Null,'Resources');
		AddBar(h1,'Task','9/21/2006','9/25/2006','A',Null);
		AddBar(h1,'Task','9/24/2006','9/28/2006','B',Null);
		AddBar(h1,'Task','9/27/2006','9/29/2006','C',Null);
		h := AddItem('Project 2');
		h1 := InsertItem(h,Null,'Resources');
		AddBar(h1,'Task','9/21/2006','9/25/2006','A',Null);
		AddBar(h1,'Task','9/24/2006','9/28/2006','B',Null);
		AddBar(h1,'Task','9/27/2006','9/29/2006','C',Null);
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
2224
How can I find all occurences of the giving value, within a column
with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Default');
	with (IUnknown(Columns.Add('Pos')) as EXG2ANTTLib_TLB.Column) do
	begin
		FormatColumn := '1 pos ''A-Z''';
		Position := 0;
		AllowSizing := False;
		Width := 32;
		Enabled := False;
	end;
	with (IUnknown(Columns.Add('Index')) as EXG2ANTTLib_TLB.Column) do
	begin
		FormatColumn := '0 index ''''';
		AllowSizing := False;
		Width := 32;
		Enabled := False;
	end;
	with Items do
	begin
		AddItem('A');
		AddItem('A');
		AddItem('A');
		OutputDebugString( CellCaption[OleVariant(FindItem['A',OleVariant(0),OleVariant(0)]),OleVariant(1)] );
		OutputDebugString( CellCaption[OleVariant(FindItem['A',OleVariant(0),OleVariant(1)]),OleVariant(1)] );
		OutputDebugString( CellCaption[OleVariant(FindItem['A',OleVariant(0),OleVariant(2)]),OleVariant(1)] );
	end;
	EndUpdate();
end
2223
How can I specify the bar's legend within the control's histogram (sample 2, expression)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Machines');
	DrawGridLines := EXG2ANTTLib_TLB.exHLines;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels;
	with Chart do
	begin
		DrawGridLines := EXG2ANTTLib_TLB.exHLines;
		PaneWidth[False] := 128;
		FirstVisibleDate := '1/1/2001';
		LevelCount := 2;
		with Bars.Item['Task'] do
		begin
			Pattern := EXG2ANTTLib_TLB.exPatternSolid;
			Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18);
			OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsCascade;
			HistogramPattern := Pattern;
			HistogramType := EXG2ANTTLib_TLB.exHistCumulative;
			HistogramCumulativeOriginalColorBars := EXG2ANTTLib_TLB.exKeepOriginalColor;
			HistogramItems := -4;
			HistogramRulerLinesColor := $666666;
			Def[EXG2ANTTLib_TLB.exBarToolTip] := '<%=%3%> <fgcolor 666666><font ;6><off 4><%=%C0%>';
			Def[EXG2ANTTLib_TLB.exBarHistLegend] := '<fgcolor=666666><%=lower(%3)%>';
		end;
		HistogramHeight := 64;
		HistogramVisible := True;
	end;
	with Items do
	begin
		h := AddItem('Machine 1');
		AddBar(h,'Task','1/2/2001','1/9/2001',OleVariant(1),'Bill');
		AddBar(h,'Task','1/3/2001','1/10/2001',OleVariant(2),'Laura');
		ItemBar[h,OleVariant(2),EXG2ANTTLib_TLB.exBarColor] := OleVariant(16776960);
		h := AddItem('Machine 2');
		AddBar(h,'Task','1/12/2001','1/19/2001',OleVariant(3),'Bill');
		AddBar(h,'Task','1/10/2001','1/13/2001',OleVariant(4),'Laura');
		AddBar(h,'Task','1/10/2001','1/14/2001',OleVariant(5),'Bill');
		ItemBar[h,OleVariant(4),EXG2ANTTLib_TLB.exBarColor] := OleVariant(16776960);
		AddBar(AddItem('Machine 3'),'Task','1/2/2001','1/9/2001',OleVariant(6),'Bill');
	end;
	EndUpdate();
end
2222
How can I specify the bar's legend within the control's histogram (sample 1)

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Machines');
	DrawGridLines := EXG2ANTTLib_TLB.exHLines;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderVisible := EXG2ANTTLib_TLB.exHeaderVisibleExtendLevels;
	with Chart do
	begin
		DrawGridLines := EXG2ANTTLib_TLB.exHLines;
		PaneWidth[False] := 128;
		FirstVisibleDate := '1/1/2001';
		LevelCount := 2;
		with Bars.Item['Task'] do
		begin
			Pattern := EXG2ANTTLib_TLB.exPatternSolid;
			Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18);
			OverlaidType := EXG2ANTTLib_TLB.exOverlaidBarsCascade;
			HistogramPattern := Pattern;
			HistogramType := EXG2ANTTLib_TLB.exHistCumulative;
			HistogramCumulativeOriginalColorBars := EXG2ANTTLib_TLB.exKeepOriginalColor;
			HistogramItems := -4;
			Def[EXG2ANTTLib_TLB.exBarCaption] := 'Bill';
			Def[EXG2ANTTLib_TLB.exBarHistLegend] := 'B(ill)';
		end;
		HistogramHeight := 64;
		HistogramVisible := True;
	end;
	with Items do
	begin
		h := AddItem('Machine 1');
		AddBar(h,'Task','1/2/2001','1/9/2001',OleVariant(1),Null);
		AddBar(h,'Task','1/3/2001','1/10/2001',OleVariant(2),'Laura');
		ItemBar[h,OleVariant(2),EXG2ANTTLib_TLB.exBarColor] := OleVariant(16776960);
		ItemBar[h,OleVariant(2),EXG2ANTTLib_TLB.exBarHistLegend] := 'L(aura)';
		h := AddItem('Machine 2');
		AddBar(h,'Task','1/12/2001','1/19/2001',OleVariant(3),Null);
		AddBar(h,'Task','1/10/2001','1/13/2001',OleVariant(4),'Laura');
		AddBar(h,'Task','1/10/2001','1/14/2001',OleVariant(5),Null);
		ItemBar[h,OleVariant(4),EXG2ANTTLib_TLB.exBarColor] := OleVariant(16776960);
		ItemBar[h,OleVariant(4),EXG2ANTTLib_TLB.exBarHistLegend] := 'L(aura)';
		AddBar(AddItem('Machine 3'),'Task','1/2/2001','1/9/2001',OleVariant(6),Null);
	end;
	EndUpdate();
end
2221
When I drag a bar and I drag it over other items, but just release it on one of the items (last item), the BarParentChange event is triggered for every item. I need it just when I drop it (release left mouse). How can I do this
// BarParentChange event - Occurs just before moving a bar from current item to another item.
procedure TForm1.G2antt1BarParentChange(ASender: TObject; Item : HITEM;Key : OleVariant;NewItem : HITEM;var Cancel : WordBool);
begin
	with G2antt1 do
	begin
		OutputDebugString( 'Hover Over Item: ' );
		OutputDebugString( Items.CellCaption[OleVariant(NewItem),OleVariant(0)] );
		Cancel := Items.ItemData[NewItem];
	end
end;

// ChartEndChanging event - Occurs after the chart has been changed.
procedure TForm1.G2antt1ChartEndChanging(ASender: TObject; Operation : BarOperationEnum);
begin
	with G2antt1 do
	begin
		OutputDebugString( 'ChartEndChanging ' );
		OutputDebugString( Operation );
	end
end;

// ChartStartChanging event - Occurs when the chart is about to be changed.
procedure TForm1.G2antt1ChartStartChanging(ASender: TObject; Operation : BarOperationEnum);
begin
	with G2antt1 do
	begin
		OutputDebugString( 'ChartStartChanging ' );
		OutputDebugString( Operation );
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '1/1/2001';
		PaneWidth[False] := 48;
		AllowLinkBars := False;
		Bars.Item['Task'].OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsTransparent) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsOffset);
	end;
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Item 1');
		EnableItem[h] := False;
		ItemData[h] := OleVariant(-1);
		h := AddItem('Item 2');
		ItemData[h] := OleVariant(0);
		AddBar(h,'Task','1/5/2001','1/7/2001','B',Null);
		ItemBar[h,'B',EXG2ANTTLib_TLB.exBarCanMoveToAnother] := OleVariant(True);
		ItemData[AddItem('Item 3')] := OleVariant(0);
		ItemData[AddItem('Item 4')] := OleVariant(0);
	end;
	EndUpdate();
end
2220
Hide non-working days, Hide non-working hours

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '7/29/2022';
		Label[EXG2ANTTLib_TLB.exHour] := '<font ;6><%h%><|><font ;6><%hh%><|><%h%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, ''<%yy%> <%h%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <' + 
	'%yyyy%> <%h%> <%AM/PM%><||><||>65536';
		PaneWidth[False] := 0;
		LevelCount := 2;
		UnitWidth := 12;
		NonworkingDaysColor := $333333;
		NonworkingDaysPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		NonworkingHoursColor := $bbbbbb;
		NonworkingHoursPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		AllowResizeChart := Integer(EXG2ANTTLib_TLB.exAllowChangeUnitScale) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader);
		with Level[0] do
		begin
			Label := '<%dddd%>';
			Alignment := EXG2ANTTLib_TLB.CenterAlignment;
		end;
		Level[1].Label := OleVariant(65536);
		UnitScale := EXG2ANTTLib_TLB.exHour;
		NonworkingHours := 16773375;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := False;
		ShowNonworkingHours := False;
	end;
	EndUpdate();
end
2219
Show non-working days pattern, Hide non-working hours

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '7/29/2022';
		Label[EXG2ANTTLib_TLB.exHour] := '<font ;6><%h%><|><font ;6><%hh%><|><%h%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, ''<%yy%> <%h%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <' + 
	'%yyyy%> <%h%> <%AM/PM%><||><||>65536';
		PaneWidth[False] := 0;
		LevelCount := 2;
		UnitWidth := 12;
		NonworkingDaysColor := $333333;
		NonworkingDaysPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		NonworkingHoursColor := $bbbbbb;
		NonworkingHoursPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		AllowResizeChart := Integer(EXG2ANTTLib_TLB.exAllowChangeUnitScale) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader);
		with Level[0] do
		begin
			Label := '<%dddd%>';
			Alignment := EXG2ANTTLib_TLB.CenterAlignment;
		end;
		Level[1].Label := OleVariant(65536);
		UnitScale := EXG2ANTTLib_TLB.exHour;
		NonworkingHours := 16773375;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := True;
		ShowNonworkingHours := False;
	end;
	EndUpdate();
end
2218
Hide non-working days, Show non-working hours pattern

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '7/29/2022';
		Label[EXG2ANTTLib_TLB.exHour] := '<font ;6><%h%><|><font ;6><%hh%><|><%h%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, ''<%yy%> <%h%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <' + 
	'%yyyy%> <%h%> <%AM/PM%><||><||>65536';
		PaneWidth[False] := 0;
		LevelCount := 2;
		UnitWidth := 12;
		NonworkingDaysColor := $333333;
		NonworkingDaysPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		NonworkingHoursColor := $bbbbbb;
		NonworkingHoursPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		AllowResizeChart := Integer(EXG2ANTTLib_TLB.exAllowChangeUnitScale) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader);
		with Level[0] do
		begin
			Label := '<%dddd%>';
			Alignment := EXG2ANTTLib_TLB.CenterAlignment;
		end;
		Level[1].Label := OleVariant(65536);
		UnitScale := EXG2ANTTLib_TLB.exHour;
		NonworkingHours := 16773375;
		ShowNonworkingUnits := False;
		ShowNonworkingDates := False;
		ShowNonworkingHours := True;
	end;
	EndUpdate();
end
2217
Hide non-working days pattern, Show non-working hours pattern

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '7/29/2022';
		Label[EXG2ANTTLib_TLB.exHour] := '<font ;6><%h%><|><font ;6><%hh%><|><%h%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, ''<%yy%> <%h%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <' + 
	'%yyyy%> <%h%> <%AM/PM%><||><||>65536';
		PaneWidth[False] := 0;
		LevelCount := 2;
		UnitWidth := 12;
		NonworkingDaysColor := $333333;
		NonworkingDaysPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		NonworkingHoursColor := $bbbbbb;
		NonworkingHoursPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		AllowResizeChart := Integer(EXG2ANTTLib_TLB.exAllowChangeUnitScale) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader);
		with Level[0] do
		begin
			Label := '<%dddd%>';
			Alignment := EXG2ANTTLib_TLB.CenterAlignment;
		end;
		Level[1].Label := OleVariant(65536);
		UnitScale := EXG2ANTTLib_TLB.exHour;
		NonworkingHours := 16773375;
		ShowNonworkingUnits := True;
		ShowNonworkingDates := False;
		ShowNonworkingHours := True;
	end;
	EndUpdate();
end
2216
Hide non-working days pattern, Hide non-working hours pattern

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '7/29/2022';
		Label[EXG2ANTTLib_TLB.exHour] := '<font ;6><%h%><|><font ;6><%hh%><|><%h%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, ''<%yy%> <%h%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <' + 
	'%yyyy%> <%h%> <%AM/PM%><||><||>65536';
		PaneWidth[False] := 0;
		LevelCount := 2;
		UnitWidth := 12;
		NonworkingDaysColor := $333333;
		NonworkingDaysPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		NonworkingHoursColor := $bbbbbb;
		NonworkingHoursPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		AllowResizeChart := Integer(EXG2ANTTLib_TLB.exAllowChangeUnitScale) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader);
		with Level[0] do
		begin
			Label := '<%dddd%>';
			Alignment := EXG2ANTTLib_TLB.CenterAlignment;
		end;
		Level[1].Label := OleVariant(65536);
		UnitScale := EXG2ANTTLib_TLB.exHour;
		NonworkingHours := 16773375;
		ShowNonworkingUnits := True;
		ShowNonworkingDates := False;
		ShowNonworkingHours := False;
	end;
	EndUpdate();
end
2215
Show non-working days pattern, Hide non-working hours pattern

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '7/29/2022';
		Label[EXG2ANTTLib_TLB.exHour] := '<font ;6><%h%><|><font ;6><%hh%><|><%h%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, ''<%yy%> <%h%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <' + 
	'%yyyy%> <%h%> <%AM/PM%><||><||>65536';
		PaneWidth[False] := 0;
		LevelCount := 2;
		UnitWidth := 12;
		NonworkingDaysColor := $333333;
		NonworkingDaysPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		NonworkingHoursColor := $bbbbbb;
		NonworkingHoursPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		AllowResizeChart := Integer(EXG2ANTTLib_TLB.exAllowChangeUnitScale) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader);
		with Level[0] do
		begin
			Label := '<%dddd%>';
			Alignment := EXG2ANTTLib_TLB.CenterAlignment;
		end;
		Level[1].Label := OleVariant(65536);
		UnitScale := EXG2ANTTLib_TLB.exHour;
		NonworkingHours := 16773375;
		ShowNonworkingUnits := True;
		ShowNonworkingDates := True;
		ShowNonworkingHours := False;
	end;
	EndUpdate();
end
2214
Show non-working days pattern, Show non-working hours pattern

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		FirstVisibleDate := '7/29/2022';
		Label[EXG2ANTTLib_TLB.exHour] := '<font ;6><%h%><|><font ;6><%hh%><|><%h%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, ''<%yy%> <%h%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <' + 
	'%yyyy%> <%h%> <%AM/PM%><||><||>65536';
		PaneWidth[False] := 0;
		LevelCount := 2;
		UnitWidth := 12;
		NonworkingDaysColor := $333333;
		NonworkingDaysPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		NonworkingHoursColor := $bbbbbb;
		NonworkingHoursPattern := EXG2ANTTLib_TLB.exPatternBDiagonal;
		AllowResizeChart := Integer(EXG2ANTTLib_TLB.exAllowChangeUnitScale) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader);
		with Level[0] do
		begin
			Label := '<%dddd%>';
			Alignment := EXG2ANTTLib_TLB.CenterAlignment;
		end;
		Level[1].Label := OleVariant(65536);
		UnitScale := EXG2ANTTLib_TLB.exHour;
		NonworkingHours := 16773375;
		ShowNonworkingUnits := True;
		ShowNonworkingDates := True;
		ShowNonworkingHours := True;
	end;
	EndUpdate();
end
2213
The chart display no labels (empty header) when the unit's width is too small. What can I do to change this behavior

with G2antt1 do
begin
	with Chart do
	begin
		Label[EXG2ANTTLib_TLB.exDay] := '<font ;6><%d1%><|><%d1%><|><%d2%><|><%d3%><|><%dddd%><|><%d3%>, <%m3%> <%d%>, ''<%yy%><|><%dddd%>, <%mmmm%> <%d%>, <%yyyy%><||><|' + 
	'|>4096';
		AllowResizeChart := Integer(EXG2ANTTLib_TLB.exAllowChangeUnitScale) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader);
		LevelCount := 2;
		PaneWidth[False] := 0;
		MarkTodayColor := BackColor;
		UnitScale := EXG2ANTTLib_TLB.exDay;
		UnitWidth := 12;
	end;
end
2212
How do I get the height of the bar from the cursor

// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.G2antt1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with G2antt1 do
	begin
		b := Chart.BarFromPoint[-1,-1];
		i := ItemFromPoint[-1,-1,c,hit];
		n := Items.ItemBar[i,OleVariant(b),EXG2ANTTLib_TLB.exBarName];
		OutputDebugString( 'Height' );
		OutputDebugString( Chart.Bars.Item[OleVariant(n)].Height );
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Tasks');
	DefaultItemHeight := 52;
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '10/10/2017';
		PaneWidth[False] := 0;
		NonworkingDays := 0;
		MarkTodayColor := BackColor;
		Bars.Item['Task'].Pattern := EXG2ANTTLib_TLB.exPatternSolid;
		Bars.Copy('Task','T1').Color := $ff;
		Bars.Copy('Task','T2').Height := 25;
	end;
	with Items do
	begin
		h1 := AddItem('Task');
		AddBar(h1,'T1','10/15/2017','10/25/2017','2',Null);
		AddBar(h1,'T2','10/18/2017','10/22/2017','1',Null);
		h1 := AddItem('Task');
		AddBar(h1,'T1','10/15/2017','10/25/2017','1',Null);
		AddBar(h1,'T2','10/18/2017','10/22/2017','2',Null);
	end;
	EndUpdate();
end
2211
The zone shows truncated if I use BackColorAlternate. Is there anything I can do so it shows as solid instead

with G2antt1 do
begin
	BeginUpdate();
	BackColorAlternate := RGB(240,240,240);
	with Chart do
	begin
		PaneWidth[False] := 0;
		LevelCount := 2;
		FirstVisibleDate := '1/1/2010';
		MarkTimeZone('Z1','1/4/2010','1/4/2010',OleVariant(16744544),'1:3;;solid-zone');
		MarkTimeZone('Z2','1/8/2010','1/8/2010',OleVariant(16744544),'0:3;;truncated-zone');
	end;
	EndUpdate();
end
2210
How can I prevent expanding/collapsing the child items

// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
procedure TForm1.G2antt1BeforeExpandItem(ASender: TObject; Item : HITEM;var Cancel : OleVariant);
begin
	with G2antt1 do
	begin
		Cancel := G2antt1.Items.ItemParent[Item];
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	SingleSel := False;
	Columns.Add('Default');
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(InsertItem(h,Null,'Child 1.1'),Null,'Child');
		InsertItem(h,Null,'Child 1.2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(InsertItem(h,Null,'Child 2.1'),Null,'Child');
		InsertItem(h,Null,'Child 2.2');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
2209
How can I display the EBN bigger or smaller (thumb)

with G2antt1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'c:\exontrol\images\normal.ebn');
		Add(10,'CP:1 0 3 0 -3');
		Add(17,'CP:1 3 0 -3 0');
	end;
	Background[EXG2ANTTLib_TLB.exHSThumb] := $a000000;
	Background[EXG2ANTTLib_TLB.exVSThumb] := $11000000;
	ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exHScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exVScrollOnThumbRelease) Or Integer(EXG2ANTTLib_TLB.exHScrollOnThumbRelease) Or Integer(EXG2ANTTLib_TLB.exDisableBoth);
	ScrollBySingleLine := True;
	Columns.Add('Def');
	with Items do
	begin
		AddItem(OleVariant(1));
		AddItem(OleVariant(2));
		AddItem(OleVariant(3));
	end;
	EndUpdate();
end
2208
I am using GroupBy feature to create a tree, but the top rows are aligned with the children, not indented. What could be wrong

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TForm1.G2antt1AddGroupItem(ASender: TObject; Item : HITEM);
begin
	with G2antt1 do
	begin
		color := 14474460;
		with Items do
		begin
			ItemDivider[Item] := -1;
			CellValue[OleVariant(Item),OleVariant(1)] := OleVariant(CellCaption[OleVariant(Item),OleVariant(GroupItem[Item])]);
			AddBar(Item,'Progress','12/2/2017','12/2/2017',Null,Null);
			DefineSummaryBars(Item,'',-3,'');
			ItemBold[Item] := True;
			ItemBackColor[Item] := color;
		end;
		Chart.ItemBackColor[Item] := color;
	end
end;

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM);
begin
	with G2antt1 do
	begin
		with Items do
		begin
			AddBar(Item,'Task','12/4/2017','12/10/2017',Null,Null);
			ItemBar[Item,'',EXG2ANTTLib_TLB.exBarMove] := OleVariant(ItemToIndex[Item]);
		end;
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/2/2017';
		PaneWidth[False] := 128;
	end;
	with Columns do
	begin
		Add('C1');
		Add('C2');
	end;
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	with Items do
	begin
		h := AddItem('Item A');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem A.1';
		h := AddItem('Item A');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem A.1';
		h := AddItem('Item A');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem A.1';
		h := AddItem('Item A');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem A.1';
		h := AddItem('Item B');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem B.1';
		h := AddItem('Item B');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem B.1';
	end;
	Columns.Item[OleVariant(0)].SortOrder := EXG2ANTTLib_TLB.SortAscending;
	EndUpdate();
end
2207
How can I change the names from English to my locale (localization)
with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		AllowResizeChart := Integer(EXG2ANTTLib_TLB.exAllowChangeUnitScale) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartMiddle) Or Integer(EXG2ANTTLib_TLB.exAllowResizeChartHeader);
		MonthNames := LocMonthNames;
		WeekDays := LocWeekDays;
		AMPM := LocAMPM;
		FirstWeekDay := LocFirstWeekDay;
		Label[EXG2ANTTLib_TLB.exMonth] := '<|><%loc_m1%><|><%loc_m2%><|><%loc_m3%><|><%loc_mmmm%><|><%loc_m3%> ''<%yy%><|><%loc_mmmm%> <%yyyy%>';
		Label[EXG2ANTTLib_TLB.exWeek] := '<|>KW<%ww%><|><%d%>. <%loc_m3%>, ''<%yy%><r>KW<%ww%><|><%d%>. <%loc_mmmm%>, <%yyyy%><r>KW<%ww%><||><||>256';
		Label[EXG2ANTTLib_TLB.exDay] := '<|><%loc_d1%><|><%loc_d2%><|><%loc_d3%><|><%loc_dddd%><|><%loc_d3%>, <%d%>. <%loc_m3%>, ''<%yy%><|><%loc_dddd%>, <%d%>. <%loc_mmm' + 
	'm%>, <%yyyy%><||><||>4096';
		Label[EXG2ANTTLib_TLB.exHour] := '<|><%hh%><|><%hh%><|><%loc_d3%>, <%d%>. <%loc_m3%>, ''<%yy%> <%hh%><|><%loc_dddd%>, <%d%>. <%loc_mmmm%>, <%yyyy%> <%hh%><||><||>6' + 
	'5536';
		Label[EXG2ANTTLib_TLB.exMinute] := '<|><%nn%><|><%hh%>:<%nn%><|><%loc_d3%>, <%d%>. <%loc_m3%>, ''<%yy%> <%hh%>:<%nn%><|><%loc_dddd%>, <%d%>. <%loc_mmmm%>, <%yyyy%> <' + 
	'%hh%>:<%nn%>';
		Label[EXG2ANTTLib_TLB.exSecond] := '<|><%ss%><|><%nn%>:<%ss%><|><%hh%>:<%nn%>:<%ss%><|><%loc_d3%>, <%d%>. <%loc_m3%>, ''<%yy%> <%hh%>:<%nn%>:<%ss%><|><%loc_dddd%>, <' + 
	'%d%>. <%loc_mmmm%>, <%yyyy%> <%hh%>:<%nn%>:<%ss%>';
		LabelToolTip[EXG2ANTTLib_TLB.exMonth] := '<%loc_mmmm%>/<%yyyy%>';
		LabelToolTip[EXG2ANTTLib_TLB.exWeek] := '<%d%>. <%loc_mmmm%>, <%yyyy%> KW<%ww%>';
		LabelToolTip[EXG2ANTTLib_TLB.exDay] := '<%loc_dddd%>, <%d%>. <%loc_mmmm%> , <%yyyy%>';
		LabelToolTip[EXG2ANTTLib_TLB.exHour] := '<%loc_dddd%>, <%d%>. <%loc_mmmm%>, <%yyyy%> <%hh%>';
		LabelToolTip[EXG2ANTTLib_TLB.exMinute] := '<%loc_dddd%>, <%d%>. <%loc_mmmm%>, <%yyyy%> <%hh%>:<%nn%>';
		LabelToolTip[EXG2ANTTLib_TLB.exSecond] := '<%loc_dddd%>, <%d%>. <%loc_mmmm%>  <%yyyy%> <%hh%>:<%nn%>:<%ss%>';
		ToolTip := '<%ddd%> <%d%>. <%loc_mmmm%> <%yyyy%>';
		PaneWidth[False] := 0;
		LevelCount := 2;
		UnitScale := EXG2ANTTLib_TLB.exDay;
		UnitWidth := 24;
	end;
	EndUpdate();
end
2206
Is it possible to change the pattern for selection within the control's overview part (I would prefer a semi-transparent or solid color instead)

with G2antt1 do
begin
	BeginUpdate();
	VisualAppearance.Add(2,'gBFLBCJwBAEHhEJAAEhABMsGACAADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYJAKCQ5DBJUBjTBcEwKGCQBwASQpUhqHYDTbIMByBI' + 
	'UIxUACUJAgeCRYiAMo8RrSEZARBNGR3GqaJ7oGTpRoaP4iSBTUThBRsPyhHqOBpEWIRSqKEQ1DBYcI2RZUaxBJQAAbrWr5VpKKYnSzBA4TBQkSTpGicZxteoJeiefIEV' + 
	'THFwRNaFNS1Linb7ia5qCwmOJXUjcYAYfBOIR1SSBbIsawbNACbJnWjENYVdAdNTlAbPNAyPBqSDaMYRDCOND1BhuNATWSNLq2XZ5OzrGIaVjmWbbfwELZFUqydJ0exe' + 
	'iYNw/kGZBuDCHR/DeEYaCgGhMGcQ4pkiSxDgGXhIESW5MFgbQJBQZx+DScJEGsVZdnufggG+f5fnPFB/ooBZ/EaIAoBYBoBmASAeAqApfjgJgMgOYAoDoEIEl+WBKBSB' + 
	'QhGgXgQgYYYoDIHIHGCKB+CCAYiCiDgREWYhoG4KIKGGaIuCyCBfhiRQJDqXxgAEASAg');
	SelBackMode := EXG2ANTTLib_TLB.exTransparent;
	Columns.Add('Tasks');
	with Chart do
	begin
		OverviewVisible := EXG2ANTTLib_TLB.exOverviewShowAll;
		OverviewHeight := 64;
		FirstVisibleDate := '7/30/2018';
		LevelCount := 2;
		PaneWidth[False] := 128;
		SelBackColor := G2antt1.SelBackColor;
		SelBarColor := $808080;
		OverviewSelBackColor := $200ff00;
		OverviewSelTransparent[True] := 50;
	end;
	SelBackColor := BackColor;
	SelForeColor := ForeColor;
	with Items do
	begin
		AddBar(AddItem('Task 1'),'Task','8/2/2017','8/8/2017',Null,Null);
		AddBar(AddItem('Task 2'),'Task','8/3/2018','8/10/2018',Null,Null);
		AddBar(AddItem('Task 3'),'Task','8/4/2019','8/12/2019',Null,Null);
		SelectItem[ItemByIndex[1]] := True;
	end;
	EndUpdate();
end
2205
How can I display an item of picture type

with G2antt1 do
begin
	BeginUpdate();
	LinesAtRoot := EXG2ANTTLib_TLB.exLinesAtRoot;
	ScrollBySingleLine := False;
	HeaderAppearance := EXG2ANTTLib_TLB.Etched;
	HeaderHeight := 24;
	(IUnknown(Columns.Add('Artikel')) as EXG2ANTTLib_TLB.Column).HTMLCaption := '<u>Artikel';
	(IUnknown(Columns.Add('Waarde')) as EXG2ANTTLib_TLB.Column).HTMLCaption := '<u>Waarde';
	HTMLPicture['T22128'] := 'c:\exontrol\images\zipdisk.gif';
	with Items do
	begin
		h := AddItem('T22128-28)2D');
		h1 := InsertItem(h,Null,'<img>T22128:128</img>');
		CellValueFormat[OleVariant(h1),OleVariant(0)] := EXG2ANTTLib_TLB.exHTML;
		ItemHeight[h1] := 128;
		h1 := InsertItem(h,Null,'werkvoorbereiding');
		CellValue[OleVariant(h1),OleVariant(1)] := '5.80';
		CellBold[OleVariant(h1),OleVariant(1)] := True;
		CellValue[OleVariant(InsertItem(h1,Null,'Type')),OleVariant(1)] := 'Eenvoudig';
		CellValue[OleVariant(InsertItem(h1,Null,'Prijs p/uur')),OleVariant(1)] := '60,00';
		CellValue[OleVariant(InsertItem(h1,Null,'Marhe')),OleVariant(1)] := '15,00%';
		CellValue[OleVariant(InsertItem(h1,Null,'Insteltijd min.')),OleVariant(1)] := '5,00';
		CellValue[OleVariant(InsertItem(h1,Null,'Aantal')),OleVariant(1)] := OleVariant(1);
		CellValue[OleVariant(InsertItem(h1,Null,'Kostprije')),OleVariant(1)] := '5,00';
		ExpandItem[h1] := True;
		h1 := InsertItem(h,Null,'materiall');
		CellValue[OleVariant(h1),OleVariant(1)] := '14.82';
		CellBold[OleVariant(h1),OleVariant(1)] := True;
		ItemHasChildren[h1] := True;
		h1 := InsertItem(h,Null,'snijden');
		CellValue[OleVariant(h1),OleVariant(1)] := '3.13';
		CellBold[OleVariant(h1),OleVariant(1)] := True;
		ItemHasChildren[h1] := True;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
2204
How can I bold the root group-items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TForm1.G2antt1AddGroupItem(ASender: TObject; Item : HITEM);
begin
	with G2antt1 do
	begin
		with Items do
		begin
			AddBar(Item,'Progress','12/2/2017','12/2/2017',Null,Null);
			DefineSummaryBars(Item,'',-3,'');
			ItemBold[Item] := True;
		end;
	end
end;

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.G2antt1AddItem(ASender: TObject; Item : HITEM);
begin
	with G2antt1 do
	begin
		Items.AddBar(Item,'Task','12/4/2017','12/10/2017',Null,Null);
	end
end;

with G2antt1 do
begin
	BeginUpdate();
	with Chart do
	begin
		LevelCount := 2;
		FirstVisibleDate := '12/2/2017';
		PaneWidth[False] := 342;
	end;
	with Columns do
	begin
		with (IUnknown(Add('C1')) as EXG2ANTTLib_TLB.Column) do
		begin
			GroupByFormatCell := '''<caption> ('' + value + '')''';
		end;
		Add('C2');
		Add('C3');
		with (IUnknown(Add('Pos')) as EXG2ANTTLib_TLB.Column) do
		begin
			FormatColumn := '1 pos ``';
			AllowGroupBy := False;
			Position := 0;
			Width := 48;
			AllowSizing := False;
		end;
	end;
	SortBarVisible := True;
	SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
	AllowGroupBy := True;
	with Items do
	begin
		h := AddItem('Item A');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem A.1';
		CellValue[OleVariant(h),OleVariant(2)] := 'SubItem A.2';
		h := AddItem('Item A');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem A.1';
		CellValue[OleVariant(h),OleVariant(2)] := 'SubItem A.2';
		h := AddItem('Item A');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem A.1';
		CellValue[OleVariant(h),OleVariant(2)] := 'SubItem A.2';
		h := AddItem('Item A');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem A.1';
		CellValue[OleVariant(h),OleVariant(2)] := 'SubItem A.2';
		h := AddItem('Item B');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem B.1';
		CellValue[OleVariant(h),OleVariant(2)] := 'SubItem B.2';
		h := AddItem('Item B');
		CellValue[OleVariant(h),OleVariant(1)] := 'SubItem B.1';
		CellValue[OleVariant(h),OleVariant(2)] := 'SubItem B.2';
	end;
	Columns.Item[OleVariant(0)].SortOrder := EXG2ANTTLib_TLB.SortAscending;
	EndUpdate();
end
2203
The exBarTransparent does not work for overlaid-bars

with G2antt1 do
begin
	BeginUpdate();
	BackColorAlternate := RGB(240,240,240);
	Columns.Add('Task');
	with Chart do
	begin
		AllowCreateBar := EXG2ANTTLib_TLB.exCreateBarAuto;
		AllowLinkBars := False;
		PaneWidth[False] := 48;
		FirstVisibleDate := '1/1/2001';
		LevelCount := 2;
		with Bars.Item['Task'] do
		begin
			OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
			Pattern := EXG2ANTTLib_TLB.exPatternSolid;
			Overlaid[EXG2ANTTLib_TLB.exOverlaidBarsTransparent] := OleVariant(0);
			Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%9%>';
			Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18);
		end;
	end;
	with Items do
	begin
		h := AddItem('Task 1');
		AddBar(h,'Task','1/2/2001','1/4/2001','A1',Null);
		AddBar(h,'Task','1/3/2001','1/5/2001','A2',Null);
		h := AddItem('Task 2');
		AddBar(h,'Task','1/7/2001','1/11/2001','B1',Null);
		AddBar(h,'Task','1/8/2001','1/12/2001','B2',Null);
		ItemBar[0,'<*>',EXG2ANTTLib_TLB.exBarTransparent] := OleVariant(75);
	end;
	EndUpdate();
end
2202
We’re adding tasks on the chart which have a caption that is not clipped (and left aligned). When we add another task right after the first one, then the caption from that first bar is “stuck” behind the second bar. The bar's z-order is determined by the bar's key.

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Tasks');
	DefaultItemHeight := 24;
	with Chart do
	begin
		NonworkingDays := 0;
		FirstVisibleDate := '9/17/2006';
		PaneWidth[False] := 96;
		LevelCount := 2;
		with Bars.Add('Green') do
		begin
			Color := $ff00;
			Def[EXG2ANTTLib_TLB.exBarOffset] := OleVariant(-2);
			Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%9%>';
			Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18);
		end;
		with Bars.Add('Red') do
		begin
			Color := $ff;
			Def[EXG2ANTTLib_TLB.exBarOffset] := OleVariant(2);
			Def[EXG2ANTTLib_TLB.exBarCaption] := '<%=%9%>';
			Def[EXG2ANTTLib_TLB.exBarHAlignCaption] := OleVariant(18);
		end;
	end;
	with Items do
	begin
		h1 := AddItem('Red / Green');
		AddBar(h1,'Green','9/21/2006','9/27/2006','K1',Null);
		AddBar(h1,'Red','9/23/2006','9/25/2006','K2',Null);
		h1 := AddItem('Green / Red');
		AddBar(h1,'Green','9/21/2006','9/27/2006','K2',Null);
		AddBar(h1,'Red','9/23/2006','9/25/2006','K1',Null);
	end;
	EndUpdate();
end
2201
The caption/text of the link is overwritten by its line. What can be done

with G2antt1 do
begin
	BeginUpdate();
	Columns.Add('Task');
	with Chart do
	begin
		PaneWidth[False] := 64;
		FirstVisibleDate := '6/21/2005';
		ResizeUnitScale := EXG2ANTTLib_TLB.exHour;
		UnitWidth := 48;
		Level[0].Label := '<b><%mmm%></b> <%dd%>';
		LinksWidth := 3;
	end;
	with Items do
	begin
		h := AddItem('Root');
		AddBar(h,'Task','6/22/2005','6/23/2005',Null,Null);
		h1 := InsertItem(h,Null,'Child');
		AddBar(h1,'Task','6/24/2005 8:00:00 AM','6/24/2005 4:00:00 PM',Null,Null);
		AddLink('Link1',h,'',h1,'');
		Link['Link1',EXG2ANTTLib_TLB.exLinkText] := '<bgcolor=FFFFFF> link </bgcolor>';
		ExpandItem[h] := True;
	end;
	EndUpdate();
end