|
53
|
How can I prevent the control from filtering while the user is typing in the filter prompt, and apply the filter only when the Enter key is pressed
with G2Host1 do
begin
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
BeginUpdate();
ColumnAutoResize := True;
ContinueColumnScroll := False;
FocusColumnIndex := 1;
MarkSearchColumn := False;
SearchColumnIndex := 1;
FilterBarPromptVisible := Integer(EXG2ANTTLib_TLB.exFilterBarPromptOnEnter) Or Integer(EXG2ANTTLib_TLB.exFilterBarPromptVisible);
FilterBarPrompt := '<i><fgcolor=808080>Type filter and press Enter…</fgcolor></i>';
FilterBarPromptType := 3;
with Items do
begin
AddItem('Nancy Davolio');
AddItem('Andrew Fuller');
AddItem('Janet Leverling');
AddItem('Margaret Peacock');
AddItem('Steven Buchanan');
AddItem('Michael Suyama');
AddItem('Robert King');
AddItem('Laura Callahan');
AddItem('Anne Dodsworth');
end;
EndUpdate();
end;
end
|
|
52
|
Print and Print Preview

with G2Host1 do
begin
HostReadOnly := EXG2HOSTLib_TLB.exHostReadOnly;
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
BeginUpdate();
ReplaceIcon('gAAAABgYACEHgUJFEEAAWhUJCEJEEJggEhMCYEXjUbjkJQECj8gj8hAEjkshYEpk8kf8ClsulsvAExmcvf83js5nU7nkCeEcn8boMaocXosCB9Hn09pkzcEuoL/fE+Ok' +
'YB0gB9YhIHrddgVcr9aktZADAD8+P8CgIA==',Null);
ReplaceIcon('C:\images\favicon.ico',OleVariant(0));
with Chart do
begin
FirstVisibleDate := '1/1/2001';
PaneWidth[False] := 128;
LevelCount := 2;
end;
with Items do
begin
h := AddItem('Task 1');
AddBar(h,'Task','1/2/2001','1/6/2001','K1',Null);
ItemBar[h,'K1',3] := '<img>1</img>';
end;
EndUpdate();
end;
with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print'))) as EXPRINTLib_TLB.Print) do
begin
PrintExt := (IUnknown(G2Host1.Host) as EXG2ANTTLib_TLB.G2antt);
Preview();
end;
end
|
|
51
|
How can I replace or add an icon at runtime

with G2Host1 do
begin
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
BeginUpdate();
ReplaceIcon('gAAAABgYACEHgUJFEEAAWhUJCEJEEJggEhMCYEXjUbjkJQECj8gj8hAEjkshYEpk8kf8ClsulsvAExmcvf83js5nU7nkCeEcn8boMaocXosCB9Hn09pkzcEuoL/fE+Ok' +
'YB0gB9YhIHrddgVcr9aktZADAD8+P8CgIA==',Null);
ReplaceIcon('C:\images\favicon.ico',OleVariant(0));
with Chart do
begin
FirstVisibleDate := '1/1/2001';
PaneWidth[False] := 128;
LevelCount := 2;
end;
with Items do
begin
h := AddItem('Task 1');
AddBar(h,'Task','1/2/2001','1/6/2001','K1',Null);
ItemBar[h,'K1',3] := '<img>1</img>';
end;
EndUpdate();
end;
end
|
|
50
|
How do I get the start/end of the bar once the BarResize/BarResizing event occurs

