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
|
2266 |
Disable hover-all feature (Windows 11 or greater)
|
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,'gBFLBCJwBAEHhEJAAEhABQ4Fg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6' + 'CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM' + 'RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsLpOS5LNKsaxmWLYdhFdTxQi6LpvfA8BwXC6JY7heRYRbFbYxRjGNi1TS7G4n' + 'GKd5WGuL4UHwI4VkaYxii8V4pgQMgVBQdQ5iCTYGi8T4vlWbJ3nuPg+l+H5AlSCg6ByPBoE8Ap3jqYxhBido5g0OgOGOGI4CsSpCCAcgcAuEosiYN5NHMOJ+D4TpTnSe' + 'Q7CEY4uBmBpPhgagdgcIZoHibIEyUBJZDQIJShoCgcCAcoyAQOYYlcZJ1D0DxDCiQgwEiAZMHEMJLFKPJ9D2DoDnidQ4k+Y5QmKEROBkIhKD0JIZDIS4TGUCQuEeEJjn' + 'OIg8CuY4RkYNgwGMM5RllGpThDRYIGKZIpCkJFUH0PINyWcQ3CaaZCG+HBnEOTJhD8Tx4GoeQ/GcaZSHOH5nCmQhshoZhihYYwhiYA4RlkNoNEMUZ3ByDjwEsPxOnMaJ' + '9DuDR6F6GYmCmKh0nANtMioP4Gg8aoSiIO5NhodociqaY6GaFYkEyOg8lsNRNTaUgykyMgQG0GpPiONJbD8DpDEyfA6k0KwOkWMQsGsAJU0SagwkoJQJDIPISCQCJTGS' + 'UwyGaM4KkmMgtksHpFjAZ4TGCBAbgaSpcksdhNAMIJHHsD5TjSWWMAMOpwjyLwbk6cAz0KRJiDkDYzESCwiggcgcgYIQwCIEINCMCITj6TVxkMXp2j0cQLlCTo7E2F4y' + 'mkMZdhMPJHDGHpLAyVg+k4UwrCCSIyByDJ8DuDY8CiWY0kiXAXC6QJwFKGIjCeJpjgyezjlyDw6klHx5myRoMGwZwbkcToTEiew4kwbQfEmUgPkOKJUD4DpTHSHQmgkX' + 'I/ASTA1g0XIEDMTBimyfI7jSLYHEiUoPk0Fw/kadAsHGao8A0A5smEMJ2mNyg5gzJZwDgCpChyIZVyIZwFCMJEPASRkBqE+IcHInRcDxA2H4bIsx0AtDsIBpwZwYicD6' + 'BscwDwUBgHCIYaIfgtiVH2O4WgUwJjEFeAEQA7y4hMCiBMS4aRdB9A4CYE4LxljyBMHcDItBxinDCLcTYmgejBFQ9UTg9gFBOEmAQTI7A4iZGMGkQAWQ7jYA2HIL8BRA' + 'jDG4HcCwARbjZHiNoDw1nLDnGyNINQ+wjCpBMEgcovQUgICQJEcgWRuBvAyJ4d4ugpCUAINcHogxIgnDiM4N4axzD3F2JMTY/hRqYF6FsWIxhYAGGoAALQYgYirBwBEB' + 'wpAjBEAAIEIYsA2gOHCMAGgXAACIDmMITAUgFABH0D0I4WwvhNFGMAOIvxRD2GKNcMA8gjAPDCPwBogRPAxA8PgRwZRICYDED8RAXQEghEAN8DIgwIBdB4JYWwMgtiQH' + 'oFQKAiRFguFKGwGQhglDsEOVwEQQRkCKBwOIHgSREDRBYHEXQcQdD7GIGARQHRxipBrMobgewDCUCADsEYWAzgMHKHQDQxxsDzA6EMfAeQHB4GQDkUYPA0iECiKoGgRh' + 'cDdA2GMQA8AOCjDSPgHI4QnApAKBICwHg1A+BcAwcYsgbjGGQNkCIgRsA6EcBEWANADjsB0B8YYzQQDIGSBcEYZBCCPEkFIHQSgkgZAwG4IwBAbAYGGAgL4Ch4g8BOCQ' + 'AA2KKC0GcAke4AAXAFCoHkDw4xbBFEcJkE4JRSiEFeJYKQVRMgJHODwX4xAgC/AsIIZAeAHDRG0HYI40RKCLEGDUI4jAghwBWIceA+whCpHMFYZYOQxglDMHMBQGxYjV' + 'HiAoBIPgfgHGwPsHYJRSB6A0IERQLhCjJHMA4OQoAoCOACLYGYSx8DpBQIMWQdRnDRH+DsE4fB3CeAmM67kAAXBFEIDYDI7wLBtEoEIfYNwjiUGGJQYQMAjCHEAO0C4z' + 'xW29CoCgfIxR9AKA6J8BgUAIhDGMIoJ40hqgwCgKETgnBhhqCGI0AIqgZhGDANQDIlBDCRGkCoJISR0g1BSKQOgfAzBRG0DYHARh4DeDAOwANuw8ApCKKkYg/RPhjBsH' + '0J4yg5hPGWN0GwFBHQBFaDoQIURljFAoB4GgzRVzbBECQFQRQoguHGHANwDRdCKy8CgSIGwhhoDYJYYI1giBICSAEgI='); 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,'gBFLBCJwBAEHhEJAAEhABcoFg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6' + 'CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM' + 'RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsLpOS5LNKsaxmWLYdhFdTxQi6LpvfA8BwXC6JY7heRYRbFbYxRjGNi1TS7G4n' + 'GKd5WGuL4UHwI4VkaYxii8V4pgQMgVBQdQ5iCTYGi8T4vlWbJ3nuPg+l+H5AlSCg6ByPBoE8Ap3jqYxhBido5g0OgOGOGI4CsSpCCAcgcAuEokiEN5NCKfJ9DyTRjnSc' + 'g1CEYxOBmBpPCgagdgcIZoHoGIFA4AxQkCAxKAgKBwgGSpIBCZhjF2E5UnQPQMiMCJBCIBwxkSQgsgo+JtDKT4ziiQw+k6EwAnsOgLnkHI+yCQ4iEuE4klkPhShEJBpA' + 'oPgymOMoaDgHBjFMBgyD0HYTiCZSZhIIIGC4ChiHSew5kwM5omILZPiOBI0hwZw5kodIdA+M4Uj4PxOmMSJ9DuTQzmyZgviceZagaHVfj4awwmaAh2GUIYmCOEZZDaDR' + 'DFGdwcg4EwyHMN4LBOaJbCoaZqgKH8qkMfIyD8DozDyfA7A0Coui0OpMmOZJdCsahKg6NooioChwmEMxLEoXJbDUTRXGSUgykyMgQG0GpPHMdI3D4TRCgSeQ0kmaw+lG' + 'NAtCOZJVCiT5DhyRQwAqMg0EoDBBGEGAsASC5yiSCw+k4Mp6lWNQuksTpRjMTxDGzJwGmGMpDDKXYTECSAxl6Q5olkK4PgMMIVkASRMBMBgzEkaZEjsNALhIZA6AeQBg' + 'k0ZJEgAAJ0CIAgODMNIsD6DRih9uYwFyAwfCUb5ijmbI+gwdxkk8MZMGeMpPCkDxzBiC5MHMPJLDSSROFMLIoBEQogEMFJPnENYQGgE4DCOaJfC7tYkhGTQ0kyWwykuX' + 'pMiyRpKjKR4wngM4JmOWJACCdYtHMWw+Eych4nINYLAEYA8AgdAEEsQZajaQoog4GxPiMVIolcdxNG8XZVkmNoRwWRVBlFeFEeAZQJgnFiHgHwcAhjhHgGMSI5xki2Cy' + 'A4EQsA3i0HkBsLwKRFgAHcPkHopBJBcBeDUYI7xyDOHqKkWo2hLCsDIBIY4qQ5A8DoMMYwOAqCSBGKgU4yB2iDBwIgB4hxQgAAWNgBoAgsBdEcBUQ4sQ9A/HqD0JI8Rp' + 'BzH2OYVgahLBHFiJQJweQiDhDUE4SAARQAzFsG0EQwA6AOWSBkFgVAIBCHeGERQFQiCQHeFkC4vkiB8DyB4F4QxVDvGMNEOQexMjlBeOAKQiQLgfDA7QEAaRiBdEkH8T' + 'I7AZiFBAGYBIABWjYBiGACioQ4C1A+AMMgWhfgxHgPsT4URIB0COKgPgjRwiAB8AYUArxBgCF6J4GY5hrAOCAPAAoGRRCsCIMEXATXfgAF8BMJwURuEQDgD4Q4OBoAeH' + 'GFgLIwQrC2D0JoSQ+QvhrHoSgQI8AbDFGID8C4Ah6BQAQAASACwgCYCMAUMARAvCKAiAMCAokeCKBEOAKgCBoDaHuMsEAqwJDiACDURg8R6gPCyDofYWAhgoDIJ4ZAuh' + 'oiGAYGgRoQw/A0GMMga4GwxiEDeIYYInATCDBQAoBAwAoDlA0KMBoVRGiDGwDQUYIRsgaGGDgM4LAwDWB8EcIA1APhjEgGQVwgRIgjFIIQHokgZA+CSEkLIKQSjHAwMs' + 'CwDAsAEB2ABTIwRwD6A8CMToSxkAxE4HYIw+BsgbBEDAHYBwojCBoIYFgXSjABE4MsHIbQWhlGILQS4UhvBdAUKEEwHgxDAAABQQQUAhgKHiDwE4JS4A7BGLQZwCR4ga' + 'BEMUYAqgKApHgGwVAIRNgvBMMQXImwZDtE4I8UIyAZCDCAE8AwrhgAdEEBACQLRCg4FEB4AYtA7CdEiPQMoJAMDNCkOMCAXAFDhH0D0Q4EgfAaGSK4NYzRUj9BuCgAgs' + 'wOBjB4Fqpw8B2ADAwE4A4Qx2DAE6JIaQPQGhAGKBcIQ5B5gHByKIFARwADbAyKUfgdBKBBGyEcVIAB/ijHoIoSA0gdBNl+OATYERZgBGSDYWIWAUCEGKA4FAhR7CIBtY' + 'QGYZg4CMAiKEcAOwkBjHWE8Z4lQgA+DkBoTohwwCeAaMEEgBQCCABgHMRwQRhhMEWFQd4HwZgwDqFESItAbAGEANCpINAzANCCJkK4ah+heFYBURwsQrS2CsMYMoWGBh' + 'YDWI0EInQgiApXaOVI1QFDsC8MUNoMBMA1HMJga4eh+BeAWOgNNowGjYzCGAAwax+iJBeBVT4gxoBIAGFsJFBxgBiGKFkKQ7g5DFFQEcAo4AzDDACKEQQLgCiJDYB0Mg' + '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)
|
2227 |
Does the control display images from database (ADO)
|
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 |