// HostEvent event - Notifies the application once the host fires an event.
procedure TForm1.G2Host1HostEvent(ASender: TObject; EventID : HostEventEnum);
begin
with G2Host1 do
begin
h := HostEventParam[0];
key := HostEventParam[1];
OutputDebugString( HostEventParam[-2] );
OutputDebugString( 'Start:' );
OutputDebugString( Host.Items.ItemBar[h,OleVariant(key),1] );
OutputDebugString( HostEventParam[-2] );
OutputDebugString( 'End:' );
OutputDebugString( Host.Items.ItemBar[h,OleVariant(key),2] );
end
end;
with G2Host1 do
begin
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart do
begin
PaneWidth[False] := 128;
FirstVisibleDate := '3/30/2019';
end;
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items do
begin
AddBar(AddItem('Task'),'Task','4/1/2019','4/14/2019',Null,Null);
end;
end
|
|
49
|
How do I get the bar/task from the cursor
// HostEvent event - Notifies the application once the host fires an event.
procedure TForm1.G2Host1HostEvent(ASender: TObject; EventID : HostEventEnum);
begin
with G2Host1 do
begin
OutputDebugString( 'Event:' );
OutputDebugString( HostEventParam[-2] );
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
i := ItemFromPoint[-1,-1,c,h];
OutputDebugString( 'Cell:' );
OutputDebugString( Items.CellCaption[OleVariant(i),OleVariant(c)] );
with Chart do
begin
b := BarFromPoint[-1,1];
OutputDebugString( 'Bar:' );
OutputDebugString( (IUnknown(G2Host1.Host) as EXG2ANTTLib_TLB.G2antt).Items.ItemBar[i,OleVariant(b),0] );
end;
end;
end
end;
|
|
48
|
How do I get the cell from the cursor

// HostEvent event - Notifies the application once the host fires an event.
procedure TForm1.G2Host1HostEvent(ASender: TObject; EventID : HostEventEnum);
begin
with G2Host1 do
begin
OutputDebugString( 'Event:' );
OutputDebugString( HostEventParam[-2] );
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
i := ItemFromPoint[-1,-1,c,h];
OutputDebugString( 'Cell:' );
OutputDebugString( Items.CellCaption[OleVariant(i),OleVariant(c)] );
end;
end
end;
|
|
47
|
How can I highlights cells based on its value

with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataField[EXG2HOSTLib_TLB.exTasksColor] := 'Color';
DataField[EXG2HOSTLib_TLB.exTasksCaption] := 'TaskName';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
BeginUpdate();
BackColorAlternate := $0;
with Columns.Item['Title'] do
begin
Def[4] := OleVariant(15790320);
Width := AutoWidth;
end;
with ConditionalFormats do
begin
Add('lower(%4) contains `manager`',Null).Bold := True;
Add('%3',Null).BackColor := $f0f0f0;
end;
Items.ExpandItem[0] := True;
with Columns.Item['EmployeeID'] do
begin
Width := AutoWidth;
end;
EndUpdate();
end;
end
|
|
46
|
How do I programatically hide a column

with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataField[EXG2HOSTLib_TLB.exTasksColor] := 'Color';
DataField[EXG2HOSTLib_TLB.exTasksCaption] := 'TaskName';
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Columns.Item['LastName'].Visible := False;
end
|
|
45
|
Is it possible to get the information from the control when we click on the bar/item

// HostEvent event - Notifies the application once the host fires an event.
procedure TForm1.G2Host1HostEvent(ASender: TObject; EventID : HostEventEnum);
begin
with G2Host1 do
begin
OutputDebugString( HostEventParam[-2] );
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
i := ItemFromPoint[-1,-1,c,hit];
OutputDebugString( 'cell''s value from cursor: ' );
OutputDebugString( Items.CellValue[OleVariant(i),OleVariant(c)] );
OutputDebugString( 'cell''s value on col 1: ' );
OutputDebugString( Items.CellValue[OleVariant(i),OleVariant(1)] );
b := Chart.BarFromPoint[-1,-1];
OutputDebugString( 'Bar:' );
OutputDebugString( b );
OutputDebugString( 'Bar Start:' );
OutputDebugString( Items.ItemBar[i,OleVariant(b),1] );
OutputDebugString( 'Bar End:' );
OutputDebugString( Items.ItemBar[i,OleVariant(b),2] );
OutputDebugString( 'Bar Caption:' );
OutputDebugString( Items.ItemBar[i,OleVariant(b),3] );
end;
end
end;
with G2Host1 do
begin
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
Debug := True;
with Chart.Bars.Item['Task'] do
begin
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'Task,Progress';
end;
end;
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataField[EXG2HOSTLib_TLB.exTasksColor] := 'Color';
DataField[EXG2HOSTLib_TLB.exTasksCaption] := 'TaskName';
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart do
begin
PaneWidth[False] := 128;
ScrollTo('5/27/2017',OleVariant(1));
end;
end
|
|
44
|
How do I get the bar from the cursor

// HostEvent event - Notifies the application once the host fires an event.
procedure TForm1.G2Host1HostEvent(ASender: TObject; EventID : HostEventEnum);
begin
with G2Host1 do
begin
OutputDebugString( HostEventParam[-2] );
OutputDebugString( Host.Chart.BarFromPoint[-1,-1] );
end
end;
with G2Host1 do
begin
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
VisualAppearance.Add(1,'C:\Program Files\Exontrol\ExG2Host\Sample\EBN\Assorted\wbs-ass.ebn');
with Chart.Bars.Item['Task'] do
begin
Height := 15;
Color := $1ff0000;
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'Task,Progress';
end;
end;
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataField[EXG2HOSTLib_TLB.exTasksColor] := 'Color';
DataField[EXG2HOSTLib_TLB.exTasksCaption] := 'TaskName';
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart do
begin
PaneWidth[False] := 128;
ScrollTo('5/27/2017',OleVariant(1));
end;
end
|
|
43
|
How do I add Start/End columns

// HostEvent event - Notifies the application once the host fires an event.
procedure TForm1.G2Host1HostEvent(ASender: TObject; EventID : HostEventEnum);
begin
with G2Host1 do
begin
OutputDebugString( HostEventParam[-2] );
end
end;
with G2Host1 do
begin
HostReadOnly := Integer(EXG2HOSTLib_TLB.exHostReadWrite) Or Integer(EXG2HOSTLib_TLB.exHostAllowAddEmptyItem);
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
SingleSel := False;
OnResizeControl := 1;
ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exDisableNoVertical);
with (IUnknown(Columns.Add('Start')) as EXG2ANTTLib_TLB.Column) do
begin
AllowSizing := False;
Def[18] := OleVariant(1);
Editor.EditType := 7;
end;
with (IUnknown(Columns.Add('End')) as EXG2ANTTLib_TLB.Column) do
begin
AllowSizing := False;
Def[18] := OleVariant(2);
Editor.EditType := 7;
end;
Items.AllowCellValueToItemBar := True;
with Chart do
begin
AllowCreateBar := 1;
PaneWidth[False] := 256;
Bars.Item['Task'].OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
end;
end;
end
|
|
42
|
How do I hide the left/items/columns part of the control

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.Bars.Item['Task'] do
begin
Pattern := 1;
Color := $ff0000;
Def[19] := OleVariant(50);
end;
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataField[EXG2HOSTLib_TLB.exTasksColor] := 'Color';
DataField[EXG2HOSTLib_TLB.exTasksCaption] := 'TaskName';
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
HostReadOnly := Integer(EXG2HOSTLib_TLB.exHostReadWrite) Or Integer(EXG2HOSTLib_TLB.exHostAllowAddEmptyItem);
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
OnResizeControl := Integer(EXG2ANTTLib_TLB.exDisableSplitter) Or Integer(EXG2ANTTLib_TLB.exResizeChart);
with Chart do
begin
ColumnsFormatLevel := '1';
PaneWidth[False] := 0;
ScrollTo('5/27/2017',OleVariant(1));
end;
end;
end
|
|
41
|
How do I hide the right/chart/tasks part of the control

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.Bars.Item['Task'] do
begin
Pattern := 1;
Color := $ff0000;
Def[19] := OleVariant(50);
end;
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataField[EXG2HOSTLib_TLB.exTasksColor] := 'Color';
DataField[EXG2HOSTLib_TLB.exTasksCaption] := 'TaskName';
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
with Chart do
begin
PaneWidth[True] := 0;
OverviewVisible := 0;
end;
end;
end
|
|
40
|
How do hide the top/overview part of the control

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := DataField[EXG2HOSTLib_TLB.exItemsDataSource];
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'BirthDate';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'HireDate';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
with Chart do
begin
OverviewVisible := 0;
PaneWidth[False] := 256;
ScrollTo('4/27/1969',OleVariant(1));
end;
end;
end
|
|
39
|
How do I resize the panels

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
VisualAppearance.Add(1,'C:\Program Files\Exontrol\ExG2Host\Sample\EBN\Assorted\wbs-ass.ebn');
with Chart.Bars.Item['Task'] do
begin
Height := 15;
Color := $1ff0000;
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'Task,Progress';
end;
end;
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataField[EXG2HOSTLib_TLB.exTasksColor] := 'Color';
DataField[EXG2HOSTLib_TLB.exTasksCaption] := 'TaskName';
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart do
begin
PaneWidth[False] := 128;
ScrollTo('5/27/2017',OleVariant(1));
end;
end
|
|
38
|
How do I lock the first column

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
CountLockedColumns := 1;
BackColorLock := BackColorAlternate;
end;
end
|
|
37
|
How do I specify a different color for the tasks ( EBN color )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
VisualAppearance.Add(1,'C:\Program Files\Exontrol\ExG2Host\Sample\EBN\Assorted\wbs-ass.ebn');
with Chart.Bars.Item['Task'] do
begin
Height := 15;
Color := $1ff0000;
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'Task,Progress';
end;
end;
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataField[EXG2HOSTLib_TLB.exTasksColor] := 'Color';
DataField[EXG2HOSTLib_TLB.exTasksCaption] := 'TaskName';
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.PaneWidth[False] := 256;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.ScrollTo('5/27/2017',OleVariant(1));
end
|
|
36
|
How do I specify a different color for the tasks ( solid color, transparent )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.Bars.Item['Task'] do
begin
Pattern := 1;
Color := $ff0000;
Def[19] := OleVariant(50);
end;
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataField[EXG2HOSTLib_TLB.exTasksColor] := 'Color';
DataField[EXG2HOSTLib_TLB.exTasksCaption] := 'TaskName';
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.PaneWidth[False] := 256;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.ScrollTo('5/27/2017',OleVariant(1));
end
|
|
35
|
GroupBy

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataSource['Links'] := DataSource['Items'];
DataMember['Links'] := 'EmployeeLinks';
DataField[EXG2HOSTLib_TLB.exLinksDataSource] := 'Links';
DataField[EXG2HOSTLib_TLB.exLinksStart] := 'Start';
DataField[EXG2HOSTLib_TLB.exLinksEnd] := 'End';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
AllowGroupBy := True;
SortBarVisible := True;
BackColorSortBar := (IUnknown(G2Host1.Host) as EXG2ANTTLib_TLB.G2antt)BackColor;
BackColorSortBarCaption := BackColorSortBar;
SortBarCaption := '<sha ;;0><fgcolor=FF0000>Drag a <b>column</b> header here to sort by that column.';
with Chart.Bars.Item['Task'] do
begin
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'Task,Progress';
end;
Items.ExpandItem[0] := True;
CountLockedColumns := 1;
BackColorLock := BackColorAlternate;
with Columns.Item['EmployeeID'] do
begin
AllowGroupBy := False;
Def[7] := OleVariant((IUnknown(G2Host1.Host) as EXG2ANTTLib_TLB.G2antt).BackColorAlternate);
end;
Columns.Item['Title'].SortOrder := 1;
end;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.ScrollTo('5/27/2017',OleVariant(1));
end
|
|
34
|
How can I hide a column
// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Columns.Item[OleVariant(0)].Visible := False;
end
|
|
33
|
Can row errors being highligted until the user correct them, not to clear them as soon a change occurs

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
HostDef[EXG2HOSTLib_TLB.exErrorClearOnChange] := OleVariant(False);
end
|
|
32
|
No error is highligthed

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
end
|
|
31
|
I've noticed that rows with errors are shown in red. Is it possible to change the colors

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
HostDef[EXG2HOSTLib_TLB.exErrorBackColor] := OleVariant(0);
HostDef[EXG2HOSTLib_TLB.exErrorForeColor] := OleVariant(16777215);
end
|
|
30
|
Is it possible to rename the (New) to something else

with G2Host1 do
begin
HostDef[EXG2HOSTLib_TLB.exNew] := '*';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
BeginUpdate();
Items.AddItem('A');
Items.AddItem('B');
EndUpdate();
end;
Refresh();
end
|
|
29
|
How can I hide the (New) item (sample 2)

with G2Host1 do
begin
HostReadOnly := Integer(EXG2HOSTLib_TLB.exHostAllowUpdate) Or Integer(EXG2HOSTLib_TLB.exHostAllowDelete);
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
BeginUpdate();
Items.AddItem('A');
Items.AddItem('B');
EndUpdate();
end;
end
|
|
28
|
How can I hide the (New) item (sample 1)

with G2Host1 do
begin
HostDef[EXG2HOSTLib_TLB.exNew] := '';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
BeginUpdate();
Items.AddItem('A');
Items.AddItem('B');
EndUpdate();
end;
Refresh();
end
|
|
27
|
Read-Only

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
HostReadOnly := EXG2HOSTLib_TLB.exHostReadOnly;
end
|
|
26
|
How can I prevent user create new /delete tasks ( only move or resize then )
// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataSource['Links'] := DataSource['Items'];
DataMember['Links'] := 'EmployeeLinks';
DataField[EXG2HOSTLib_TLB.exLinksDataSource] := 'Links';
DataField[EXG2HOSTLib_TLB.exLinksStart] := 'Start';
DataField[EXG2HOSTLib_TLB.exLinksEnd] := 'End';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.Bars.Item['Task'] do
begin
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'Task,Progress';
end;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
HostReadOnly := EXG2HOSTLib_TLB.exHostAllowUpdate;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.ScrollTo('5/27/2017',OleVariant(1));
end
|
|
25
|
How do I get the row/item/task/link from the cursor

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
// HostEvent event - Notifies the application once the host fires an event.
procedure TForm1.G2Host1HostEvent(ASender: TObject; EventID : HostEventEnum);
begin
with G2Host1 do
begin
OutputDebugString( HostContext.ToString );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
HostReadOnly := Integer(EXG2HOSTLib_TLB.exHostAllowUpdate) Or Integer(EXG2HOSTLib_TLB.exHostAllowAddNew);
end
|
|
24
|
Disable Delete
// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
HostReadOnly := Integer(EXG2HOSTLib_TLB.exHostAllowUpdate) Or Integer(EXG2HOSTLib_TLB.exHostAllowAddNew);
end
|
|
23
|
Disable AddNew

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
HostReadOnly := Integer(EXG2HOSTLib_TLB.exHostAllowUpdate) Or Integer(EXG2HOSTLib_TLB.exHostAllowDelete);
end
|
|
22
|
ACCDB sample ( file )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataSource['Links'] := DataSource['Items'];
DataMember['Links'] := 'EmployeeLinks';
DataField[EXG2HOSTLib_TLB.exLinksDataSource] := 'Links';
DataField[EXG2HOSTLib_TLB.exLinksStart] := 'Start';
DataField[EXG2HOSTLib_TLB.exLinksEnd] := 'End';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.Bars.Item['Task'] do
begin
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'Task,Progress';
end;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.ScrollTo('5/27/2017',OleVariant(1));
end
|
|
21
|
MDB sample ( file )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\sample.mdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataSource['Links'] := DataSource['Items'];
DataMember['Links'] := 'EmployeeLinks';
DataField[EXG2HOSTLib_TLB.exLinksDataSource] := 'Links';
DataField[EXG2HOSTLib_TLB.exLinksStart] := 'Start';
DataField[EXG2HOSTLib_TLB.exLinksEnd] := 'End';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.Bars.Item['Task'] do
begin
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'Task,Progress';
end;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.ScrollTo('5/27/2017',OleVariant(1));
end
|
|
20
|
DBF sample ( file )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\sample.dbf';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
end
|
|
19
|
DAO sample ( object, DAO.DBEngine.120, multiple tasks, multiple tables )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.120'))) as DAO_TLB.PrivDBEngine) do
begin
with OpenDatabase('C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb',Null,Null,Null) do
begin
rsEmployees := (IUnknown(OpenRecordset('Employees',Null,Null,Null)) as DAO_TLB.Recordset2);
rsTasks := (IUnknown(OpenRecordset('EmployeeDetails',Null,Null,Null)) as DAO_TLB.Recordset2);
rsLinks := (IUnknown(OpenRecordset('EmployeeLinks',Null,Null,Null)) as DAO_TLB.Recordset2);
end;
end;
DataSource['Items'] := (IUnknown(rsEmployees) as DAO_TLB.Recordset2);
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataSource['Tasks'] := (IUnknown(rsTasks) as DAO_TLB.Recordset2);
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataSource['Links'] := (IUnknown(rsLinks) as DAO_TLB.Recordset2);
DataField[EXG2HOSTLib_TLB.exLinksDataSource] := 'Links';
DataField[EXG2HOSTLib_TLB.exLinksStart] := 'Start';
DataField[EXG2HOSTLib_TLB.exLinksEnd] := 'End';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.Bars.Item['Task'] do
begin
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'Task,Progress';
end;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.ScrollTo('5/27/2017',OleVariant(1));
end
|
|
18
|
DAO sample ( file, multiple tasks, multiple tables )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataTechnology['Items'] := 'DAO.DBEngine.120;DAO.DBEngine.36';
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataTechnology['Tasks'] := 'DAO.DBEngine.120;DAO.DBEngine.36';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataTechnology['Links'] := 'DAO.DBEngine.120;DAO.DBEngine.36';
DataSource['Links'] := DataSource['Items'];
DataMember['Links'] := 'EmployeeLinks';
DataField[EXG2HOSTLib_TLB.exLinksDataSource] := 'Links';
DataField[EXG2HOSTLib_TLB.exLinksStart] := 'Start';
DataField[EXG2HOSTLib_TLB.exLinksEnd] := 'End';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.Bars.Item['Task'] do
begin
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'Task,Progress';
end;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.ScrollTo('5/27/2017',OleVariant(1));
end
|
|
17
|
DAO sample ( object, DAO.DBEngine.120, single task, single table )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.120'))) as DAO_TLB.PrivDBEngine) do
begin
with OpenDatabase('C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb',Null,Null,Null) do
begin
rsEmployees := (IUnknown(OpenRecordset('Employees',Null,Null,Null)) as DAO_TLB.Recordset2);
rsLinks := (IUnknown(OpenRecordset('EmployeeLinks',Null,Null,Null)) as DAO_TLB.Recordset2);
end;
end;
DataSource['Items'] := (IUnknown(rsEmployees) as DAO_TLB.Recordset2);
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := DataField[EXG2HOSTLib_TLB.exItemsDataSource];
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'BirthDate';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'HireDate';
DataSource['Links'] := (IUnknown(rsLinks) as DAO_TLB.Recordset2);
DataField[EXG2HOSTLib_TLB.exLinksDataSource] := 'Links';
DataField[EXG2HOSTLib_TLB.exLinksStart] := 'Start';
DataField[EXG2HOSTLib_TLB.exLinksEnd] := 'End';
end
|
|
16
|
DAO sample ( file, single task, single table )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataTechnology['Items'] := 'DAO.DBEngine.120;DAO.DBEngine.36';
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := DataField[EXG2HOSTLib_TLB.exItemsDataSource];
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'BirthDate';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'HireDate';
DataTechnology['Links'] := 'DAO.DBEngine.120;DAO.DBEngine.36';
DataSource['Links'] := DataSource['Items'];
DataMember['Links'] := 'EmployeeLinks';
DataField[EXG2HOSTLib_TLB.exLinksDataSource] := 'Links';
DataField[EXG2HOSTLib_TLB.exLinksStart] := 'Start';
DataField[EXG2HOSTLib_TLB.exLinksEnd] := 'End';
end
|
|
15
|
DAO sample ( tree recordset )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataTechnology['Items'] := 'DAO.DBEngine.120;DAO.DBEngine.36';
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
end
|
|
14
|
DAO sample ( flat recordset )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.120'))) as DAO_TLB.PrivDBEngine) do
begin
with OpenDatabase('C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb',Null,Null,Null) do
begin
rsEmployees := (IUnknown(OpenRecordset('Employees',Null,Null,Null)) as DAO_TLB.Recordset2);
end;
end;
DataSource['Items'] := (IUnknown(rsEmployees) as DAO_TLB.Recordset2);
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
end
|
|
13
|
DAO sample ( flat )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataTechnology['Items'] := 'DAO.DBEngine.120;DAO.DBEngine.36';
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
end
|
|
12
|
ADO sample ( object, ADODB.Recordset, multiple tasks )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
rsEmployees := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
rsEmployees.Open('Employees','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb',3,3,Null);
DataSource['Items'] := (IUnknown(rsEmployees) as ADODB_TLB.Recordset);
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
rsTasks := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
rsTasks.Open('EmployeeDetails','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb',3,3,Null);
DataSource['Tasks'] := (IUnknown(rstasks) as ADODB_TLB.Recordset);
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
rsLinks := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
rsLinks.Open('EmployeeLinks','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb',3,3,Null);
DataSource['Links'] := (IUnknown(rsLinks) as ADODB_TLB.Recordset);
DataField[EXG2HOSTLib_TLB.exLinksDataSource] := 'Links';
DataField[EXG2HOSTLib_TLB.exLinksStart] := 'Start';
DataField[EXG2HOSTLib_TLB.exLinksEnd] := 'End';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.Bars.Item['Task'] do
begin
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'Task,Progress';
end;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.ScrollTo('5/27/2017',OleVariant(1));
end
|
|
11
|
ADO sample ( file, multiple tasks, multiple tables )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataTechnology['Items'] := 'ADODB.Recordset;ADOR.Recordset';
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataTechnology['Tasks'] := 'ADODB.Recordset;ADOR.Recordset';
DataSource['Tasks'] := DataSource['Items'];
DataMember['Tasks'] := 'EmployeeDetails';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := 'Tasks';
DataField[EXG2HOSTLib_TLB.exTasksItemID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'DateStart';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'DateEnd';
DataField[EXG2HOSTLib_TLB.exTasksID] := 'TaskID';
DataTechnology['Links'] := 'ADODB.Recordset;ADOR.Recordset';
DataSource['Links'] := DataSource['Items'];
DataMember['Links'] := 'EmployeeLinks';
DataField[EXG2HOSTLib_TLB.exLinksDataSource] := 'Links';
DataField[EXG2HOSTLib_TLB.exLinksStart] := 'Start';
DataField[EXG2HOSTLib_TLB.exLinksEnd] := 'End';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.Bars.Item['Task'] do
begin
OverlaidType := Integer(EXG2ANTTLib_TLB.exOverlaidBarsStackAutoArrange) Or Integer(EXG2ANTTLib_TLB.exOverlaidBarsStack);
OverlaidGroup := 'Task,Progress';
end;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Items.ExpandItem[0] := True;
(IUnknown(Host) as EXG2ANTTLib_TLB.G2antt).Chart.ScrollTo('5/27/2017',OleVariant(1));
end
|
|
10
|
ADO sample ( object, ADODB.Recordset, single task, single table )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
rsEmployees := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
rsEmployees.Open('Employees','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb',3,3,Null);
DataSource['Items'] := (IUnknown(rsEmployees) as ADODB_TLB.Recordset);
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := DataField[EXG2HOSTLib_TLB.exItemsDataSource];
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'BirthDate';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'HireDate';
rsLinks := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
rsLinks.Open('EmployeeLinks','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb',3,3,Null);
DataSource['Links'] := (IUnknown(rsLinks) as ADODB_TLB.Recordset);
DataField[EXG2HOSTLib_TLB.exLinksDataSource] := 'Links';
DataField[EXG2HOSTLib_TLB.exLinksStart] := 'Start';
DataField[EXG2HOSTLib_TLB.exLinksEnd] := 'End';
end
|
|
9
|
ADO sample ( file, single task, single table )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataTechnology['Items'] := 'ADODB.Recordset;ADOR.Recordset';
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
DataField[EXG2HOSTLib_TLB.exTasksDataSource] := DataField[EXG2HOSTLib_TLB.exItemsDataSource];
DataField[EXG2HOSTLib_TLB.exTasksStart] := 'BirthDate';
DataField[EXG2HOSTLib_TLB.exTasksEnd] := 'HireDate';
DataTechnology['Links'] := 'ADODB.Recordset;ADOR.Recordset';
DataSource['Links'] := DataSource['Items'];
DataMember['Links'] := 'EmployeeLinks';
DataField[EXG2HOSTLib_TLB.exLinksDataSource] := 'Links';
DataField[EXG2HOSTLib_TLB.exLinksStart] := 'Start';
DataField[EXG2HOSTLib_TLB.exLinksEnd] := 'End';
end
|
|
8
|
ADO sample ( tree recordset )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataTechnology['Items'] := 'ADODB.Recordset;ADOR.Recordset';
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
DataField[EXG2HOSTLib_TLB.exItemsID] := 'EmployeeID';
DataField[EXG2HOSTLib_TLB.exItemsParentID] := 'ReportsTo';
end
|
|
7
|
ADO sample ( flat recordset )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
rsEmployees := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
rsEmployees.Open('Employees','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb',3,3,Null);
DataSource['Items'] := (IUnknown(rsEmployees) as ADODB_TLB.Recordset);
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
end
|
|
6
|
ADO sample ( flat table )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataTechnology['Items'] := 'ADODB.Recordset;ADOR.Recordset';
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb';
DataMember['Items'] := 'Employees';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
end
|
|
5
|
XML sample ( object, MSXML.DOMDocument )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
xml := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('MSXML.DOMDocument'))) as MSXML2_TLB.FreeThreadedDOMDocument30);
xml.async := False;
xml.load('C:\Program Files\Exontrol\ExG2Host\Sample\sample.xml');
DataSource['Items'] := (IUnknown(xml) as MSXML2_TLB.FreeThreadedDOMDocument30);
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
LinesAtRoot := -1;
SingleSel := False;
AutoDrag := 3;
end;
end
|
|
4
|
XML sample ( file tree )

// Error event - Fired when an internal error occurs.
procedure TForm1.G2Host1Error(ASender: TObject; Error : Integer; Description : WideString);
begin
with G2Host1 do
begin
OutputDebugString( Error );
OutputDebugString( Description );
end
end;
with G2Host1 do
begin
DataTechnology['Items'] := 'MSXML.DOMDocument';
DataSource['Items'] := 'C:\Program Files\Exontrol\ExG2Host\Sample\sample.xml';
DataField[EXG2HOSTLib_TLB.exItemsDataSource] := 'Items';
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
LinesAtRoot := -1;
SingleSel := False;
AutoDrag := 3;
end;
end
|
|
3
|
How can I let user create new items/bars when clicking the empty area of the control
// HostEvent event - Notifies the application once the host fires an event.
procedure TForm1.G2Host1HostEvent(ASender: TObject; EventID : HostEventEnum);
begin
with G2Host1 do
begin
OutputDebugString( HostEventParam[-2] );
end
end;
with G2Host1 do
begin
HostReadOnly := Integer(EXG2HOSTLib_TLB.exHostReadWrite) Or Integer(EXG2HOSTLib_TLB.exHostAllowAddEmptyItem);
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
ScrollBars := Integer(EXG2ANTTLib_TLB.exVScrollEmptySpace) Or Integer(EXG2ANTTLib_TLB.exDisableNoVertical);
with Chart do
begin
PaneWidth[False] := 128;
AllowCreateBar := 1;
end;
end;
end
|
|
2
|
How do I handle events of the host

// HostEvent event - Notifies the application once the host fires an event.
procedure TForm1.G2Host1HostEvent(ASender: TObject; EventID : HostEventEnum);
begin
with G2Host1 do
begin
OutputDebugString( HostEventParam[-2] );
end
end;
with G2Host1 do
begin
with (IUnknown(Host) as EXG2ANTTLib_TLB.G2antt) do
begin
BeginUpdate();
Columns.Add('new column');
EndUpdate();
end;
end
|
|
1
|
How can I get the version of the host/exg2antt control

with G2Host1 do
begin
OutputDebugString( Version );
OutputDebugString( 'Host' );
OutputDebugString( Host.Version );
end
|