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

with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
DrawGridLines := EXGRIDLib_TLB.exRowLines;
(IUnknown(Columns.Add('Country')) as EXGRIDLib_TLB.Column).ShowIdem := '<fgcolor gray>〃';
with Items do
begin
AddItem('Spain');
AddItem('Spain');
AddItem('Spain');
AddItem('Spain');
AddItem('Germany');
AddItem('Germany');
AddItem('Germany');
AddItem('Germany');
end;
EndUpdate();
end
|
1222
|
Defines the symbol used to indicate repeated captions, providing a clear visual cue for identical entries (space)

with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
DrawGridLines := EXGRIDLib_TLB.exRowLines;
(IUnknown(Columns.Add('Country')) as EXGRIDLib_TLB.Column).ShowIdem := ' ';
with Items do
begin
AddItem('Spain');
AddItem('Spain');
AddItem('Spain');
AddItem('Spain');
AddItem('Germany');
AddItem('Germany');
AddItem('Germany');
AddItem('Germany');
end;
EndUpdate();
end
|
1221
|
Displays a glitch funnel for drop-down filter buttons (empty or active)

with Grid1 do
begin
BeginUpdate();
with VisualAppearance do
begin
RenderType := -1;
Add(1,'gBFLBCJwBAEHhEJAAEhABa8IQAAYAQGKIYBkAKBQAGaAoDDUNQxQwAAxwfBMKgBBCLIxhEYobgmGIXRpFMbxCKQahLEiTIhGUYJHgmK4tRiAUgxVDkBxrECZYqjcBZOi' +
'wLQ2TxDM7DNKUCBnIoABhGOaYDh+IQNQjUFKwTRFGRxK4EIRKAyTDLQdRyGSMMbjdQpBCbMiMRqhESKRq2UwYRYCFS1NalaztO6BUAvK67YrWez/YBfF+SfwGeqDYReW' +
'APfgWERnQrGMLxbD8KwZAKTRjkGJ4XhuB41TbQMqufL9ByXHKSSDpGjaXjeO5VVjYNAvS69UzXNq3bhtQAOXCMEwCgI=');
Add(2,'CP:1 -2 0 0 0');
end;
DrawGridLines := EXGRIDLib_TLB.exAllLines;
GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
ShowFocusRect := False;
Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $2000000;
Background[EXGRIDLib_TLB.exHeaderFilterBarActive] := $2000001;
HeaderAppearance := EXGRIDLib_TLB.Etched;
BackColorHeader := RGB(255,255,255);
HeaderHeight := 24;
HeaderVisible := True;
with (IUnknown(Columns.Add('1st col')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
Filter := 'Item B';
FilterType := EXGRIDLib_TLB.exFilter;
end;
Columns.Add('2nd col');
with Items do
begin
AddItem('Item A');
AddItem('Item B');
AddItem('Item C');
end;
ApplyFilter();
EndUpdate();
end
|
1220
|
How can I store any extra data associated with a cell
// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TForm1.Grid1ButtonClick(ASender: TObject; Item : HITEM;ColIndex : Integer;Key : OleVariant);
begin
with Grid1 do
begin
OutputDebugString( Items.CellData[OleVariant(Item),OleVariant(ColIndex)] );
end
end;
with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
with (IUnknown(Columns.Add('Def')) as EXGRIDLib_TLB.Column).Editor do
begin
EditType := EXGRIDLib_TLB.ButtonType;
Locked := True;
end;
with Items do
begin
CellData[OleVariant(AddItem('Cell 1')),OleVariant(0)] := 'your extra data for cell 1';
CellData[OleVariant(AddItem('Cell 2')),OleVariant(0)] := 'your extra data for cell 2';
end;
EndUpdate();
end
|
1219
|
How can I replace or add an icon at runtime

with Grid1 do
begin
BeginUpdate();
ReplaceIcon('gAAAABgYACEHgUJFEEAAWhUJCEJEEJggEhMCYEXjUbjkJQECj8gj8hAEjkshYEpk8kf8ClsulsvAExmcvf83js5nU7nkCeEcn8boMaocXosCB9Hn09pkzcEuoL/fE+Ok' +
'YB0gB9YhIHrddgVcr9aktZADAD8+P8CgIA==',Null);
ReplaceIcon('C:\images\favicon.ico',OleVariant(0));
(IUnknown(Columns.Add('Items')) as EXGRIDLib_TLB.Column).Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
Items.AddItem('Item <img>1</img>');
EndUpdate();
end
|
1218
|
How can I save the changes, such as column's width, order

// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
procedure TForm1.Grid1Click(ASender: TObject; );
begin
with Grid1 do
begin
Layout := 'Select="0";SingleSort="C0:2";Columns=1';
end
end;
with Grid1 do
begin
BeginUpdate();
Columns.Add('Column');
with Items do
begin
AddItem('Item 1');
AddItem('Item 2');
AddItem('Item 3');
end;
EndUpdate();
end
|
1217
|
How can I add totals to groups without having to go through the AddGroupItem grid function

with Grid1 do
begin
FreezeEvents(True);
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
with ConditionalFormats do
begin
with Add('%CT1',Null) do
begin
ForeColor := $808080;
ApplyTo := EXGRIDLib_TLB.FormatApplyToEnum($1);
end;
with Add('%CT2',Null) do
begin
ForeColor := $808080;
ApplyTo := EXGRIDLib_TLB.FormatApplyToEnum($2);
end;
with Add('%CT3',Null) do
begin
ForeColor := $808080;
ApplyTo := EXGRIDLib_TLB.FormatApplyToEnum($3);
end;
end;
with Columns do
begin
Add('Description');
with (IUnknown(Add('Qty')) as EXGRIDLib_TLB.Column) do
begin
Editor.EditType := EXGRIDLib_TLB.SpinType;
Def[EXGRIDLib_TLB.exTotalColumn] := 'sum(current,rec,%1)';
end;
with (IUnknown(Add('Price')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exTotalColumn] := 'avg(current,rec,%2)';
Editor.EditType := EXGRIDLib_TLB.SpinType;
end;
with (IUnknown(Add('Amount')) as EXGRIDLib_TLB.Column) do
begin
ComputedField := '%1 * %2';
Def[EXGRIDLib_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
|
1216
|
How can I configure the filters in the text columns to search by content

with Grid1 do
begin
BeginUpdate();
FilterBarPromptVisible := EXGRIDLib_TLB.exFilterBarPromptVisible;
HeaderAppearance := EXGRIDLib_TLB.None2;
FilterBarPromptType := EXGRIDLib_TLB.exFilterPromptContainsAll;
Columns.Add('Names');
with Items do
begin
AddItem('Mantel');
AddItem('Mechanik');
AddItem('Motor');
AddItem('Murks');
AddItem('Märchen');
AddItem('Möhren');
AddItem('Mühle');
AddItem('Sérigraphie');
end;
FilterBarPromptPattern := 'a';
EndUpdate();
end
|
1215
|
How can I display the control's captions in Spanish

with Grid1 do
begin
BeginUpdate();
FilterBarPromptVisible := EXGRIDLib_TLB.exFilterBarPromptVisible;
HeaderAppearance := EXGRIDLib_TLB.None2;
Description[EXGRIDLib_TLB.exFilterBarAll] := '(todo) ';
Description[EXGRIDLib_TLB.exFilterBarFilterForCaption] := 'filtrar por...';
FilterBarPrompt := '<i><fgcolor=808080>iniciar filtro...</fgcolor></i>';
with (IUnknown(Columns.Add('Names')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterType := EXGRIDLib_TLB.exPattern;
end;
with Items do
begin
AddItem('Mantel');
AddItem('Mechanik');
AddItem('Motor');
AddItem('Murks');
AddItem('Märchen');
AddItem('Möhren');
AddItem('Mühle');
AddItem('Sérigraphie');
end;
EndUpdate();
end
|
1214
|
How can I zoom in the control

with Grid1 do
begin
BeginUpdate();
s1 := 16;
s2 := FormatABC('2 * value',OleVariant(s1),Null,Null);
ImageSize := s2;
DefaultItemHeight := s2;
HeaderHeight := s2;
SortBarHeight := s2;
Indent := s2;
Font.Size := s1;
FilterBarFont.Size := s1;
ToolTipFont.Size := s1;
FilterBarPromptVisible := EXGRIDLib_TLB.exFilterBarPromptVisible;
HeaderAppearance := EXGRIDLib_TLB.None2;
with (IUnknown(Columns.Add('Names')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterType := EXGRIDLib_TLB.exPattern;
end;
with Items do
begin
AddItem('Mantel');
AddItem('Mechanik');
AddItem('Motor');
AddItem('Murks');
AddItem('Märchen');
AddItem('Möhren');
AddItem('Mühle');
AddItem('Sérigraphie');
end;
EndUpdate();
end
|
1213
|
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 Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
with (IUnknown(Columns.Add('Items')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := True;
Def[EXGRIDLib_TLB.exFilterPatternTemplate] := '*<%filter%>*';
FilterType := EXGRIDLib_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
|
1212
|
The fine dotted lines in the control appear much thicker than the standard ones we've been using. How can we fix this

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

with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := False;
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
DrawGridLines := EXGRIDLib_TLB.exVLines;
LinesAtRoot := EXGRIDLib_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\ExGrid\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\ExGrid\Sample\Access\misc.mdb',3,3,Null);
end;
PutItems(rs.GetRows(Null,Null,Null),';0;17');
Items.ExpandItem[0] := True;
EndUpdate();
end
|
1210
|
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.Grid1AddItem(ASender: TObject; Item : HITEM);
begin
with Grid1 do
begin
Items.CellEditorVisible[OleVariant(Item),OleVariant(0)] := EXGRIDLib_TLB.exEditorVisible;
Items.CellEditorVisible[OleVariant(Item),OleVariant(1)] := EXGRIDLib_TLB.exEditorVisible;
end
end;
// EditOpen event - Occurs when the edit operation starts.
procedure TForm1.Grid1EditOpen(ASender: TObject; );
begin
with Grid1 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 Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
with (IUnknown(Columns.Add('DropDownList')) as EXGRIDLib_TLB.Column) do
begin
with Editor do
begin
EditType := EXGRIDLib_TLB.DropDownListType;
AddItem(1,'First',Null);
AddItem(2,'Second',Null);
AddItem(3,'Third',Null);
end;
end;
DrawGridLines := EXGRIDLib_TLB.exAllLines;
(IUnknown(Columns.Add('DropDownList-Related')) as EXGRIDLib_TLB.Column).Editor.EditType := EXGRIDLib_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[EXGRIDLib_TLB.exBottom] := 1;
h := LockedItem[EXGRIDLib_TLB.exBottom,0];
ItemDivider[h] := 0;
ItemDividerLineAlignment[h] := EXGRIDLib_TLB.DividerTop;
CellEditorVisible[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.exEditorHidden;
CellSingleLine[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.exCaptionWordWrap;
CellValueFormat[OleVariant(h),OleVariant(0)] := EXGRIDLib_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
|
1209
|
Highlight the editable fields

// Change event - Occurs when the user changes the cell's content.
procedure TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
with Grid1 do
begin
Refresh();
end
end;
with Grid1 do
begin
FreezeEvents(True);
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
with ConditionalFormats do
begin
with Add('%CE1',Null) do
begin
Bold := True;
BackColor := $f5f5f5;
ApplyTo := EXGRIDLib_TLB.FormatApplyToEnum($1);
end;
with Add('%CE2',Null) do
begin
Bold := True;
BackColor := $f5f5f5;
ApplyTo := EXGRIDLib_TLB.FormatApplyToEnum($2);
end;
with Add('%CE3',Null) do
begin
Bold := True;
BackColor := $f5f5f5;
ApplyTo := EXGRIDLib_TLB.FormatApplyToEnum($3);
end;
end;
with Columns do
begin
Add('Description');
with (IUnknown(Add('Qty')) as EXGRIDLib_TLB.Column) do
begin
Editor.EditType := EXGRIDLib_TLB.SpinType;
Def[EXGRIDLib_TLB.exTotalColumn] := 'sum(current,rec,%1)';
end;
with (IUnknown(Add('Price')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exTotalColumn] := 'avg(current,rec,%2)';
Editor.EditType := EXGRIDLib_TLB.SpinType;
end;
with (IUnknown(Add('Amount')) as EXGRIDLib_TLB.Column) do
begin
ComputedField := '%1 * %2';
Def[EXGRIDLib_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
|
1208
|
Highlight the total fields

// Change event - Occurs when the user changes the cell's content.
procedure TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
with Grid1 do
begin
Refresh();
end
end;
with Grid1 do
begin
FreezeEvents(True);
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
with ConditionalFormats do
begin
with Add('%CT1',Null) do
begin
ForeColor := $808080;
ApplyTo := EXGRIDLib_TLB.FormatApplyToEnum($1);
end;
with Add('%CT2',Null) do
begin
ForeColor := $808080;
ApplyTo := EXGRIDLib_TLB.FormatApplyToEnum($2);
end;
with Add('%CT3',Null) do
begin
ForeColor := $808080;
ApplyTo := EXGRIDLib_TLB.FormatApplyToEnum($3);
end;
end;
with Columns do
begin
Add('Description');
with (IUnknown(Add('Qty')) as EXGRIDLib_TLB.Column) do
begin
Editor.EditType := EXGRIDLib_TLB.SpinType;
Def[EXGRIDLib_TLB.exTotalColumn] := 'sum(current,rec,%1)';
end;
with (IUnknown(Add('Price')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exTotalColumn] := 'avg(current,rec,%2)';
Editor.EditType := EXGRIDLib_TLB.SpinType;
end;
with (IUnknown(Add('Amount')) as EXGRIDLib_TLB.Column) do
begin
ComputedField := '%1 * %2';
Def[EXGRIDLib_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
|
1207
|
Highlight the leaf items

with Grid1 do
begin
BeginUpdate();
ConditionalFormats.Add('%CC0=0',Null).ForeColor := $808080;
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
with Columns do
begin
(IUnknown(Add('Item')) as EXGRIDLib_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
|
1206
|
Highlight the parent items

with Grid1 do
begin
BeginUpdate();
ConditionalFormats.Add('%CC0',Null).ForeColor := $ff;
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
with Columns do
begin
(IUnknown(Add('Item')) as EXGRIDLib_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
|
1205
|
Highlight the item being expanded or collapsed

with Grid1 do
begin
BeginUpdate();
ConditionalFormats.Add('%CX0',Null).Bold := True;
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
with Columns do
begin
(IUnknown(Add('Item')) as EXGRIDLib_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
|
1204
|
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.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
with Grid1 do
begin
Refresh();
end
end;
with Grid1 do
begin
FreezeEvents(True);
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
with Columns do
begin
Add('Description');
with (IUnknown(Add('Qty')) as EXGRIDLib_TLB.Column) do
begin
Editor.EditType := EXGRIDLib_TLB.SpinType;
Def[EXGRIDLib_TLB.exTotalColumn] := 'sum(current,rec,%1)';
end;
with (IUnknown(Add('Price')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exTotalColumn] := 'avg(current,rec,%2)';
Editor.EditType := EXGRIDLib_TLB.SpinType;
end;
with (IUnknown(Add('Amount')) as EXGRIDLib_TLB.Column) do
begin
ComputedField := '%1 * %2';
Def[EXGRIDLib_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)] := EXGRIDLib_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
|
1203
|
How can I add a total column

// Change event - Occurs when the user changes the cell's content.
procedure TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
with Grid1 do
begin
Refresh();
end
end;
with Grid1 do
begin
FreezeEvents(True);
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
with Columns do
begin
Add('Description');
with (IUnknown(Add('Qty')) as EXGRIDLib_TLB.Column) do
begin
Editor.EditType := EXGRIDLib_TLB.SpinType;
Def[EXGRIDLib_TLB.exTotalColumn] := 'sum(current,rec,%1)';
end;
with (IUnknown(Add('Price')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exTotalColumn] := 'avg(current,rec,%2)';
Editor.EditType := EXGRIDLib_TLB.SpinType;
end;
with (IUnknown(Add('Amount')) as EXGRIDLib_TLB.Column) do
begin
ComputedField := '%1 * %2';
Def[EXGRIDLib_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
|
1202
|
Is it possible to disable sizing(size) the column
with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
DrawGridLines := EXGRIDLib_TLB.exVLines;
with (IUnknown(Columns.Add('32px')) as EXGRIDLib_TLB.Column) do
begin
Width := 32;
AllowSizing := False;
end;
Columns.Add('Rest');
ColumnAutoResize := True;
EndUpdate();
end
|
1201
|
How can I add two columns of 25% and the third of 50%

with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
DrawGridLines := EXGRIDLib_TLB.exVLines;
(IUnknown(Columns.Add('25%')) as EXGRIDLib_TLB.Column).Width := 25;
(IUnknown(Columns.Add('25%')) as EXGRIDLib_TLB.Column).Width := 25;
(IUnknown(Columns.Add('50%')) as EXGRIDLib_TLB.Column).Width := 50;
ColumnAutoResize := True;
EndUpdate();
end
|
1200
|
I add two columns but I see a third column

with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
DrawGridLines := EXGRIDLib_TLB.exVLines;
Columns.Add('C1');
Columns.Add('C2');
ColumnAutoResize := True;
EndUpdate();
end
|
1199
|
I lose the hierarchy, all items are on the same 1st level, while I use PutItems

with Grid1 do
begin
BeginUpdate();
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
Columns.Add('C1');
Columns.Add('C2');
with Items do
begin
CellValue[OleVariant(AddItem('Emily')),OleVariant(1)] := 'William';
CellValue[OleVariant(AddItem('Sophia')),OleVariant(1)] := 'Alexander';
end;
PutItems(GetItems(''),Items.ItemByIndex[0]);
PutItems(GetItems(''),Items.ItemByIndex[1]);
PutItems(GetItems(''),Items.ItemByIndex[6]);
Items.ExpandItem[0] := True;
EndUpdate();
end
|
1198
|
Column width set by code is ignored or it seems that does not work

with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := False;
HeaderAppearance := EXGRIDLib_TLB.Etched;
DrawGridLines := EXGRIDLib_TLB.exVLines;
(IUnknown(Columns.Add('C1')) as EXGRIDLib_TLB.Column).Width := 32;
(IUnknown(Columns.Add('C2')) as EXGRIDLib_TLB.Column).Width := 132;
(IUnknown(Columns.Add('C3')) as EXGRIDLib_TLB.Column).Width := 264;
EndUpdate();
end
|
1197
|
I want to display this computed value in a TextBox outside the grid and get it updated with any change of its value. How can this be done
// Change event - Occurs when the user changes the cell's content.
procedure TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
with Grid1 do
begin
Refresh();
with Items do
begin
OutputDebugString( 'Total: ' );
OutputDebugString( CellCaption[OleVariant(LockedItem[EXGRIDLib_TLB.exTop,0]),OleVariant(0)] );
end;
end
end;
with Grid1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Numbers')) as EXGRIDLib_TLB.Column) do
begin
with Editor do
begin
Numeric := EXGRIDLib_TLB.exInteger;
EditType := EXGRIDLib_TLB.SpinType;
end;
SortType := EXGRIDLib_TLB.SortNumeric;
end;
with Items do
begin
LockedItemCount[EXGRIDLib_TLB.exTop] := 1;
h := LockedItem[EXGRIDLib_TLB.exTop,0];
ItemBackColor[h] := $f0f0f0;
CellValue[OleVariant(h),OleVariant(0)] := 'sum(all,dir,dbl(%0))';
CellValueFormat[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.exTotalField;
CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.RightAlignment;
FormatCell[OleVariant(h),OleVariant(0)] := '''Total: ''+value';
end;
with Items do
begin
AddItem(OleVariant(10));
AddItem(OleVariant(25));
AddItem(OleVariant(31));
AddItem(OleVariant(48));
end;
EndUpdate();
end
|
1196
|
Disable temporarily the column's sort, resize and drag and drop

with Grid1 do
begin
BeginUpdate();
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 := EXGRIDLib_TLB.Etched;
(IUnknown(Columns.Add('Index')) as EXGRIDLib_TLB.Column).FormatColumn := '1 index ``';
(IUnknown(Columns.Add('Pos')) as EXGRIDLib_TLB.Column).FormatColumn := '1 apos ``';
(IUnknown(Columns.Add('Edit')) as EXGRIDLib_TLB.Column).Editor.EditType := EXGRIDLib_TLB.EditType;
GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
DrawGridLines := EXGRIDLib_TLB.exVLines;
GridLineColor := RGB(224,224,224);
EndUpdate();
end
|
1195
|
I wonder if it’s possible to highlight/select a column like Excel
// ColumnClick event - Fired after the user clicks on column's header.
procedure TForm1.Grid1ColumnClick(ASender: TObject; Column : IColumn);
begin
// Column.Selected = True
// FocusColumnIndex = Column.Index
with Grid1 do
begin
Columns.Item[OleVariant(0)].Selected := False;
Columns.Item[OleVariant(1)].Selected := False;
Columns.Item[OleVariant(2)].Selected := False;
Items.SelectAll();
end
end;
with Grid1 do
begin
BeginUpdate();
Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
HeaderAppearance := EXGRIDLib_TLB.Etched;
MarkSearchColumn := False;
SingleSel := False;
FullRowSelect := EXGRIDLib_TLB.exRectSel;
SortOnClick := EXGRIDLib_TLB.exNoSort;
Columns.Add('Column1');
Columns.Add('Column2');
Columns.Add('Column3');
with Items do
begin
DefaultItem := AddItem(OleVariant(0));
CellValue[OleVariant(0),OleVariant(1)] := OleVariant(1);
CellValue[OleVariant(0),OleVariant(2)] := OleVariant(2);
DefaultItem := AddItem(OleVariant(3));
CellValue[OleVariant(0),OleVariant(1)] := OleVariant(4);
CellValue[OleVariant(0),OleVariant(2)] := OleVariant(5);
DefaultItem := AddItem(OleVariant(6));
CellValue[OleVariant(0),OleVariant(1)] := OleVariant(7);
CellValue[OleVariant(0),OleVariant(2)] := OleVariant(8);
end;
EndUpdate();
end
|
1194
|
Is it possible to change the color of the border

with Grid1 do
begin
BeginUpdate();
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABc8IQAAYAQGKIcBiAKBQAGaAoDDMMwyQwAAxDMK8EwsACEIrjKCRShyCYZRhGcTALBIBQSHAZZKgOJIRDENg2SANACRfIUaw1DqBZwkGZoWh' +
'GKgAShIEDwSKkQBlECeJpnKaqIomJYnDLQUw0NL9HQ3JaaKqnWLBVCWEQyVzEIyjBT0EzHMqtKrjaA6NpaP4oT7LEIydKFCRJNi0bSnGqaOj6UJSURRVq3TTFcTyAC3a' +
'huOo4cpXB4SWrOd41fYNOTQACzbCsSIcPxCe6GXjiNwjPKMWhnIq+M5wXIrJyKCYUaTcejzfgdU5XWqeMoyewMXxmZqbXw/fBYRrEL5vTqNXTzSA4BEB');
Appearance := EXGRIDLib_TLB.AppearanceEnum($100ff00);
ColumnAutoResize := True;
HeaderAppearance := EXGRIDLib_TLB.Etched;
TreeColumnIndex := -1;
DrawGridLines := EXGRIDLib_TLB.exAllLines;
GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
Columns.Add('Default');
with Items do
begin
AddItem('before item');
AddItem('item');
AddItem('after item');
end;
EndUpdate();
end
|
1193
|
Expandable-caption

// AnchorClick event - Occurs when an anchor element is clicked.
procedure TForm1.Grid1AnchorClick(ASender: TObject; AnchorID : WideString;Options : WideString);
begin
with Grid1 do
begin
OutputDebugString( AnchorID );
end
end;
with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := True;
TreeColumnIndex := -1;
DrawGridLines := EXGRIDLib_TLB.exAllLines;
GridLineStyle := EXGRIDLib_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</b></solidline><br>+ owner: String <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAA+AAgAECMcTi4AMwAM4AjM' +
'GhEGOUVAA4AAwk8plcqihwAElg0wiUlOkOiUEgQvgcFhsKhkIhUQiUUnccj0gn0jmMagUlowAMNOpEfkMNkkmlEqrctjQmAAjAA5AA2sssHcbnkdq1Ln1QtVSjQAAEBA' +
'==>▲</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;e64=gA8ABjAA+AECMwAM8DABv' +
'ABshoAOQAEAAHAAGEWjEajMGNoAMoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAEBA==>`' +
'50;</a><br>+ withdraw(amount: Currency)');
CellValueFormat[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.exHTML;
CellSingleLine[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.exCaptionWordWrap;
AddItem('after item');
end;
EndUpdate();
end
|
1192
|
Expandable-caption

with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := True;
TreeColumnIndex := -1;
DrawGridLines := EXGRIDLib_TLB.exAllLines;
GridLineStyle := EXGRIDLib_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)] := EXGRIDLib_TLB.exHTML;
CellSingleLine[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.exCaptionWordWrap;
AddItem('after item');
end;
EndUpdate();
end
|
1191
|
Force hover-all feature
with Grid1 do
begin
Background[EXGRIDLib_TLB.exScrollHoverAll] := $ffffffff;
end
|
1190
|
Disable hover-all feature (Windows 11 or greater)
with Grid1 do
begin
Background[EXGRIDLib_TLB.exScrollHoverAll] := $1;
end
|
1189
|
Display a custom tooltip
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.Grid1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with Grid1 do
begin
ShowToolTip('new content','',Null,'+8','+8');
end
end;
|
1188
|
Shows the tooltip of the object moved relative to its default position
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.Grid1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with Grid1 do
begin
ShowToolTip('<null>','<null>',Null,'+8','+8');
end
end;
with Grid1 do
begin
ColumnAutoResize := False;
(IUnknown(Columns.Add('tootip')) as EXGRIDLib_TLB.Column).ToolTip := 'this is a tooltip assigned to a column';
end
|
1187
|
Delete all records
// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TForm1.Grid1ButtonClick(ASender: TObject; Item : HITEM;ColIndex : Integer;Key : OleVariant);
begin
with Grid1 do
begin
cmd := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Command'))) as ADODB_TLB.Command);
with cmd do
begin
ActiveConnection := (IUnknown((IUnknown(Grid1.DataSource) as ADODB_TLB.Recordset).ActiveConnection) as ADODB_TLB.Connection);
CommandText := 'Delete * from ORDERS';
CommandType := 1;
Execute(Null,Null,Null);
end;
(IUnknown(DataSource) as ADODB_TLB.Recordset).Requery(Null);
end
end;
// Error event - Fired when an internal error occurs.
procedure TForm1.Grid1Error(ASender: TObject; Error : Integer;Description : WideString);
begin
with Grid1 do
begin
OutputDebugString( Description );
end
end;
with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
ColumnAutoResize := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Select * From Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',1,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
ConditionalFormats.Add('%1=12345',Null).BackColor := $f0f0f0;
with Items do
begin
LockedItemCount[EXGRIDLib_TLB.exTop] := 1;
h := LockedItem[EXGRIDLib_TLB.exTop,0];
ItemDivider[h] := 0;
CellHasButton[OleVariant(h),OleVariant(0)] := True;
CellValue[OleVariant(h),OleVariant(0)] := 'Requery (delete all records, using ADODB.Command)';
CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.CenterAlignment;
end;
EndUpdate();
end
|
1186
|
How can I get a cell that shows the sum of a column of minutes in hours + minutes format

with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
with (IUnknown(Columns.Add('Minutes')) as EXGRIDLib_TLB.Column) do
begin
SortType := EXGRIDLib_TLB.SortNumeric;
with Editor do
begin
EditType := EXGRIDLib_TLB.EditType;
Numeric := EXGRIDLib_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(EXGRIDLib_TLB.exTotalField) Or Integer(EXGRIDLib_TLB.exHTML);
CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.RightAlignment;
FormatCell[OleVariant(h),OleVariant(0)] := '''<b>HH:NN</b>: ''+ (int(value/60) lpad ''00'') + '':'' + ((value mod 60) lpad ''00'')';
end;
EndUpdate();
end
|
1185
|
Highlight the match once the filter is applied

// FilterChange event - Occurs when filter was changed.
procedure TForm1.Grid1FilterChange(ASender: TObject; );
begin
with Grid1 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 Grid1 do
begin
BeginUpdate();
SelBackColor := BackColor;
SelForeColor := ForeColor;
ColumnAutoResize := True;
ContinueColumnScroll := False;
MarkSearchColumn := False;
SearchColumnIndex := 1;
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 23;
BackColorLevelHeader := BackColor;
FilterBarCaption := '`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)';
FilterBarPromptVisible := Integer(EXGRIDLib_TLB.exFilterBarCompact) Or Integer(EXGRIDLib_TLB.exFilterBarCaptionVisible) Or Integer(EXGRIDLib_TLB.exFilterBarVisible) Or Integer(EXGRIDLib_TLB.exFilterBarPromptVisible);
FilterBarBackColor := BackColor;
FilterBarPromptPattern := 'and';
with Columns do
begin
with (IUnknown(Add('Name')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
FormatColumn := 'lower(value)';
end;
with (IUnknown(Add('Title')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
FormatColumn := 'lower(value)';
end;
with (IUnknown(Add('City')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_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
|
1184
|
The count of filtered items includes the group-parents. How can I exclude them from count

with Grid1 do
begin
BeginUpdate();
DrawGridLines := EXGRIDLib_TLB.exVLines;
HeaderAppearance := EXGRIDLib_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(EXGRIDLib_TLB.exFilterBarCompact) Or Integer(EXGRIDLib_TLB.exFilterBarCaptionVisible) Or Integer(EXGRIDLib_TLB.exFilterBarVisible) Or Integer(EXGRIDLib_TLB.exFilterBarPromptVisible);
FilterBarPromptType := Integer(EXGRIDLib_TLB.exFilterPromptCaseSensitive) Or Integer(EXGRIDLib_TLB.exFilterPromptContainsAll);
FilterBarPromptPattern := '12';
FilterBarBackColor := BackColor;
EndUpdate();
end
|
1183
|
Is it possible to display the count of filtered items

with Grid1 do
begin
BeginUpdate();
DrawGridLines := EXGRIDLib_TLB.exVLines;
HeaderAppearance := EXGRIDLib_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(EXGRIDLib_TLB.exFilterBarCompact) Or Integer(EXGRIDLib_TLB.exFilterBarCaptionVisible) Or Integer(EXGRIDLib_TLB.exFilterBarVisible) Or Integer(EXGRIDLib_TLB.exFilterBarPromptVisible);
FilterBarPromptType := Integer(EXGRIDLib_TLB.exFilterPromptCaseSensitive) Or Integer(EXGRIDLib_TLB.exFilterPromptContainsAll);
FilterBarPromptPattern := '12';
FilterBarBackColor := BackColor;
EndUpdate();
end
|
1182
|
GroupBy code

with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := False;
ContinueColumnScroll := False;
CountLockedColumns := 1;
BackColorLock := RGB(248,248,248);
HasLines := EXGRIDLib_TLB.exSolidLine;
LinesAtRoot := EXGRIDLib_TLB.exGroupLinesOutside;
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\ExGrid\Sample\Access\misc.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
SortBarVisible := True;
SingleSort := False;
AllowGroupBy := True;
Columns.Item[OleVariant(0)].Width := 128;
Layout := 'MultipleSort = "C12:1 C1:2"';
EndUpdate();
end
|
1181
|
ADOR, MDB (JET)
with Grid1 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\ExGrid\Sample\Access\misc.mdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
EndUpdate();
end
|
1180
|
Editors (ImageSize = 32)

with Grid1 do
begin
BeginUpdate();
ImageSize := 32;
DefaultItemHeight := 36;
HeaderHeight := DefaultItemHeight;
SortBarHeight := DefaultItemHeight;
Font.Size := 16;
FilterBarFont.Size := Grid1.Font.Size;
ToolTipFont.Size := Grid1.Font.Size;
Indent := 26;
Images('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');
with VisualAppearance do
begin
Add(1,'gBFLBCJwBAEHhEJAAEhABfICg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6' +
'CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM' +
'RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsOatVqjG5sYjcGC3La9cz3Pq/bpuDCbMxuaK1TrYXr1TTrcofBDldAxXRKDxR' +
'DWVhLnYOw9i6XxzjuXprCaOoKB6EwbiCZZCGOdZYlcT4xHmbhMnwNxtn+G5bmqdZ7n4Pw/i+X5zm+dQ9g4CAFjsfAJheOI8HsDoWDWTB/lwSAQkmA5PEgRYoDyDwYFYF' +
'oFmGCBmBqBphDgRJ0gOTIYBGRB/lyRh0iSCZbjYWJzgWDwIjYLoLmMCJGDKDJjBgWgqG6YhyhGHRzA2aJ1mCABOAiOJvhCZBJBYRoRmSCQmEqEQimkAZgg8TZnDCV4Uk' +
'mCUmBKZYJGYWoWCUUhiFMNZckNUh2GENoaGaGZmgmJhqhqZpGGIEx2GYIxSGGGJdggWJth2Z4JmYeoemeSZ2H6H4hGmQhihyTRHGYLg7CiCgmgqIpokoNoOiOaJ4jqAo' +
'chqaZGgaCxpAoZoaiaaJqEmWIcGgShcnCJwqEqFoR3YOoFlgchflqNouiuawHmWSYqGkWZQhcatzmaOoumuSp2j6L5bBaKo0GQKRnGGCxqiyCwmkqMpsksNpOGUGI7A0' +
'ew1G0Rxlg0PptgsZuDG2Sx2l6N5tnYNZZjUDRXDCVo5l2FoymqOpukuNpujubwLjmWY5k0ZwxkaFxYlWdp6j6b5Lnafo/nABQdg2FxcUsY5BkmXAkmeQpckwNRrkKTh8' +
'CSHZBk4NwyC4KxxgMDwakOMZDn8GgwnGAo2C4cwthMcwmCcMoHBMHRehwTIghySYNksZwcH4HBMEsHx5hyPItiweYxnwSZEH4Mozn0fR+DMAo7EYJ50gkdZelKdNql2U' +
'gJn0GIukwH4HicQRai2GI4mSVpNl0dZGledgNgcYpYDWUx3FsOQi5YV5anaTY3G6W53A2RxylydxFjiaxEFCCgBBAQ==');
Add(2,'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' +
'RBCCQAgQEA==');
Add(3,'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');
Add(4,'gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' +
'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU' +
'rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3' +
'NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY' +
'YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm' +
'WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo' +
'WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS' +
'e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF' +
'CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==');
end;
BackColorHeader := $4c6c6c6;
SelBackColor := $4000000;
SelForeColor := RGB(0,0,1);
ShowFocusRect := False;
CheckImage[EXGRIDLib_TLB.Unchecked] := 16777216;
CheckImage[EXGRIDLib_TLB.Checked] := 33554432;
CheckImage[EXGRIDLib_TLB.PartialChecked] := 50331648;
(IUnknown(Columns.Add('Editors')) as EXGRIDLib_TLB.Column).Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
with Items do
begin
CellEditor[OleVariant(AddItem('(ReadOnly)')),OleVariant(0)].EditType := EXGRIDLib_TLB.ReadOnly;
CellEditor[OleVariant(AddItem('(EditType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.EditType;
h := AddItem('Value 1');
with CellEditor[OleVariant(h),OleVariant(0)] do
begin
EditType := EXGRIDLib_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 := EXGRIDLib_TLB.DropDownListType;
DropDownAutoWidth := EXGRIDLib_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 := EXGRIDLib_TLB.DropDownListType;
DropDownAutoWidth := EXGRIDLib_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 := EXGRIDLib_TLB.DropDownListType;
DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
Option[EXGRIDLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
Option[EXGRIDLib_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 := EXGRIDLib_TLB.DropDownListType;
DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
Option[EXGRIDLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
Option[EXGRIDLib_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 := EXGRIDLib_TLB.SpinType;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (SpinType)''';
CellEditor[OleVariant(AddItem('(MemoType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.MemoType;
h := AddItem(OleVariant(3));
with CellEditor[OleVariant(h),OleVariant(0)] do
begin
EditType := EXGRIDLib_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 := EXGRIDLib_TLB.MaskType;
end;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (MaskType)''';
h := AddItem(OleVariant(65280));
with CellEditor[OleVariant(h),OleVariant(0)] do
begin
EditType := EXGRIDLib_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 := EXGRIDLib_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 := EXGRIDLib_TLB.PictureType;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (PictureType)''';
CellEditor[OleVariant(AddItem('(ButtonType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.ButtonType;
h := AddItem(OleVariant(25));
CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.ProgressBarType;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ProgressBarType)''';
h := AddItem('Value 1');
with CellEditor[OleVariant(h),OleVariant(0)] do
begin
EditType := EXGRIDLib_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 := EXGRIDLib_TLB.LinkEditType;
with CellEditor[OleVariant(AddItem('(UserEditorType)')),OleVariant(0)] do
begin
EditType := EXGRIDLib_TLB.UserEditorType;
UserEditor('Exontrol.ComboBox','');
with (IUnknown(UserEditorObject) as EXCOMBOBOXLib_TLB.ComboBox) do
begin
BeginUpdate();
LabelHeight := Grid1.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\ExGrid\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 := EXGRIDLib_TLB.ColorListType;
Option[EXGRIDLib_TLB.exColorListShowName] := OleVariant(True);
end;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ColorListType)''';
CellEditor[OleVariant(AddItem(OleVariant(65280))),OleVariant(0)].EditType := EXGRIDLib_TLB.ColorListType;
CellEditor[OleVariant(AddItem('(MemoDropDownType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.MemoDropDownType;
with CellEditor[OleVariant(AddItem(OleVariant(-1))),OleVariant(0)] do
begin
EditType := EXGRIDLib_TLB.CheckValueType;
Option[EXGRIDLib_TLB.exCheckValue2] := OleVariant(1);
end;
h := AddItem(OleVariant(50));
with CellEditor[OleVariant(h),OleVariant(0)] do
begin
EditType := EXGRIDLib_TLB.SliderType;
Option[EXGRIDLib_TLB.exSliderWidth] := OleVariant(-60);
Option[EXGRIDLib_TLB.exSliderTickFrequency] := OleVariant(10);
Option[EXGRIDLib_TLB.exSliderTickStyle] := OleVariant(2);
end;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (SliderType)''';
h := AddItem(OleVariant(100));
CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.CalculatorType;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (CalculatorType)''';
EnsureVisibleItem(h);
end;
EndUpdate();
end
|
1179
|
Editors (ImageSize = 16, default)

with Grid1 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 EXGRIDLib_TLB.Column).Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
BackColorHeader := $4c6c6c6;
with Items do
begin
CellEditor[OleVariant(AddItem('(ReadOnly)')),OleVariant(0)].EditType := EXGRIDLib_TLB.ReadOnly;
CellEditor[OleVariant(AddItem('(EditType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.EditType;
h := AddItem('Value 1');
with CellEditor[OleVariant(h),OleVariant(0)] do
begin
EditType := EXGRIDLib_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 := EXGRIDLib_TLB.DropDownListType;
DropDownAutoWidth := EXGRIDLib_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 := EXGRIDLib_TLB.DropDownListType;
DropDownAutoWidth := EXGRIDLib_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 := EXGRIDLib_TLB.DropDownListType;
DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
Option[EXGRIDLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
Option[EXGRIDLib_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 := EXGRIDLib_TLB.DropDownListType;
DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
Option[EXGRIDLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
Option[EXGRIDLib_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 := EXGRIDLib_TLB.SpinType;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (SpinType)''';
CellEditor[OleVariant(AddItem('(MemoType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.MemoType;
h := AddItem(OleVariant(3));
with CellEditor[OleVariant(h),OleVariant(0)] do
begin
EditType := EXGRIDLib_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 := EXGRIDLib_TLB.MaskType;
end;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (MaskType)''';
h := AddItem(OleVariant(65280));
with CellEditor[OleVariant(h),OleVariant(0)] do
begin
EditType := EXGRIDLib_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 := EXGRIDLib_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 := EXGRIDLib_TLB.PictureType;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (PictureType)''';
CellEditor[OleVariant(AddItem('(ButtonType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.ButtonType;
h := AddItem(OleVariant(25));
CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.ProgressBarType;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ProgressBarType)''';
h := AddItem('Value 1');
with CellEditor[OleVariant(h),OleVariant(0)] do
begin
EditType := EXGRIDLib_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 := EXGRIDLib_TLB.LinkEditType;
with CellEditor[OleVariant(AddItem('(UserEditorType)')),OleVariant(0)] do
begin
EditType := EXGRIDLib_TLB.UserEditorType;
UserEditor('Exontrol.ComboBox','');
with (IUnknown(UserEditorObject) as EXCOMBOBOXLib_TLB.ComboBox) do
begin
BeginUpdate();
LabelHeight := Grid1.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\ExGrid\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 := EXGRIDLib_TLB.ColorListType;
Option[EXGRIDLib_TLB.exColorListShowName] := OleVariant(True);
end;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (ColorListType)''';
CellEditor[OleVariant(AddItem(OleVariant(65280))),OleVariant(0)].EditType := EXGRIDLib_TLB.ColorListType;
CellEditor[OleVariant(AddItem('(MemoDropDownType)')),OleVariant(0)].EditType := EXGRIDLib_TLB.MemoDropDownType;
with CellEditor[OleVariant(AddItem(OleVariant(-1))),OleVariant(0)] do
begin
EditType := EXGRIDLib_TLB.CheckValueType;
Option[EXGRIDLib_TLB.exCheckValue2] := OleVariant(1);
end;
h := AddItem(OleVariant(50));
with CellEditor[OleVariant(h),OleVariant(0)] do
begin
EditType := EXGRIDLib_TLB.SliderType;
Option[EXGRIDLib_TLB.exSliderWidth] := OleVariant(-60);
Option[EXGRIDLib_TLB.exSliderTickFrequency] := OleVariant(10);
Option[EXGRIDLib_TLB.exSliderTickStyle] := OleVariant(2);
end;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (SliderType)''';
h := AddItem(OleVariant(100));
CellEditor[OleVariant(h),OleVariant(0)].EditType := EXGRIDLib_TLB.CalculatorType;
FormatCell[OleVariant(h),OleVariant(0)] := 'value + '' (CalculatorType)''';
EnsureVisibleItem(h);
end;
EndUpdate();
end
|
1178
|
Re-order the cell's caption, icons and images/pictures

with Grid1 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 EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
end;
with (IUnknown(Columns.Add('ToRight')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
Def[EXGRIDLib_TLB.exCellDrawPartsOrder] := 'caption,picture,icons,icon,check';
end;
DefaultItemHeight := 32;
DrawGridLines := EXGRIDLib_TLB.exVLines;
HeaderAppearance := EXGRIDLib_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(Grid1.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)] := EXGRIDLib_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)] := EXGRIDLib_TLB.exHTML;
CellImage[OleVariant(h),OleVariant(0)] := 2;
CellImages[OleVariant(h),OleVariant(0)] := '1,2';
CellPicture[OleVariant(h),OleVariant(0)] := (IUnknown(Grid1.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)] := EXGRIDLib_TLB.exHTML;
CellHAlignment[OleVariant(h),OleVariant(1)] := EXGRIDLib_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
|
1177
|
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.Grid1AddColumn(ASender: TObject; Column : IColumn);
begin
// Column.Def(48) = 2
// Column.Def(49) = 2
end;
with Grid1 do
begin
BeginUpdate();
ImageSize := 32;
DefaultItemHeight := 36;
HeaderHeight := DefaultItemHeight;
SortBarHeight := DefaultItemHeight;
Font.Size := 16;
FilterBarFont.Size := Grid1.Font.Size;
ToolTipFont.Size := Grid1.Font.Size;
Indent := 26;
Images('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');
with VisualAppearance do
begin
Add(1,'gBFLBCJwBAEHhEJAAEhABfICg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6' +
'CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EM' +
'RwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsOatVqjG5sYjcGC3La9cz3Pq/bpuDCbMxuaK1TrYXr1TTrcofBDldAxXRKDxR' +
'DWVhLnYOw9i6XxzjuXprCaOoKB6EwbiCZZCGOdZYlcT4xHmbhMnwNxtn+G5bmqdZ7n4Pw/i+X5zm+dQ9g4CAFjsfAJheOI8HsDoWDWTB/lwSAQkmA5PEgRYoDyDwYFYF' +
'oFmGCBmBqBphDgRJ0gOTIYBGRB/lyRh0iSCZbjYWJzgWDwIjYLoLmMCJGDKDJjBgWgqG6YhyhGHRzA2aJ1mCABOAiOJvhCZBJBYRoRmSCQmEqEQimkAZgg8TZnDCV4Uk' +
'mCUmBKZYJGYWoWCUUhiFMNZckNUh2GENoaGaGZmgmJhqhqZpGGIEx2GYIxSGGGJdggWJth2Z4JmYeoemeSZ2H6H4hGmQhihyTRHGYLg7CiCgmgqIpokoNoOiOaJ4jqAo' +
'chqaZGgaCxpAoZoaiaaJqEmWIcGgShcnCJwqEqFoR3YOoFlgchflqNouiuawHmWSYqGkWZQhcatzmaOoumuSp2j6L5bBaKo0GQKRnGGCxqiyCwmkqMpsksNpOGUGI7A0' +
'ew1G0Rxlg0PptgsZuDG2Sx2l6N5tnYNZZjUDRXDCVo5l2FoymqOpukuNpujubwLjmWY5k0ZwxkaFxYlWdp6j6b5Lnafo/nABQdg2FxcUsY5BkmXAkmeQpckwNRrkKTh8' +
'CSHZBk4NwyC4KxxgMDwakOMZDn8GgwnGAo2C4cwthMcwmCcMoHBMHRehwTIghySYNksZwcH4HBMEsHx5hyPItiweYxnwSZEH4Mozn0fR+DMAo7EYJ50gkdZelKdNql2U' +
'gJn0GIukwH4HicQRai2GI4mSVpNl0dZGledgNgcYpYDWUx3FsOQi5YV5anaTY3G6W53A2RxylydxFjiaxEFCCgBBAQ==');
Add(2,'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' +
'RBCCQAgQEA==');
Add(3,'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');
Add(4,'gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' +
'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBU' +
'rGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3' +
'NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsY' +
'YDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVm' +
'WCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVo' +
'WiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiS' +
'e41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhF' +
'CcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==');
end;
BackColorHeader := $4c6c6c6;
SelBackColor := $4000000;
SelForeColor := RGB(0,0,1);
CheckImage[EXGRIDLib_TLB.Unchecked] := 16777216;
CheckImage[EXGRIDLib_TLB.Checked] := 33554432;
CheckImage[EXGRIDLib_TLB.PartialChecked] := 50331648;
Background[EXGRIDLib_TLB.exSelBackColorFilter] := SelBackColor;
Background[EXGRIDLib_TLB.exSelForeColorFilter] := SelForeColor;
Background[EXGRIDLib_TLB.exBackColorFilter] := BackColor;
Background[EXGRIDLib_TLB.exForeColorFilter] := ForeColor;
Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $4000000;
Background[EXGRIDLib_TLB.exHeaderFilterBarActive] := $4010101;
Background[EXGRIDLib_TLB.exFooterFilterBarButton] := $40000ff;
HeaderAppearance := EXGRIDLib_TLB.Etched;
ShowFocusRect := False;
SortBarVisible := True;
AllowGroupBy := True;
BackColorSortBar := BackColor;
BackColorLevelHeader := BackColor;
FilterBarDropDownHeight := 1;
with (IUnknown(Columns.Add('Check')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
Width := 128;
DisplayFilterButton := True;
FilterList := EXGRIDLib_TLB.exShowCheckBox;
end;
with (IUnknown(Columns.Add('Pos')) as EXGRIDLib_TLB.Column) do
begin
FormatColumn := '1 pos ``';
AllowSort := False;
Width := 48;
AllowSizing := False;
Alignment := EXGRIDLib_TLB.CenterAlignment;
HeaderAlignment := EXGRIDLib_TLB.CenterAlignment;
end;
with (IUnknown(Columns.Add('Image')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterList := Integer(EXGRIDLib_TLB.exShowExclude) Or Integer(EXGRIDLib_TLB.exShowCheckBox) Or Integer(EXGRIDLib_TLB.exSortItemsAsc);
FilterType := EXGRIDLib_TLB.exImage;
DisplayExpandButton := True;
ExpandColumns := '1,2,3';
Width := 128;
HeaderImage := 1;
end;
with (IUnknown(Columns.Add('Images')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_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] := EXGRIDLib_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
|
1176
|
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.Grid1AddColumn(ASender: TObject; Column : IColumn);
begin
// Column.Def(48) = 2
// Column.Def(49) = 2
end;
with Grid1 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;
BackColorHeader := $4c6c6c6;
SelBackColor := $4000000;
SelForeColor := RGB(0,0,1);
Background[EXGRIDLib_TLB.exSelBackColorFilter] := SelBackColor;
Background[EXGRIDLib_TLB.exSelForeColorFilter] := SelForeColor;
Background[EXGRIDLib_TLB.exBackColorFilter] := BackColor;
Background[EXGRIDLib_TLB.exForeColorFilter] := ForeColor;
Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $4000000;
Background[EXGRIDLib_TLB.exHeaderFilterBarActive] := $4010101;
Background[EXGRIDLib_TLB.exFooterFilterBarButton] := $40000ff;
HeaderAppearance := EXGRIDLib_TLB.Etched;
ShowFocusRect := False;
SortBarVisible := True;
AllowGroupBy := True;
BackColorSortBar := BackColor;
BackColorLevelHeader := BackColor;
FilterBarDropDownHeight := 1;
with (IUnknown(Columns.Add('Check')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
Width := 128;
DisplayFilterButton := True;
FilterList := EXGRIDLib_TLB.exShowCheckBox;
end;
with (IUnknown(Columns.Add('Pos')) as EXGRIDLib_TLB.Column) do
begin
FormatColumn := '1 pos ``';
AllowSort := False;
Width := 48;
AllowSizing := False;
Alignment := EXGRIDLib_TLB.CenterAlignment;
HeaderAlignment := EXGRIDLib_TLB.CenterAlignment;
end;
with (IUnknown(Columns.Add('Image')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterList := Integer(EXGRIDLib_TLB.exShowExclude) Or Integer(EXGRIDLib_TLB.exShowCheckBox) Or Integer(EXGRIDLib_TLB.exSortItemsAsc);
FilterType := EXGRIDLib_TLB.exImage;
DisplayExpandButton := True;
ExpandColumns := '1,2,3';
Width := 128;
HeaderImage := 1;
end;
with (IUnknown(Columns.Add('Images')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_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] := EXGRIDLib_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
|
1175
|
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.Grid1AddColumn(ASender: TObject; Column : IColumn);
begin
with Grid1 do
begin
with Column do
begin
end;
end
end;
with Grid1 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\ExGrid\Sample\Access\misc.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
Columns.Item['ShipVia'].Position := 2;
EndUpdate();
end
|
1174
|
Does the control display images from database (ADO)

with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := False;
DrawGridLines := EXGRIDLib_TLB.exAllLines;
GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
DefaultItemHeight := 48;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Employees','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.mdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
with Columns.Item['Photo'] do
begin
Position := 1;
Width := 128;
end;
EndUpdate();
end
|
1173
|
Does the control display images from database (DAO)

with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := False;
DrawGridLines := EXGRIDLib_TLB.exAllLines;
GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
DefaultItemHeight := 48;
with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.36'))) as DAO_TLB.PrivDBEngine) do
begin
rs := OpenDatabase('C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.mdb',Null,Null,Null).OpenRecordset('Employees',Null,Null,Null);
end;
DataSource := (IUnknown(rs) as DAO_TLB.Recordset);
with Columns.Item['Photo'] do
begin
Position := 1;
Width := 128;
end;
EndUpdate();
end
|
1172
|
Is it possible to set from code, a column sort without being inserted in the sortbar

with Grid1 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\ExGrid\Sample\Access\misc.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
SortBarVisible := True;
Layout := 'singlesort="C1:1"';
EndUpdate();
end
|
1171
|
Is it possible to view all events the control fires
// Event event - Notifies the application once the control fires an event.
procedure TForm1.Grid1Event(ASender: TObject; EventID : Integer);
begin
with Grid1 do
begin
OutputDebugString( EventParam[-2] );
end
end;
with Grid1 do
begin
BeginUpdate();
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
with (IUnknown(Columns.Add('Tasks')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
FormatColumn := 'value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)';
Editor.EditType := EXGRIDLib_TLB.EditType;
end;
HeaderVisible := True;
with Items do
begin
h := AddItem('Project');
hChild := InsertItem(h,Null,'Task 1');
SelectItem[hChild] := True;
hChild := InsertItem(h,Null,'Task 2');
CellState[OleVariant(hChild),OleVariant(0)] := 1;
hChild := InsertItem(h,Null,'Task 3');
CellState[OleVariant(hChild),OleVariant(0)] := 1;
ExpandItem[h] := True;
end;
EndUpdate();
end
|
1170
|
How can I find all occurences of the giving value, within a column
with Grid1 do
begin
BeginUpdate();
Columns.Add('Default');
with (IUnknown(Columns.Add('Pos')) as EXGRIDLib_TLB.Column) do
begin
FormatColumn := '1 pos ''A-Z''';
Position := 0;
AllowSizing := False;
Width := 32;
Enabled := False;
end;
with (IUnknown(Columns.Add('Index')) as EXGRIDLib_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
|
1169
|
How can I prevent expanding/collapsing the child items

// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
procedure TForm1.Grid1BeforeExpandItem(ASender: TObject; Item : HITEM;var Cancel : OleVariant);
begin
with Grid1 do
begin
Cancel := Grid1.Items.ItemParent[Item];
end
end;
with Grid1 do
begin
BeginUpdate();
SingleSel := False;
Columns.Add('Default');
LinesAtRoot := EXGRIDLib_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
|
1168
|
How can I display the EBN bigger or smaller (thumb)

with Grid1 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[EXGRIDLib_TLB.exHSThumb] := $a000000;
Background[EXGRIDLib_TLB.exVSThumb] := $11000000;
ScrollBars := Integer(EXGRIDLib_TLB.exVScrollEmptySpace) Or Integer(EXGRIDLib_TLB.exHScrollEmptySpace) Or Integer(EXGRIDLib_TLB.exVScrollOnThumbRelease) Or Integer(EXGRIDLib_TLB.exHScrollOnThumbRelease) Or Integer(EXGRIDLib_TLB.exDisableBoth);
ScrollBySingleLine := True;
Columns.Add('Def');
with Items do
begin
AddItem(OleVariant(1));
AddItem(OleVariant(2));
AddItem(OleVariant(3));
end;
EndUpdate();
end
|
1167
|
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.Grid1AddGroupItem(ASender: TObject; Item : HITEM);
begin
// AddBar(Item,"Progress", #12/2/2017#,#12/2/2017#)
// DefineSummaryBars(Item,"", -3, "")
// Chart.ItemBackColor(Item) = color
with Grid1 do
begin
color := 14474460;
with Items do
begin
ItemDivider[Item] := -1;
CellValue[OleVariant(Item),OleVariant(1)] := OleVariant(CellCaption[OleVariant(Item),OleVariant(GroupItem[Item])]);
ItemBold[Item] := True;
ItemBackColor[Item] := color;
end;
end
end;
// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.Grid1AddItem(ASender: TObject; Item : HITEM);
begin
// AddBar(Item,"Task",#12/4/2017#,#12/10/2017#)
// ItemBar(Item,"", 514) = ItemToIndex(Item)
with Grid1 do
begin
with Items do
begin
end;
end
end;
with Grid1 do
begin
BeginUpdate();
with Columns do
begin
Add('C1');
Add('C2');
end;
LinesAtRoot := EXGRIDLib_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 := EXGRIDLib_TLB.SortAscending;
EndUpdate();
end
|
1166
|
How can I display an item of picture type

with Grid1 do
begin
BeginUpdate();
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
ScrollBySingleLine := False;
HeaderAppearance := EXGRIDLib_TLB.Etched;
HeaderHeight := 24;
(IUnknown(Columns.Add('Artikel')) as EXGRIDLib_TLB.Column).HTMLCaption := '<u>Artikel';
(IUnknown(Columns.Add('Waarde')) as EXGRIDLib_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)] := EXGRIDLib_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
|
1165
|
Dark mode

with Grid1 do
begin
BeginUpdate();
back := 65536;
fore := 16777215;
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg' +
'mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd' +
'r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA');
VisualAppearance.Add(2,'gBFLBCJwBAEHhEJAAEhABPMIQAAYAQGKIcBiAKBQAGaAoDDcMgwQwAAxjIKUEwsACEIrjKCYVgOHYYQjGMZwHCMIhiGwcAChEZYHgkMYmDAMUhSE78axHG6PY7kKZ4bi' +
'aKIqQLLEhSfJ0YyBECBZpfebIbjmIZMSLEIxDKItJSpCIaRgqWS6ahGO4JUbUFLQHT9IR4daIYRgEEBA');
VisualAppearance.Add(3,'gBFLBCJwBAEHhEJAAEhABUUIQAAYAQGKIcBiAKBQAGaAoDDcMgwQwAAxjIKUEwsACEIrjKCYVgOHYYQjGMZwGAsEwjAoYAChEaILgkMw2DBIQwgJIMEr/G6RZxjeL5Cj' +
'mG4nDhKMpybAcXxjBIYZJgOQpXb+PobTrNNLzfRFAxVAaWJikcZ4HpIAJNVLFdQ0XYMNSBISsBqrKiKcpeIIDWBZMbRZT1ZABCIZBpEW6LahENQwXrCN74DYkNTdKaxb' +
'buaaXLhGCYBgIA==');
HeaderAppearance := EXGRIDLib_TLB.Bump;
BackColor := back;
BackColorHeader := back;
BackColorLevelHeader := back;
BackColorSortBar := back;
BackColorSortBarCaption := back;
FilterBarBackColor := back;
FilterBarForeColor := fore;
ForeColor := fore;
ForeColorHeader := fore;
ForeColorSortBar := fore;
SelBackColor := fore;
SelForeColor := back;
Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $1000000;
Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
Background[EXGRIDLib_TLB.exToolTipAppearance] := $3000000;
Background[EXGRIDLib_TLB.exToolTipBackColor] := back;
Background[EXGRIDLib_TLB.exToolTipForeColor] := fore;
Background[EXGRIDLib_TLB.exSelBackColorFilter] := fore;
Background[EXGRIDLib_TLB.exSelForeColorFilter] := back;
Background[EXGRIDLib_TLB.exBackColorFilter] := back;
Background[EXGRIDLib_TLB.exForeColorFilter] := fore;
Background[EXGRIDLib_TLB.exSortBarLinkColor] := back;
Background[EXGRIDLib_TLB.exScrollSizeGrip] := back;
Description[EXGRIDLib_TLB.exFilterBarExclude] := '<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>';
EndUpdate();
end
|
1164
|
I have changed the font, but the item's height remains the same. What I am doing wrong

with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := False;
LoadXML('http://www.exontrol.net/testing.xml');
Font.Size := 22;
HeaderHeight := 42;
DefaultItemHeight := 36;
Items.ItemHeight[0] := Grid1.DefaultItemHeight;
EndUpdate();
end
|
1163
|
How can I specify the cell's outline, border or lines around, when the cell gets selected

with Grid1 do
begin
BeginUpdate();
AttachTemplate('handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}');
with VisualAppearance do
begin
Add(1,'gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wHI' +
'MQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCqO' +
'p6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZYn' +
'jUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgWY' +
'RoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=');
Add(2,'CP:1 -4 0 0 0');
end;
SelBackColor := $2000000;
SelForeColor := RGB(0,0,1);
FullRowSelect := EXGRIDLib_TLB.exColumnSel;
ShowFocusRect := False;
DefaultItemHeight := 24;
HeaderHeight := 24;
DrawGridLines := EXGRIDLib_TLB.exVLines;
Columns.Add('C1');
Columns.Add('C2');
with Items do
begin
CellValue[OleVariant(AddItem('Cell 1')),OleVariant(1)] := 'Cell 2';
CellValue[OleVariant(AddItem('Cell 3')),OleVariant(1)] := 'Cell 4';
end;
Items.SelectPos := OleVariant(1);
SelectColumnIndex := 1;
EndUpdate();
end
|
1162
|
How can I specify the cell's outline, border or lines around, when the item gets selected

with Grid1 do
begin
BeginUpdate();
AttachTemplate('handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}');
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wHI' +
'MQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCqO' +
'p6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZYn' +
'jUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgWY' +
'RoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=');
SelBackColor := $1000000;
SelForeColor := RGB(0,0,1);
ShowFocusRect := False;
DefaultItemHeight := 24;
HeaderHeight := 24;
DrawGridLines := EXGRIDLib_TLB.exVLines;
Columns.Add('C1');
Columns.Add('C2');
with Items do
begin
CellValue[OleVariant(AddItem('Cell 1')),OleVariant(1)] := 'Cell 2';
CellValue[OleVariant(AddItem('Cell 3')),OleVariant(1)] := 'Cell 4';
SelectPos := OleVariant(1);
end;
EndUpdate();
end
|
1161
|
How can I specify the cell's outline, border or lines around

with Grid1 do
begin
BeginUpdate();
AttachTemplate('handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}');
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wHI' +
'MQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCqO' +
'p6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZYn' +
'jUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgWY' +
'RoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=');
SelBackMode := EXGRIDLib_TLB.exTransparent;
ShowFocusRect := False;
DefaultItemHeight := 24;
HeaderHeight := 24;
DrawGridLines := EXGRIDLib_TLB.exVLines;
Columns.Add('C1');
Columns.Add('C2');
with Items do
begin
CellValue[OleVariant(AddItem('Cell 1')),OleVariant(1)] := 'Cell 2';
h := AddItem('Cell 2');
CellValue[OleVariant(h),OleVariant(1)] := 'Cell 3';
CellBackColor[OleVariant(h),OleVariant(1)] := $1000000;
end;
EndUpdate();
end
|
1160
|
Is it possible to highligth the match while a filter is applied

// AddColumn event - Fired after a new column has been added.
procedure TForm1.Grid1AddColumn(ASender: TObject; Column : IColumn);
begin
// Column.Def(17) = 1
end;
// FilterChange event - Occurs when filter was changed.
procedure TForm1.Grid1FilterChange(ASender: TObject; );
begin
with Grid1 do
begin
format := FormatABC('`value replace ''` + 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;
end
end;
with Grid1 do
begin
BeginUpdate();
DrawGridLines := EXGRIDLib_TLB.exVLines;
HeaderAppearance := EXGRIDLib_TLB.Etched;
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;
FilterBarPromptPattern := '1';
FilterBarPromptVisible := Integer(EXGRIDLib_TLB.exFilterBarCompact) Or Integer(EXGRIDLib_TLB.exFilterBarSingleLine) Or Integer(EXGRIDLib_TLB.exFilterBarVisible) Or Integer(EXGRIDLib_TLB.exFilterBarPromptVisible);
FilterBarPromptType := Integer(EXGRIDLib_TLB.exFilterPromptCaseSensitive) Or Integer(EXGRIDLib_TLB.exFilterPromptContainsAll);
EndUpdate();
end
|
1159
|
How can I replace the cell's context menu ( while edit mode is running )

// RClick event - Fired when right mouse button is clicked
procedure TForm1.Grid1RClick(ASender: TObject; );
begin
with Grid1 do
begin
OutputDebugString( 'Edit Mode: ' );
OutputDebugString( Editing );
with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.ContextMenu'))) as EXCONTEXTMENULib_TLB.ExContextMenu) do
begin
Items.ToString := 'Check[chk],[sep],Item 1,Item 2,Item 3,Popup(A,B,C)';
OutputDebugString( Select(Null,Null,Null) );
end;
end
end;
with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Flat;
with (IUnknown(Columns.Add('Column')) as EXGRIDLib_TLB.Column).Editor do
begin
EditType := EXGRIDLib_TLB.EditType;
Option[EXGRIDLib_TLB.exEditAllowContextMenu] := OleVariant(False);
end;
with Items do
begin
AddItem('Item 1');
AddItem('Item 2');
end;
EndUpdate();
end
|
1158
|
Is it possible to highlight the column's header once a filter is applied (sample 2)

with Grid1 do
begin
BeginUpdate();
with VisualAppearance do
begin
Add(1,'gBFLBCJwBAEHhEJAAEhABO8GACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwQgmNYDSBMcbwSA' +
'sXRYFocJ5gOT6AjKBA2UclEZpajiTY3ABUEgUS5oOBIACqariaQJAAiCRQGiYZyHKaRSwPBKFYDIIjbJheTIDChNVxUcDENQjJqLBIDRzbarye59YBfeBXdgmA4LQbDM' +
'RwNgMMQTDqKYbkOQZHbeGKAWTMEZzJj8cxTEqIaBhGTLfojSZMS7UGK1LLtMyHI6kP7sOiLfi2W4/W7XV72F79TzXIa2ZBuO57bhnAZ/VzGNj4PRNezfRqicjsGxcZwX' +
'g+TpQj0ew6gSOw7wSbozjsfYXi8PwMnSc52leHotl+MxjmoXh2nybxOH+SQtnYXx+D2P4vGMB56hQf5PCgBYeDwYBCEo1xggebgKH6IIDBYBgkiAQ5FgYPAhEIRgWGqD' +
'BoC4GoCiGCBYhGBQPAWdIQp0eIUiWCZigiJgqgqYpIioJQhmIMhBH0NxjEMag2g2Y4ImYOoOmOSJeDQNxXlOLR3ECUAQICA=');
Add(2,'gBFLBCJwBAEHhEJAAEhABgsHQAAYAQGKIcBiAKBQAGaAoDDYNwwQwAAxDAKcEwsACEIrjKCRShyCYZRrGUgRCKQahLEiTIhGUYJHgmK4tRoAUgxWCEExrAaQJjjeCQFi' +
'6LAtDhPMByfQEZQIGyjkgjNLUcSbG4AKgkCiXfpUAJVP7FcgSABEEigNIxToOU4jFgeCYLQKQRK2RC9GQGFCbLhpYKIahGTYWVheN5XXblez9P7ABQwKCcAwXBp7YIKA' +
'T4XBIdYdQ7IL4xGA0AJPFoJC7mOQ5XiYAIBAZ/RL0LCcbxHHafVboQj6JouD5PUDVNY1XBdPynI6CbLhWy6Dq4UZzPwzeBifSHfDjRoJcCZe71KY3GwSEboNA6Kp+QBH' +
'AmZoZjSPYIEiF47lOLJVnuYofBwJJHmaQoYj0MIRHeM4/m6cJ8B+fpBHQJ5SGKPYYH8OYMk+P5Bn4fxaAYZAvEIX4RgUWBGgCCAmAqApgkgNgOgMEYlGASoEkQeBWBaB' +
'ZhggZgagaYRoEwShWA6NZZAMQBAICA==');
end;
Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $1000000;
Background[EXGRIDLib_TLB.exHeaderFilterBarActive] := $2000000;
Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
HeaderHeight := 28;
BackColorHeader := RGB(255,255,255);
DrawGridLines := EXGRIDLib_TLB.exRowLines;
HeaderVisible := True;
with Columns do
begin
(IUnknown(Add('C1')) as EXGRIDLib_TLB.Column).DisplayFilterButton := True;
with (IUnknown(Add('C2')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
Filter := 'Item 2';
FilterType := EXGRIDLib_TLB.exFilter;
end;
(IUnknown(Add('C3')) as EXGRIDLib_TLB.Column).DisplayFilterButton := True;
end;
with Items do
begin
h := AddItem('Item 1');
CellValue[OleVariant(h),OleVariant(1)] := 'Item 2';
CellValue[OleVariant(h),OleVariant(2)] := 'Item 3';
h := AddItem('Item 4');
CellValue[OleVariant(h),OleVariant(1)] := 'Item 5';
CellValue[OleVariant(h),OleVariant(2)] := 'Item 6';
end;
ApplyFilter();
EndUpdate();
end
|
1157
|
How can I make the expand/collapse glyphs DPI aware

with Grid1 do
begin
size := 2;
BeginUpdate();
with VisualAppearance do
begin
Add(3,'gBFLBCJwBAEHhEJAAEhEGAUHQAAYAQGKIcBiAKBQAGaAoDDYOA4QwAAxDAKcEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBRfIUEghGyNZjgNzQcC' +
'QAI8T5IUgARBJIDSMY6DpOIxYHgmC4DEITNLxOK0EhRHCBZrgOCAYhqEY1Ro+dhPFYjVTMdK0LRtKy7Mq2aJmOpZDxWE7dZKpO5fbxXS67cr2fp/YBed4rfa7KTlOBKc' +
'RQRBEFQPDqPZBkORZHh2FoLRJKbgtHJmHYNQWhVyYBbNCyTI6lahpeuHBx1QaWWxjbCMEr6bpoWLbFi3Ha1UzrPa8b5vSw7Gr+HzYQTHGPXGqaYJdZrnea6B7+U5XUJr' +
'nSOZciYHwhAeR5HDK+JVGqKRRmScx5HyfRei+H5bmmcp4Fi8o/CGGJKGQKZUGoFQigUPIiCeSZXnyHB6l0SAJn8JxfkIeZ5CgXxjCCAhyB8QgIlAM4MlKAIcCaIBIGYG' +
'oGGEYhqBMMxgnICgRDUDQjESGwmAkWBuCqBoiHIVgkDQYgYESWg2E0YhohcJQigITg3CQSRyEyEYGGOWJwhQJD4FiFIMk0aJFGsIBkkOBJeDc+AchYJwJgIWhSgYZQpF' +
'IVoVGOGQ4l2EwIBWMhgDmDhThCEwkAiaJchKDhjhgZhsCUY4iFCEoZkiaYQmSGAWhWQhgDuDpTjCDQiEgchAg0IpJBoDoFiEKBqCaCAimgIguH8IZnkPUhcBcJg+hGJZ' +
'nloYJsiaKZKGa24YnWSR0CkKhCA2CxlCqColhAYpqEKER0DqVZ0A0ASAgA==');
Add(4,'gBFLBCJwBAEHhEJAAEhABAQCg6AADACAxRDgMQBQKAAzQFAYbBwHCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACjeQYJBCNYbTJAbqhYI' +
'gAR3HqQZABCCSQKkYx0HScRiwPBMFwGIQmaaicZoJCiN4DTZAcIBRDUIxpDR9bBeKw3KqVaZnWhaNpWXZlTzKdSxXisF67RZSdi/XgvF5XXblez9P69LwXe5mUrGbyVY' +
'ghCCIKgeG4dR7IMhyLDcKQXCCVW7aGSsOwbAqAXpdGAXTQdDyLJKnaZqOi6BjjA4rNbHGIYJb1XTRMa1LJuG5LJrOeZ3Xre4BLfh1VoFRpjWIYNY1QS7TLOczzfRdDxT' +
'iGVpkjCeJoD4Ng1hSRxiisVRKg8D4PkWZJznmPQ+F8Xx5guWpjHGWYMiYQodEaIRSCgU5KCSeh3naHB/iAAh9n8fwfgIeZ1CgXwjCCAhxl8AgIlAM4MlKAIcCaD54FYF' +
'oFmGCBmBaBIJigPJNgKSAoDSVC+BIbIYCUYYoiYKoJgkWIMlGCAglMaJZDWCYiFyFIJkkOJYhEJc7G4PYPCOaJshQJBjgiVIUgyDRokEaggGSQ4El4N1CBiFgnAmAhaF' +
'KFZlFkShUhWJRYmITg3GSQgFGuGBOGOFJkCSSQCDoNgkiOCY0hUJJmmmQhvhqZtYmUOQmBWIRvhgTpjjSbAjEiEgchBZgyEaBIhigWgegqIhIjoDILiACB5nTL5WnWRY' +
'OiSKYJnqGQ7CmOh2hqJ5OkYORxFyShKhSAxihkOomioY5YiqFIkFyTo1HkAxAEAgIA==');
Add(1,Grid1.FormatABC('`CP:3 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` + int(value*dpi) + ` ` + int(value*dpi)',OleVariant(size),Null,Null));
Add(2,Grid1.FormatABC('`CP:4 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` + int(value*dpi) + ` ` + int(value*dpi)',OleVariant(size),Null,Null));
end;
LinesAtRoot := EXGRIDLib_TLB.exGroupLinesAtRoot;
HasButtons := EXGRIDLib_TLB.exCustom;
HasButtonsCustom[False] := 16777216;
HasButtonsCustom[True] := 33554432;
Columns.Add('Column');
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');
end;
EndUpdate();
end
|
1156
|
Is it possible to highlight the column's header once a filter is applied (sample 1)

with Grid1 do
begin
BeginUpdate();
with VisualAppearance do
begin
Add(2,'gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgANJ' +
'0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8YN' +
'YuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4h' +
'hKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mgb' +
'hOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhWB' +
'MJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=');
Add(1,'CP:2 -8 -4 2 4');
end;
Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $1fefefe;
Background[EXGRIDLib_TLB.exHeaderFilterBarActive] := $1010101;
Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
HeaderHeight := 28;
BackColorHeader := RGB(255,255,255);
DrawGridLines := EXGRIDLib_TLB.exRowLines;
HeaderVisible := True;
with Columns do
begin
(IUnknown(Add('C1')) as EXGRIDLib_TLB.Column).DisplayFilterButton := True;
with (IUnknown(Add('C2')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
Filter := 'Item 2';
FilterType := EXGRIDLib_TLB.exFilter;
end;
(IUnknown(Add('C3')) as EXGRIDLib_TLB.Column).DisplayFilterButton := True;
end;
with Items do
begin
h := AddItem('Item 1');
CellValue[OleVariant(h),OleVariant(1)] := 'Item 2';
CellValue[OleVariant(h),OleVariant(2)] := 'Item 3';
h := AddItem('Item 4');
CellValue[OleVariant(h),OleVariant(1)] := 'Item 5';
CellValue[OleVariant(h),OleVariant(2)] := 'Item 6';
end;
ApplyFilter();
EndUpdate();
end
|
1155
|
How do I update itemcount and matchitemcount of the FilterBarCaption after I added the item using the AddItem method
// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
procedure TForm1.Grid1Click(ASender: TObject; );
begin
with Grid1 do
begin
Items.AddItem('new');
Refresh();
end
end;
with Grid1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Item')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterList := Integer(EXGRIDLib_TLB.exShowExclude) Or Integer(EXGRIDLib_TLB.exShowFocusItem) Or Integer(EXGRIDLib_TLB.exShowCheckBox) Or Integer(EXGRIDLib_TLB.exSortItemsAsc);
end;
with (IUnknown(Columns.Add('Pos')) as EXGRIDLib_TLB.Column) do
begin
AllowSizing := False;
AllowSort := False;
Width := 32;
FormatColumn := '1 apos ``';
Position := 0;
end;
with Items do
begin
AddItem('Item A');
AddItem('Item B');
AddItem('Item C');
end;
FilterBarCaption := '`<r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount + 1)' +
' + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )';
FilterBarPromptVisible := Integer(EXGRIDLib_TLB.exFilterBarCompact) Or Integer(EXGRIDLib_TLB.exFilterBarShowCloseOnRight) Or Integer(EXGRIDLib_TLB.exFilterBarShowCloseIfRequired) Or Integer(EXGRIDLib_TLB.exFilterBarCaptionVisible) Or Integer(EXGRIDLib_TLB.exFilterBarVisible) Or Integer(EXGRIDLib_TLB.exFilterBarPromptVisible);
EndUpdate();
end
|
1154
|
I can't get values in the column properly centered. What can be the problem

with Grid1 do
begin
BeginUpdate();
TreeColumnIndex := -1;
DrawGridLines := EXGRIDLib_TLB.exRowLines;
with (IUnknown(Columns.Add('Default')) as EXGRIDLib_TLB.Column) do
begin
Alignment := EXGRIDLib_TLB.CenterAlignment;
FormatColumn := 'ltrim(rtrim(value))';
end;
Items.AddItem('item 1 ');
Items.AddItem(' item 2');
Items.AddItem(' item 3 ');
EndUpdate();
end
|
1153
|
The Edit method does not work while ReadOnly property is exLocked and the first column is hidden. Is there any fix

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
procedure TForm1.Grid1DblClick(ASender: TObject; Shift : Smallint;X : Integer;Y : Integer);
begin
with Grid1 do
begin
var_ItemFromPoint := ItemFromPoint[-1,-1,c,hit];
FocusColumnIndex := c;
Edit(Null);
end
end;
with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
AutoEdit := False;
ReadOnly := EXGRIDLib_TLB.exLocked;
AutoSearch := True;
(IUnknown(Columns.Add('')) as EXGRIDLib_TLB.Column).Visible := False;
with (IUnknown(Columns.Add('Contains')) as EXGRIDLib_TLB.Column) do
begin
AutoSearch := EXGRIDLib_TLB.exContains;
Editor.EditType := EXGRIDLib_TLB.EditType;
end;
with Items do
begin
CellValue[OleVariant(AddItem(Null)),OleVariant(1)] := 'Tom Hanks';
CellValue[OleVariant(AddItem(Null)),OleVariant(1)] := 'Leonardo DiCaprio';
CellValue[OleVariant(AddItem(Null)),OleVariant(1)] := 'Will Smith';
CellValue[OleVariant(AddItem(Null)),OleVariant(1)] := 'Tom Cruise';
end;
EndUpdate();
end
|
1152
|
How can I enable the Undo/Redo feature

with Grid1 do
begin
BeginUpdate();
AllowUndoRedo := True;
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
HeaderAppearance := EXGRIDLib_TLB.Etched;
with (IUnknown(Columns.Add('P1')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
end;
with (IUnknown(Columns.Add('P2')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
end;
with Items do
begin
h := AddItem('Root');
InsertItem(h,Null,'Child 1');
InsertItem(h,Null,'Child 2');
ExpandItem[h] := True;
AddItem('Press CTRL + Z for Undo, and CTRL + Y for Redo');
end;
EndUpdate();
end
|
1151
|
The incremental search feature is no working for columns with editor assigned. What can be done

// DblClick event - Occurs when the user dblclk the left mouse button over an object.
procedure TForm1.Grid1DblClick(ASender: TObject; Shift : Smallint;X : Integer;Y : Integer);
begin
with Grid1 do
begin
Edit(Null);
end
end;
with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
AutoEdit := False;
AutoSearch := True;
with (IUnknown(Columns.Add('Contains')) as EXGRIDLib_TLB.Column) do
begin
AutoSearch := EXGRIDLib_TLB.exContains;
Editor.EditType := EXGRIDLib_TLB.EditType;
end;
with Items do
begin
AddItem('Tom Hanks');
AddItem('Leonardo DiCaprio');
AddItem('Will Smith');
AddItem('Tom Cruise');
end;
EndUpdate();
end
|
1150
|
Each item is representated by a key as string. Is it possible to have a drop down editor to display more information when using the item's key

with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
with (IUnknown(Columns.Add('Multiple-Columns Tree DropDownListType')) as EXGRIDLib_TLB.Column).Editor do
begin
EditType := EXGRIDLib_TLB.DropDownListType;
AddItem(0,'KR|Korea, Republic of',Null);
AddItem(1,'MO|Macao',Null);
AddItem(2,'SA|Saudi Arabia',Null);
AddItem(3,'EG|Egypt',Null);
AddItem(4,'GB|United Kingdom',Null);
AddItem(5,'GT|Guatemala',Null);
AddItem(6,'SR|Suriname',Null);
AddItem(7,'BM|Bermuda',Null);
end;
with Items do
begin
AddItem('EG');
AddItem('GB');
AddItem('BM');
end;
EndUpdate();
end
|
1149
|
My table includes codes/keys for items, can I display a drop down editor to include more information

with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
with (IUnknown(Columns.Add('Multiple-Columns DropDownListType')) as EXGRIDLib_TLB.Column).Editor do
begin
EditType := EXGRIDLib_TLB.DropDownListType;
DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
Option[EXGRIDLib_TLB.exDropDownColumnCaption] := 'City¦Coordinates¦State';
AddItem(0,'JV3|Jollyville¦3026N 09746W¦Texas',Null);
AddItem(1,'TMO|Altamont¦4021N 11017W¦Utah',Null);
AddItem(2,'IIM|Williamston¦4241N 08417W¦Michigan',Null);
AddItem(3,'IWN|Merrittstown¦3958N 07952W¦Pennsylvania',Null);
AddItem(4,'HOU|Houston¦2945N 09521W¦Texas',Null);
AddItem(5,'GSF|Gales Ferry¦4125N 07205W¦Connecticut',Null);
end;
with Items do
begin
AddItem('HOU');
AddItem('IIM');
AddItem('TMO');
end;
EndUpdate();
end
|
1148
|
How can I display and select from a multiple-columns tree editor

with Grid1 do
begin
BeginUpdate();
Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' +
'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' +
'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' +
'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
HeaderAppearance := EXGRIDLib_TLB.Etched;
with (IUnknown(Columns.Add('Multiple-Columns Tree DropDownListType')) as EXGRIDLib_TLB.Column).Editor do
begin
EditType := EXGRIDLib_TLB.DropDownListType;
DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
Option[EXGRIDLib_TLB.exDropDownColumnCaption] := 'Name¦Title¦City¦Phone';
Option[EXGRIDLib_TLB.exDropDownColumnWidth] := '224¦¦¦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;
with Items do
begin
AddItem(OleVariant(1));
AddItem(OleVariant(2));
AddItem(OleVariant(4));
end;
EndUpdate();
end
|
1147
|
Does you control support multiple-columns for a drop down editor

with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
with (IUnknown(Columns.Add('Multiple-Columns DropDownListType')) as EXGRIDLib_TLB.Column).Editor do
begin
EditType := EXGRIDLib_TLB.DropDownListType;
DropDownAutoWidth := EXGRIDLib_TLB.exDropDownEditorWidth;
AddItem(0,'Jollyville¦JV3¦3026N 09746W¦TX',Null);
AddItem(1,'Altamont¦TMO¦4021N 11017W¦UT',Null);
AddItem(2,'Williamston¦IIM¦4241N 08417W¦MI',Null);
AddItem(3,'Merrittstown¦IWN¦3958N 07952W¦PA',Null);
AddItem(4,'Houston¦HOU¦2945N 09521W¦TX',Null);
AddItem(5,'Gales Ferry¦GSF¦4125N 07205W¦CT',Null);
end;
with Items do
begin
InsertItem(0,'',OleVariant(1));
InsertItem(0,'',OleVariant(2));
InsertItem(0,'',OleVariant(4));
end;
EndUpdate();
end
|
1146
|
Is it possible to show the filterbar on top of the rows

with Grid1 do
begin
BeginUpdate();
FilterBarPromptVisible := EXGRIDLib_TLB.exFilterBarTop;
HeaderHeight := 24;
FilterBarHeight := HeaderHeight;
HeaderAppearance := EXGRIDLib_TLB.Flat;
DrawGridLines := EXGRIDLib_TLB.exAllLines;
GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
with (IUnknown(Columns.Add('Column')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterType := EXGRIDLib_TLB.exPattern;
Filter := 'B*';
end;
with (IUnknown(Columns.Add('Index')) as EXGRIDLib_TLB.Column) do
begin
FormatColumn := '1 index ``';
Position := 0;
Width := 48;
AllowSizing := False;
SortType := EXGRIDLib_TLB.SortNumeric;
Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
end;
with Items do
begin
AddItem('A.1');
AddItem('A.2');
AddItem('B.1');
AddItem('B.2');
AddItem('B.3');
AddItem('C');
end;
ApplyFilter();
EndUpdate();
end
|
1145
|
DragDrop (with visual effect)

// OLEDragDrop event - Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
procedure TForm1.Grid1OLEDragDrop(ASender: TObject; Data : IExDataObject;var Effect : Integer;Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
// SelectItem(InsertItem(i,, Data.GetData(1))) = True
with Grid1 do
begin
i := ItemFromPoint[-1,-1,c,hit];
with Items do
begin
ExpandItem[i] := True;
end;
end
end;
// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.Grid1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
// Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
with Grid1 do
begin
AllowedEffects := 1;
end
end;
with Grid1 do
begin
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABPUIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIaRjEEQDCKYcxHCaIBiGcaIfDEBIeSBHcgRbAcOQHGSZZBhGRJGj' +
'uKIbSrLICzBDUcRnGwAKQoaaaEomHwyAZOYwDAIoWhpKKCKjqWJKNb+XgAAJTES0RRVRTNAZ1YghGAQgIA==');
Background[EXGRIDLib_TLB.exListOLEDropPosition] := $1000000;
Background[EXGRIDLib_TLB.exDragDropBefore] := $0;
Background[EXGRIDLib_TLB.exDragDropAfter] := $ffffff;
OLEDropMode := EXGRIDLib_TLB.exOLEDropManual;
AutoDrag := EXGRIDLib_TLB.exAutoDragPositionAnyOnRight;
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
Indent := 16;
SelBackMode := EXGRIDLib_TLB.exTransparent;
Columns.Add('Default');
with Items do
begin
h := AddItem('Root');
InsertItem(h,Null,'Child 1');
InsertItem(h,Null,'Child 2');
ExpandItem[h] := True;
end;
OutputDebugString( 'You can:' );
OutputDebugString( 'A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)' );
OutputDebugString( 'B) right-click to re-arrange the item position inside the same control' );
OutputDebugString( 'This sample shows how you can insert the data being dropped as a child of the item being hovered.' );
end
|
1144
|
DragDrop (with no visual effect, hide item while drag and drop)

// OLEDragDrop event - Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
procedure TForm1.Grid1OLEDragDrop(ASender: TObject; Data : IExDataObject;var Effect : Integer;Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
// SelectItem(InsertItem(i,, Data.GetData(1))) = True
with Grid1 do
begin
i := ItemFromPoint[-1,-1,c,hit];
with Items do
begin
ExpandItem[i] := True;
end;
end
end;
// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.Grid1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
// Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
with Grid1 do
begin
AllowedEffects := 1;
end
end;
with Grid1 do
begin
Background[EXGRIDLib_TLB.exDragDropBefore] := $0;
Background[EXGRIDLib_TLB.exDragDropAfter] := $ffffff;
OLEDropMode := EXGRIDLib_TLB.exOLEDropManual;
AutoDrag := EXGRIDLib_TLB.exAutoDragPositionAnyOnRight;
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
Indent := 16;
SelBackMode := EXGRIDLib_TLB.exTransparent;
Columns.Add('Default');
with Items do
begin
h := AddItem('Root');
InsertItem(h,Null,'Child 1');
InsertItem(h,Null,'Child 2');
ExpandItem[h] := True;
end;
OutputDebugString( 'You can:' );
OutputDebugString( 'A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)' );
OutputDebugString( 'B) right-click to re-arrange the item position inside the same control' );
OutputDebugString( 'This sample shows how you can insert the data being dropped as a child of the item being hovered.' );
end
|
1143
|
DragDrop

// OLEDragDrop event - Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
procedure TForm1.Grid1OLEDragDrop(ASender: TObject; Data : IExDataObject;var Effect : Integer;Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
// SelectItem(InsertItem(i,, Data.GetData(1))) = True
with Grid1 do
begin
i := ItemFromPoint[-1,-1,c,hit];
with Items do
begin
ExpandItem[i] := True;
end;
end
end;
// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.Grid1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
// Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1)
with Grid1 do
begin
AllowedEffects := 1;
end
end;
with Grid1 do
begin
OLEDropMode := EXGRIDLib_TLB.exOLEDropManual;
AutoDrag := EXGRIDLib_TLB.exAutoDragPositionAnyOnRight;
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
Indent := 16;
SelBackMode := EXGRIDLib_TLB.exTransparent;
Columns.Add('Default');
with Items do
begin
h := AddItem('Root');
InsertItem(h,Null,'Child 1');
InsertItem(h,Null,'Child 2');
ExpandItem[h] := True;
end;
OutputDebugString( 'You can:' );
OutputDebugString( 'A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)' );
OutputDebugString( 'B) right-click to re-arrange the item position inside the same control' );
OutputDebugString( 'This sample shows how you can insert the data being dropped as a child of the item being hovered.' );
end
|
1142
|
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header (non-clickable)

with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
with Columns do
begin
Add('Item');
with (IUnknown(Add('Pos')) as EXGRIDLib_TLB.Column) do
begin
Position := 0;
Width := 32;
AllowSizing := False;
FormatColumn := '1 index ``';
AllowSort := False;
AllowDragging := False;
end;
end;
with Items do
begin
AddItem('Item A');
AddItem('Item B');
AddItem('Item C');
end;
EndUpdate();
end
|
1141
|
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header

with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
with Columns do
begin
Add('Item');
with (IUnknown(Add('Pos')) as EXGRIDLib_TLB.Column) do
begin
Position := 0;
Width := 32;
AllowSizing := False;
FormatColumn := '1 index ``';
AllowSort := False;
AllowDragging := False;
end;
end;
with Items do
begin
AddItem('Item A');
AddItem('Item B');
AddItem('Item C');
end;
EndUpdate();
end
|
1140
|
Is it possible to exclude the parent/child items when do the filtering, so to include only items that match the filter without any indentation

// FilterChange event - Occurs when filter was changed.
procedure TForm1.Grid1FilterChange(ASender: TObject; );
begin
with Grid1 do
begin
Indent := Grid1.FormatABC('value > 0 ? 18 : 0',Items.MatchItemCount,Null,Null);
end
end;
with Grid1 do
begin
BeginUpdate();
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
Indent := 18;
FilterInclude := EXGRIDLib_TLB.exMatchingItemsOnly;
DrawGridLines := EXGRIDLib_TLB.exVLines;
HeaderAppearance := EXGRIDLib_TLB.Flat;
with Columns do
begin
with (IUnknown(Add('Column')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterType := EXGRIDLib_TLB.exFilter;
FilterList := EXGRIDLib_TLB.exShowCheckBox;
Filter := 'C1';
end;
with (IUnknown(Add('Pos')) as EXGRIDLib_TLB.Column) do
begin
FormatColumn := '1 rindex ``';
Position := 0;
AllowSizing := False;
AllowDragging := False;
end;
end;
with Items do
begin
h := AddItem('R1');
h2 := InsertItem(h,Null,'S');
InsertItem(h2,Null,'C1');
InsertItem(h2,Null,'C2');
InsertItem(h,Null,'C1');
InsertItem(h,Null,'C2');
ExpandItem[h] := True;
h := AddItem('R2');
InsertItem(h,Null,'C1');
InsertItem(h,Null,'C2');
end;
ApplyFilter();
EndUpdate();
end
|
1139
|
How can I display the total/sum/aggregate in the same column, when the user groups by a column

// AddColumn event - Fired after a new column has been added.
procedure TForm1.Grid1AddColumn(ASender: TObject; Column : IColumn);
begin
with Grid1 do
begin
with Column do
begin
end;
end
end;
// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TForm1.Grid1AddGroupItem(ASender: TObject; Item : HITEM);
begin
with Grid1 do
begin
with Items do
begin
ItemDivider[Item] := -1;
ItemBackColor[Item] := Grid1.BackColorSortBar;
ItemHeight[Item] := Grid1.HeaderHeight;
CellMerge[OleVariant(Item),OleVariant(0)] := '1,2,3,4,5,7,8,9,10,11,12';
CellValue[OleVariant(Item),OleVariant(13)] := 'count(current,rec,1)';
CellValueFormat[OleVariant(Item),OleVariant(13)] := Integer(EXGRIDLib_TLB.exTotalField) Or Integer(EXGRIDLib_TLB.exHTML);
CellValue[OleVariant(Item),OleVariant(0)] := OleVariant(CellCaption[OleVariant(Item),OleVariant(GroupItem[Item])]);
FormatCell[OleVariant(Item),OleVariant(0)] := '`<b>` + value + `</b> <font ;7><off 3><fgcolor=808080>(` + %13 + `)`';
CellValue[OleVariant(Item),OleVariant(6)] := 'sum(current,all,dbl(%6))';
CellValueFormat[OleVariant(Item),OleVariant(6)] := Integer(EXGRIDLib_TLB.exTotalField) Or Integer(EXGRIDLib_TLB.exHTML);
CellForeColor[OleVariant(Item),OleVariant(6)] := $666666;
end;
end
end;
// Change event - Occurs when the user changes the cell's content.
procedure TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
with Grid1 do
begin
Refresh();
end
end;
with Grid1 do
begin
BeginUpdate();
LinesAtRoot := EXGRIDLib_TLB.exGroupLinesOutside;
Indent := 12;
ColumnAutoResize := False;
ScrollBySingleLine := True;
BackColorSortBar := RGB(240,240,240);
AutoDrag := EXGRIDLib_TLB.exAutoDragScroll;
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\ExGrid\Sample\Access\misc.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
SingleSort := False;
SortBarVisible := True;
AllowGroupBy := True;
HeaderHeight := 24;
with Columns do
begin
(IUnknown(Add('Count')) as EXGRIDLib_TLB.Column).Visible := False;
with Item['Freight'] do
begin
Def[EXGRIDLib_TLB.exCellBackColor] := OleVariant(Grid1.BackColorSortBar);
Def[EXGRIDLib_TLB.exHeaderBackColor] := Def[EXGRIDLib_TLB.exCellBackColor];
Def[EXGRIDLib_TLB.exCellPaddingRight] := OleVariant(4);
Def[EXGRIDLib_TLB.exCellPaddingLeft] := OleVariant(4);
HeaderBold := True;
AllowGroupBy := False;
FormatColumn := 'value format ``';
Alignment := EXGRIDLib_TLB.RightAlignment;
end;
with Item[OleVariant(0)] do
begin
AllowGroupBy := False;
Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
end;
Item['ShipCountry'].SortOrder := EXGRIDLib_TLB.SortAscending;
end;
ScrollBySingleLine := False;
with Items do
begin
LockedItemCount[EXGRIDLib_TLB.exBottom] := 1;
hL := LockedItem[EXGRIDLib_TLB.exBottom,0];
ItemHeight[hL] := 24;
ItemBold[hL] := True;
ItemBackColor[hL] := Grid1.BackColorSortBar;
CellValue[OleVariant(hL),OleVariant(6)] := 'sum(all,rec,dbl(%6))';
CellValueFormat[OleVariant(hL),OleVariant(6)] := Integer(EXGRIDLib_TLB.exTotalField) Or Integer(EXGRIDLib_TLB.exHTML);
CellHAlignment[OleVariant(hL),OleVariant(6)] := EXGRIDLib_TLB.RightAlignment;
FormatCell[OleVariant(hL),OleVariant(6)] := 'value format ``';
end;
EndUpdate();
end
|
1138
|
I would like to display a solid line between "root" items, and dotted lines (default) between child items. How can I do that

with Grid1 do
begin
BeginUpdate();
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
DrawGridLines := EXGRIDLib_TLB.exHLines;
GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhABMsIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIXRpFMbxAKQahLEiTIgGUYJHgmK4tQLHb7zGAABRDDSOIDnGQJXh' +
'aI4JQSMMQDGLAZxVFiPRhAWLpBh+PQATrOdLUfSjVwhBKAQEBA==');
with (IUnknown(Columns.Add('Default')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
end;
with (IUnknown(Columns.Add('Position')) as EXGRIDLib_TLB.Column) do
begin
FormatColumn := '((1 rindex ``) contains `.`) = 0';
Visible := False;
end;
with ConditionalFormats.Add('%C1',Null) do
begin
BackColor := $1e0e0e0;
end;
with Items do
begin
h := AddItem('Root 1');
InsertItem(h,Null,'Child 1');
InsertItem(h,Null,'Child 2');
InsertItem(h,Null,'Child 3');
ExpandItem[h] := True;
h := AddItem('Root 2');
InsertItem(h,Null,'Child 1');
InsertItem(h,Null,'Child 2');
h := AddItem('Root 3');
InsertItem(h,Null,'Child 1');
InsertItem(h,Null,'Child 2');
end;
EndUpdate();
end
|
1137
|
I can not center or align the cell's caption and icon, when it displays the hierarchy

with Grid1 do
begin
BeginUpdate();
Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' +
'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' +
'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' +
'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
with (IUnknown(Columns.Add('Tasks')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
end;
HeaderVisible := True;
with Items do
begin
h := AddItem('Project');
hChild := InsertItem(h,Null,'<img>1</img> Task (left)');
hChild := InsertItem(h,Null,'<c><img>2</img> Task (center)');
hChild := InsertItem(h,Null,'<r>Task (right) <img>3</img>');
ExpandItem[h] := True;
end;
EndUpdate();
end
|
1136
|
How do I mask for float/integer number

with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := True;
(IUnknown(Columns.Add('Type')) as EXGRIDLib_TLB.Column).Width := 32;
Columns.Add('Editor');
with Items do
begin
h := AddItem('Integer');
CellValue[OleVariant(h),OleVariant(1)] := '12';
with CellEditor[OleVariant(h),OleVariant(1)] do
begin
EditType := EXGRIDLib_TLB.EditType;
Numeric := EXGRIDLib_TLB.exInteger;
end;
h := AddItem('Integer (mask, group)');
CellValue[OleVariant(h),OleVariant(1)] := '10002';
FormatCell[OleVariant(h),OleVariant(1)] := 'value format `0||`';
with CellEditor[OleVariant(h),OleVariant(1)] do
begin
EditType := EXGRIDLib_TLB.MaskType;
Mask := ';;;float,digits=0,invalid=empty,warning=invalid character';
end;
h := AddItem('Integer (mask, no group)');
CellValue[OleVariant(h),OleVariant(1)] := '10002';
FormatCell[OleVariant(h),OleVariant(1)] := 'value format `0|0|`';
with CellEditor[OleVariant(h),OleVariant(1)] do
begin
EditType := EXGRIDLib_TLB.MaskType;
Mask := ';;;float,digits=0,grouping=,invalid=empty,warning=invalid character';
end;
h := AddItem('Float');
CellValue[OleVariant(h),OleVariant(1)] := '+12.34E+2';
with CellEditor[OleVariant(h),OleVariant(1)] do
begin
EditType := EXGRIDLib_TLB.EditType;
Numeric := EXGRIDLib_TLB.exFloat;
end;
h := AddItem('Float (no signs)');
CellValue[OleVariant(h),OleVariant(1)] := '12.34E-2';
with CellEditor[OleVariant(h),OleVariant(1)] do
begin
EditType := EXGRIDLib_TLB.EditType;
Numeric := Integer(EXGRIDLib_TLB.exDisableSigns) Or Integer(EXGRIDLib_TLB.exFloat);
end;
h := AddItem('Float-Integer');
CellValue[OleVariant(h),OleVariant(1)] := '+12.34';
with CellEditor[OleVariant(h),OleVariant(1)] do
begin
EditType := EXGRIDLib_TLB.EditType;
Numeric := EXGRIDLib_TLB.exFloatInteger;
end;
h := AddItem('Float-Integer (no signs)');
CellValue[OleVariant(h),OleVariant(1)] := '12.34';
with CellEditor[OleVariant(h),OleVariant(1)] do
begin
EditType := EXGRIDLib_TLB.EditType;
Numeric := Integer(EXGRIDLib_TLB.exDisableSigns) Or Integer(EXGRIDLib_TLB.exFloatInteger);
end;
h := AddItem('Float (mask,group)');
CellValue[OleVariant(h),OleVariant(1)] := '10002.34';
FormatCell[OleVariant(h),OleVariant(1)] := 'value format `2`';
with CellEditor[OleVariant(h),OleVariant(1)] do
begin
EditType := EXGRIDLib_TLB.MaskType;
Mask := ';;;float,invalid=empty,warning=invalid character';
end;
h := AddItem('Float (mask, no group)');
CellValue[OleVariant(h),OleVariant(1)] := '10002.34';
FormatCell[OleVariant(h),OleVariant(1)] := 'value format `2|0|`';
with CellEditor[OleVariant(h),OleVariant(1)] do
begin
EditType := EXGRIDLib_TLB.MaskType;
Mask := ';;;float,grouping=,invalid=empty,warning=invalid character';
end;
end;
EndUpdate();
end
|
1135
|
How do I set an extra data for each item
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.Grid1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with Grid1 do
begin
i := ItemFromPoint[-1,-1,c,hit];
OutputDebugString( i );
OutputDebugString( Items.ItemData[i] );
end
end;
with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := True;
Columns.Add('Default');
with Items do
begin
ItemData[AddItem('method 1')] := 'your extra data of method 1';
InsertItem(0,'your extra data of method 2','method 2');
end;
with Items do
begin
DefaultItem := AddItem('method 3');
ItemData[0] := 'your extra data of method 3';
end;
EndUpdate();
end
|
1134
|
I do not like to specify the item padding for every column I add. The question is how can I do it automatically

with Grid1 do
begin
BeginUpdate();
AttachTemplate('handle AddColumn(Column){Column{Def(48)=8;Def(49)=8;AllowDragging=False;AllowSizing = True}}');
HeaderAppearance := EXGRIDLib_TLB.Etched;
DrawGridLines := EXGRIDLib_TLB.exAllLines;
GridLineStyle := EXGRIDLib_TLB.exGridLinesVSolid;
with Columns do
begin
Add('Item');
with (IUnknown(Add('Pos')) as EXGRIDLib_TLB.Column) do
begin
Position := 0;
Width := 32;
AllowSizing := False;
FormatColumn := '1 index ``';
end;
end;
with Items do
begin
AddItem('Item A');
AddItem('Item B');
AddItem('Item C');
end;
EndUpdate();
end
|
1133
|
How can I change the Exclude field in the drop down filter window

with Grid1 do
begin
BeginUpdate();
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
HTMLPicture['exclude'] := 'gCJKBOI4NBQaBQAhQNJJIIhShQACERCAEAcRdrdcUQhQDOZCJJUBEjbbhJ7giIJOBILJziJvl4BeKibhDiIZOhFLB0KZvMx0O5hORlAB3owuNJuNZzMZhOBlFxvORnTb' +
'uHgaiIeKBMKhFf9fDIcEoPCAVEAlGI4HhBBYMCARCQVGg4IhVMCAWC2XY1Q7WJ8RBB0KROKYAYDBbzicjndD6fA/VsRHRJIhBkRbMYIGwGAQjA2fRYOEBoYjBFBx1ATC' +
'gCGQ8M7OTjSaJMDRDKIwYu5DrIMBgSAADKJTqhBhyRApAA3FAucZPPilokRJJFJxEVxCMCCgIA==';
Description[EXGRIDLib_TLB.exFilterBarExclude] := '<img>exclude</img>';
with (IUnknown(Columns.Add('Items')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := Integer(EXGRIDLib_TLB.exShowExclude) Or Integer(EXGRIDLib_TLB.exShowFocusItem) Or Integer(EXGRIDLib_TLB.exShowCheckBox);
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');
end;
EndUpdate();
end
|
1132
|
How can I change the Exclude field in the drop down filter window

with Grid1 do
begin
BeginUpdate();
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
Description[EXGRIDLib_TLB.exFilterBarExclude] := '<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>';
with (IUnknown(Columns.Add('Items')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := Integer(EXGRIDLib_TLB.exShowExclude) Or Integer(EXGRIDLib_TLB.exShowFocusItem) Or Integer(EXGRIDLib_TLB.exShowCheckBox);
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');
end;
EndUpdate();
end
|
1131
|
The grid lines looks different then before. What should I do

with Grid1 do
begin
BeginUpdate();
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
DrawGridLines := EXGRIDLib_TLB.exAllLines;
GridLineStyle := EXGRIDLib_TLB.exGridLinesGeometric;
with (IUnknown(Columns.Add('Tasks')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
end;
HeaderVisible := True;
with Items do
begin
h := AddItem('Project');
hChild := InsertItem(h,Null,'Task 1');
SelectItem[hChild] := True;
hChild := InsertItem(h,Null,'Task 2');
CellState[OleVariant(hChild),OleVariant(0)] := 1;
hChild := InsertItem(h,Null,'Task 3');
CellState[OleVariant(hChild),OleVariant(0)] := 1;
ExpandItem[h] := True;
end;
EndUpdate();
end
|
1130
|
Can I sort the column by check-state

with Grid1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Check')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellHasCheckBox] := OleVariant(True);
SortType := EXGRIDLib_TLB.exSortByState;
end;
with Items do
begin
AddItem(Null);
CellState[OleVariant(AddItem(Null)),OleVariant(0)] := 1;
CellState[OleVariant(AddItem(Null)),OleVariant(0)] := 1;
AddItem(Null);
end;
Columns.Item[OleVariant(0)].SortOrder := EXGRIDLib_TLB.SortAscending;
EndUpdate();
end
|
1129
|
Can I sort the column by image

with Grid1 do
begin
BeginUpdate();
Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' +
'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' +
'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' +
'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
with (IUnknown(Columns.Add('Image')) as EXGRIDLib_TLB.Column) do
begin
SortType := EXGRIDLib_TLB.exSortByImage;
end;
with Items do
begin
CellImage[OleVariant(AddItem(Null)),OleVariant(0)] := 3;
AddItem(Null);
CellImage[OleVariant(AddItem(Null)),OleVariant(0)] := 1;
CellImage[OleVariant(AddItem(Null)),OleVariant(0)] := 2;
end;
Columns.Item[OleVariant(0)].SortOrder := EXGRIDLib_TLB.SortAscending;
EndUpdate();
end
|
1128
|
Can I sort the column by value(numeric)

with Grid1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Value')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
FormatColumn := '`<fgcolor=808080><off 4><font ;6> ` + (1 index ``) + ` </font></off></fgcolor>` + value';
SortType := Integer(EXGRIDLib_TLB.exSortByValue) Or Integer(EXGRIDLib_TLB.SortNumeric);
end;
with Items do
begin
AddItem('1');
AddItem('10');
AddItem('2');
AddItem('20');
end;
Columns.Item[OleVariant(0)].SortOrder := EXGRIDLib_TLB.SortAscending;
EndUpdate();
end
|
1127
|
Can I sort a column by cell's state (checked, unchecked) rather than caption

with Grid1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Check')) as EXGRIDLib_TLB.Column) do
begin
with Editor do
begin
EditType := EXGRIDLib_TLB.CheckValueType;
Option[EXGRIDLib_TLB.exCheckValue2] := OleVariant(1);
end;
SortType := EXGRIDLib_TLB.SortNumeric;
end;
with Items do
begin
AddItem(OleVariant(True));
AddItem(OleVariant(False));
AddItem(OleVariant(False));
AddItem(OleVariant(True));
end;
Columns.Item[OleVariant(0)].SortOrder := EXGRIDLib_TLB.SortAscending;
EndUpdate();
end
|
1126
|
How do I get the item's auto-number, when using FormatColumn property, as CellValue gets empty

// SelectionChanged event - Fired after a new item has been selected.
procedure TForm1.Grid1SelectionChanged(ASender: TObject; );
begin
with Grid1 do
begin
with Items do
begin
OutputDebugString( 'pos: ' );
OutputDebugString( CellCaption[OleVariant(FocusItem),OleVariant(1)] );
OutputDebugString( 'rpos(1): ' );
OutputDebugString( CellCaption[OleVariant(FocusItem),OleVariant(2)] );
OutputDebugString( 'rpos(2): ' );
OutputDebugString( CellCaption[OleVariant(FocusItem),OleVariant(3)] );
OutputDebugString( 'apos: ' );
OutputDebugString( CellCaption[OleVariant(FocusItem),OleVariant(4)] );
OutputDebugString( 'index: ' );
OutputDebugString( CellCaption[OleVariant(FocusItem),OleVariant(5)] );
end;
end
end;
with Grid1 do
begin
BeginUpdate();
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
DrawGridLines := EXGRIDLib_TLB.exRowLines;
HeaderAppearance := EXGRIDLib_TLB.Etched;
with Columns do
begin
Add('Items');
with (IUnknown(Add('pos')) as EXGRIDLib_TLB.Column) do
begin
FormatColumn := '1 pos ``';
Position := 0;
Width := 48;
AllowSizing := False;
end;
with (IUnknown(Add('rpos(1)')) as EXGRIDLib_TLB.Column) do
begin
FormatColumn := '1 rpos ``';
Position := 1;
Width := 48;
AllowSizing := False;
end;
with (IUnknown(Add('rpos(2)')) as EXGRIDLib_TLB.Column) do
begin
FormatColumn := '1 rpos `.||A-Z`';
Position := 2;
Width := 48;
AllowSizing := False;
end;
with (IUnknown(Add('apos')) as EXGRIDLib_TLB.Column) do
begin
FormatColumn := '1 apos ``';
Position := 3;
Width := 48;
AllowSizing := False;
end;
with (IUnknown(Add('index')) as EXGRIDLib_TLB.Column) do
begin
FormatColumn := '1 index ``';
Position := 4;
Width := 48;
AllowSizing := False;
end;
end;
with Items do
begin
h := AddItem('Item 1');
InsertItem(h,Null,'Child 1');
hSel := InsertItem(h,Null,'Child 2');
ExpandItem[h] := True;
AddItem('Item 2');
AddItem('Item 3');
end;
EndUpdate();
Items.SelectItem[hSel] := True;
end
|
1125
|
How can I display UNICODE characters

with Grid1 do
begin
BeginUpdate();
with Font do
begin
Name := 'Arial Unicode';
Size := 22;
end;
HeaderVisible := False;
DefaultItemHeight := 48;
(IUnknown(Columns.Add('')) as EXGRIDLib_TLB.Column).Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
with Items do
begin
AddItem('Ӓӓ');
AddItem('ᦜᦝ;ᦞ');
AddItem('ɮɭ;ɯ');
AddItem('勳勴勵勶');
FormatCell[OleVariant(AddItem(OleVariant(Grid1.Version))),OleVariant(0)] := '(value lfind `UNICODE`) < 0 ? `<fgcolor=FF0000><b>!UNICODE!</b> version</fgcolor> required: ` + value : `` ';
end;
EndUpdate();
end
|
1124
|
How do I display the position of the item with 0-padding

with Grid1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Items')) as EXGRIDLib_TLB.Column).FormatColumn := '((1 apos ``) lpad `00`) + `. ` + value';
with Items do
begin
AddItem('Item A');
AddItem('Item B');
AddItem('Item C');
AddItem('Item D');
end;
EndUpdate();
end
|
1123
|
Can't get the +/- to be displayed on a divider item. What else can I do

with Grid1 do
begin
BeginUpdate();
LinesAtRoot := EXGRIDLib_TLB.exLinesAtRoot;
DrawGridLines := EXGRIDLib_TLB.exAllLines;
TreeColumnIndex := 0;
MarkSearchColumn := False;
FullRowSelect := EXGRIDLib_TLB.exColumnSel;
HeaderAppearance := EXGRIDLib_TLB.AppearanceEnum($fffffff8 Or Integer(EXGRIDLib_TLB.Bump) Or Integer(EXGRIDLib_TLB.Sunken));
with Columns do
begin
(IUnknown(Add('C1')) as EXGRIDLib_TLB.Column).Width := 32;
(IUnknown(Add('C2')) as EXGRIDLib_TLB.Column).FormatColumn := '1 index ``';
end;
with Items do
begin
h := AddItem('Cell 1');
CellSingleLine[OleVariant(h),OleVariant(1)] := EXGRIDLib_TLB.exCaptionWordWrap;
h := AddItem('This is bit of text merges all cells in the item (divider shows no +/-)');
ItemDivider[h] := 0;
ItemBackColor[h] := $f0f0f0;
ItemDividerLine[h] := EXGRIDLib_TLB.EmptyLine;
CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.CenterAlignment;
InsertItem(h,Null,'Child 1');
InsertItem(h,Null,'Child 2');
ExpandItem[h] := True;
h := AddItem('Cell 3');
h := AddItem('This is bit of text merges all cells in the item (merge shows +/-)');
ItemBackColor[h] := $f0f0f0;
CellMerge[OleVariant(h),OleVariant(0)] := OleVariant(1);
InsertItem(h,Null,'Child 3');
InsertItem(h,Null,'Child 4');
ExpandItem[h] := True;
end;
EndUpdate();
end
|
1122
|
How can I define a column of button type

// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TForm1.Grid1ButtonClick(ASender: TObject; Item : HITEM;ColIndex : Integer;Key : OleVariant);
begin
with Grid1 do
begin
with Items do
begin
OutputDebugString( CellValue[OleVariant(Item),OleVariant(ColIndex)] );
end;
end
end;
with Grid1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Button')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellHasButton] := OleVariant(True);
Def[EXGRIDLib_TLB.exCellButtonAutoWidth] := OleVariant(False);
FormatColumn := '``';
AllowSizing := False;
Width := 48;
end;
(IUnknown(Columns.Add('Second')) as EXGRIDLib_TLB.Column).FormatColumn := '` Item ` + 1 index ``';
with Items do
begin
AddItem('Button 1');
AddItem('Button 2');
AddItem('Button 3 ');
end;
EndUpdate();
end
|
1121
|
Is it possible to configure different colour/icon when there is a active filter

// FilterChange event - Occurs when filter was changed.
procedure TForm1.Grid1FilterChange(ASender: TObject; );
begin
with Grid1 do
begin
Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := FormatABC('value = 0 ? 0x1000001 : 0x10000FF ',OleVariant(Columns.Item[OleVariant(0)].FilterType),Null,Null);
end
end;
with Grid1 do
begin
BeginUpdate();
with VisualAppearance do
begin
RenderType := -16777216;
Add(1,'gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg' +
'mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd' +
'r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA');
end;
DrawGridLines := EXGRIDLib_TLB.exAllLines;
ShowFocusRect := False;
Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $1000001;
Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
HeaderAppearance := EXGRIDLib_TLB.Etched;
BackColorHeader := RGB(255,255,255);
HeaderVisible := True;
with (IUnknown(Columns.Add('Filter')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
AllowSort := False;
AllowDragging := False;
FilterList := EXGRIDLib_TLB.exShowCheckBox;
end;
with Items do
begin
AddItem('Item A');
AddItem('Item B');
AddItem('Item C');
end;
with Columns.Item[OleVariant(0)] do
begin
Filter := 'Item B';
FilterType := EXGRIDLib_TLB.exFilter;
end;
ApplyFilter();
EndUpdate();
end
|
1120
|
How can I display the type of the value the column display

with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
DrawGridLines := EXGRIDLib_TLB.exRowLines;
with (IUnknown(Columns.Add('Values')) as EXGRIDLib_TLB.Column) do
begin
Def[EXGRIDLib_TLB.exCellValueFormat] := OleVariant(1);
FormatColumn := 'value + ` <off 4><fgcolor=808080>type(` + type(%0) + `)`';
end;
with Items do
begin
AddItem(Null);
AddItem(OleVariant(-1));
AddItem('string');
AddItem('1/1/2001');
AddItem(OleVariant(2));
AddItem(OleVariant(True));
AddItem(OleVariant(12.34));
end;
EndUpdate();
end
|
1119
|
I want to create a conditional format for a column, verifying that the value of the cell is numeric, how can I do

with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
DrawGridLines := EXGRIDLib_TLB.exRowLines;
Columns.Add('Values');
with ConditionalFormats.Add('type(%0) in (2,3,4,5,18,19,20,21)',Null) do
begin
ForeColor := $ff;
Bold := True;
end;
ConditionalFormats.Add('type(%0) = 11',Null).ForeColor := $ff00;
ConditionalFormats.Add('type(%0) = 7',Null).ForeColor := $ff0000;
ConditionalFormats.Add('type(%0) in (0,1)',Null).BackColor := $f0f0f0;
with Items do
begin
AddItem(Null);
AddItem(OleVariant(-1));
AddItem('string');
AddItem('1/1/2001');
AddItem(OleVariant(2));
AddItem(OleVariant(True));
AddItem(OleVariant(12.34));
end;
EndUpdate();
end
|
1118
|
How can I assign a computed value on a different column based on other columns

// Change event - Occurs when the user changes the cell's content.
procedure TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
with Grid1 do
begin
FreezeEvents(True);
with Items do
begin
CellValue[OleVariant(Item),OleVariant(1)] := Grid1.FormatABC('int(255*sin(value/2))',OleVariant(NewValue),Null,Null);
CellValue[OleVariant(Item),OleVariant(2)] := Grid1.FormatABC('int(255*cos(value/2))',OleVariant(NewValue),Null,Null);
end;
FreezeEvents(False);
end
end;
with Grid1 do
begin
BeginUpdate();
SelBackMode := EXGRIDLib_TLB.exTransparent;
HeaderAppearance := EXGRIDLib_TLB.Etched;
DrawGridLines := EXGRIDLib_TLB.exRowLines;
with (IUnknown(Columns.Add('Value')) as EXGRIDLib_TLB.Column) do
begin
Editor.EditType := EXGRIDLib_TLB.SpinType;
Width := 64;
AllowSizing := False;
end;
(IUnknown(Columns.Add('Assign A')) as EXGRIDLib_TLB.Column).Def[EXGRIDLib_TLB.exCellBackColor] := OleVariant(16448250);
(IUnknown(Columns.Add('Assign B')) as EXGRIDLib_TLB.Column).Def[EXGRIDLib_TLB.exCellBackColor] := OleVariant(16448250);
var_Column := (IUnknown(Columns.Add('Computed')) as EXGRIDLib_TLB.Column);
with var_Column do
begin
Def[EXGRIDLib_TLB.exCellBackColor] := OleVariant(16448250);
ComputedField := '%1 + %2';
FormatColumn := 'value format ``';
Alignment := EXGRIDLib_TLB.RightAlignment;
HeaderAlignment := Alignment;
end;
ConditionalFormats.Add('%3 >= 0',Null).Bold := True;
with Items do
begin
AddItem(OleVariant(1989));
AddItem(OleVariant(2001));
AddItem(OleVariant(2017));
AddItem(OleVariant(2018));
AddItem(OleVariant(2019));
end;
EndUpdate();
end
|
1117
|
How can I get computed a value on a different column

with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
DrawGridLines := EXGRIDLib_TLB.exRowLines;
with (IUnknown(Columns.Add('Year')) as EXGRIDLib_TLB.Column) do
begin
Editor.EditType := EXGRIDLib_TLB.SpinType;
Width := 64;
AllowSizing := False;
end;
(IUnknown(Columns.Add('Easter')) as EXGRIDLib_TLB.Column).FormatColumn := 'date(dateS(''3/1/'' + %0) + ((1:=(((255 - 11 * (%0 mod 19)) - 21) mod 30) + 21) + (=:1 > 48 ? -1 : 0) + 6 - ((%0 + int(%0 / 4)) +' +
' =:1 + (=:1 > 48 ? -1 : 0) + 1) mod 7))';
with Items do
begin
AddItem(OleVariant(1989));
AddItem(OleVariant(2001));
AddItem(OleVariant(2017));
AddItem(OleVariant(2018));
AddItem(OleVariant(2019));
end;
EndUpdate();
end
|
1116
|
How can I prevent applying ConditionalFormats on a specified cell, for instance I am displaying a Total field, and I will like to have formatted in a different way (method 2)

// Change event - Occurs when the user changes the cell's content.
procedure TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
with Grid1 do
begin
Refresh();
end
end;
with Grid1 do
begin
BeginUpdate();
with ConditionalFormats.Add('(%0 >= 0)',Null) do
begin
Expression := '(0=type(%CD0)) and (%0 >= 0)';
Bold := True;
ForeColor := $ff;
OutputDebugString( 'ConditionalFormat.Valid' );
OutputDebugString( Valid );
end;
with (IUnknown(Columns.Add('Numbers')) as EXGRIDLib_TLB.Column) do
begin
with Editor do
begin
Numeric := EXGRIDLib_TLB.exInteger;
EditType := EXGRIDLib_TLB.SpinType;
end;
SortType := EXGRIDLib_TLB.SortNumeric;
end;
with Items do
begin
AddItem(OleVariant(100));
AddItem(OleVariant(-25));
AddItem(OleVariant(31));
AddItem(OleVariant(-48));
end;
with Items do
begin
h := AddItem('sum(all,dir,dbl(%0))');
SelectableItem[h] := False;
SortableItem[h] := False;
ItemBackColor[h] := $f0f0f0;
CellData[OleVariant(h),OleVariant(0)] := 'total';
CellValueFormat[OleVariant(h),OleVariant(0)] := Integer(EXGRIDLib_TLB.exTotalField) Or Integer(EXGRIDLib_TLB.exHTML);
FormatCell[OleVariant(h),OleVariant(0)] := '''Total: <b><fgcolor=0000FF>''+(value format ``)';
end;
EndUpdate();
end
|
1115
|
How can I prevent applying ConditionalFormats on a specified cell, for instance I am displaying a Total field, and I will like to have formatted in a different way (method 1)

// Change event - Occurs when the user changes the cell's content.
procedure TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
with Grid1 do
begin
Refresh();
end
end;
with Grid1 do
begin
BeginUpdate();
with ConditionalFormats.Add('%0 >= 0',Null) do
begin
Bold := True;
ForeColor := $ff;
ApplyTo := EXGRIDLib_TLB.exFormatToColumns;
end;
with (IUnknown(Columns.Add('Numbers')) as EXGRIDLib_TLB.Column) do
begin
with Editor do
begin
Numeric := EXGRIDLib_TLB.exInteger;
EditType := EXGRIDLib_TLB.SpinType;
end;
SortType := EXGRIDLib_TLB.SortNumeric;
end;
(IUnknown(Columns.Add('Total')) as EXGRIDLib_TLB.Column).Visible := False;
with Items do
begin
LockedItemCount[EXGRIDLib_TLB.exBottom] := 1;
h := LockedItem[EXGRIDLib_TLB.exBottom,0];
ItemDivider[h] := 1;
ItemDividerLine[h] := EXGRIDLib_TLB.EmptyLine;
ItemBackColor[h] := $f0f0f0;
CellValue[OleVariant(h),OleVariant(1)] := 'sum(all,dir,dbl(%0))';
CellValueFormat[OleVariant(h),OleVariant(1)] := Integer(EXGRIDLib_TLB.exTotalField) Or Integer(EXGRIDLib_TLB.exHTML);
CellHAlignment[OleVariant(h),OleVariant(1)] := EXGRIDLib_TLB.RightAlignment;
FormatCell[OleVariant(h),OleVariant(1)] := '''Total: <b><fgcolor=0000FF>''+(value format ``)';
end;
with Items do
begin
AddItem(OleVariant(100));
AddItem(OleVariant(-25));
AddItem(OleVariant(31));
AddItem(OleVariant(-48));
end;
EndUpdate();
end
|
1114
|
ADODB Requery sample

// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TForm1.Grid1ButtonClick(ASender: TObject; Item : HITEM;ColIndex : Integer;Key : OleVariant);
begin
with Grid1 do
begin
cmd := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Command'))) as ADODB_TLB.Command);
with cmd do
begin
ActiveConnection := (IUnknown((IUnknown(Grid1.DataSource) as ADODB_TLB.Recordset).ActiveConnection) as ADODB_TLB.Connection);
CommandText := 'INSERT INTO Orders (EmployeeID) VALUES(12345)';
CommandType := 1;
Execute(Null,Null,Null);
end;
(IUnknown(DataSource) as ADODB_TLB.Recordset).Requery(Null);
end
end;
// Error event - Fired when an internal error occurs.
procedure TForm1.Grid1Error(ASender: TObject; Error : Integer;Description : WideString);
begin
with Grid1 do
begin
OutputDebugString( Description );
end
end;
with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
ColumnAutoResize := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Select * From Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',1,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
ConditionalFormats.Add('%1=12345',Null).BackColor := $f0f0f0;
with Items do
begin
LockedItemCount[EXGRIDLib_TLB.exTop] := 1;
h := LockedItem[EXGRIDLib_TLB.exTop,0];
ItemDivider[h] := 0;
CellHasButton[OleVariant(h),OleVariant(0)] := True;
CellValue[OleVariant(h),OleVariant(0)] := 'Requery (add a new record, using ADODB.Command)';
CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.CenterAlignment;
end;
EndUpdate();
end
|
1113
|
I am using DetectAddNew property, but no new items is added when AddNew is performed

// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TForm1.Grid1ButtonClick(ASender: TObject; Item : HITEM;ColIndex : Integer;Key : OleVariant);
begin
with Grid1 do
begin
with (IUnknown(DataSource) as ADODB_TLB.Recordset) do
begin
AddNew('EmployeeID',OleVariant(123));
Update(Null,Null);
end;
end
end;
// Error event - Fired when an internal error occurs.
procedure TForm1.Grid1Error(ASender: TObject; Error : Integer;Description : WideString);
begin
with Grid1 do
begin
OutputDebugString( Description );
end
end;
with Grid1 do
begin
BeginUpdate();
HeaderAppearance := EXGRIDLib_TLB.Etched;
ColumnAutoResize := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',1,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
with Items do
begin
LockedItemCount[EXGRIDLib_TLB.exTop] := 1;
h := LockedItem[EXGRIDLib_TLB.exTop,0];
ItemDivider[h] := 0;
CellHasButton[OleVariant(h),OleVariant(0)] := True;
CellValue[OleVariant(h),OleVariant(0)] := 'AddNew';
CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.CenterAlignment;
end;
DetectAddNew := True;
DetectDelete := True;
EndUpdate();
end
|
1112
|
I am skinning the control's header-bar, but the background of the header-bar is shown on each item in the filter-bar drop down panel. What can I do

with Grid1 do
begin
BeginUpdate();
with VisualAppearance do
begin
Add(1,'gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxRDgMQBQKAAzQFAYcBqGqGAAGQZxYgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHL' +
'UXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQGhsCYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU8lORLUi+M4zSBPcZVTRtGShPDBK' +
'TjMKKYgkG4lVpRNa0PC1GTzQ6mazkKQLRADDIDVbAeL3LiMBy9LyLLItQALByua5mWhbcZyBCOPgBTrRb5zO58FjuTK7YLjMB7NrUNYtFaUMy2OpOCADIaecTNcaWLxP' +
'F2MY1HWYxVj2Jw3DuRJonKYBgggSRAlIYw6B0ThGFgPAkFUDAhBMfZRiGNAkFECZnm4YQdneJwqnsSQrGAAhWAIJBJBIQgFCQIBiEIAglgqYo0i4V4MEgRI9gSToYFSb' +
'4Fk6Y4+BmBZhFOJgTC8TBogQAArgqco4muCZOkOMJtgmYpIjYKg7GKE4uCUK4AAKKg2DwI4DiCZw5k6KJ2D6D4OHiag4DwIxiiQAArAqMosnEPBPAOIhOg+DozjIJ4PG' +
'SY4iEwPAkhKLhHUUSQsnKFCnkYU9MjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDyaI' +
'CokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tEs' +
'HJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQgp' +
'DOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAAM' +
'R1EOZxWi+bx7HcWQ8msfRYnnDhQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARViHH4' +
'HQOYmxuCpF2MsecEQVBvGQCcIQvA6i2CAAIARAQ=');
Add(2,'gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzQFAYcBqGqGAAGQZxYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMwwDhEIwjHCEEhsGIbJAGQBJCjWGodQLOEgzNC' +
'0IxNFCQILhEZJADKII8TTOU5UPRESwTE4cKBmKhQCo2NpKR7VUTxCKQahLLivoCjBT8EzHMqtIzrCA6MpaP4pQjKcqwHJ8YyHEi0ZrjazKaj6T5AXDUcaWbbNVx3PK3a' +
'ioOpLZrqOZZYzYFoABTuJzPMSyIhxXD8cweaZvSpLExVYK9BY3PbKMgxC77QgTIpDaQMNS6PjtF43PAALLFUaNYzoOKzABMHATBIXAYJCwIIR5G7ID4BbQcCQAHL9DBa' +
'EEIAEEISgGhMGZQmocgymmIRQkIEQ2BcGgbEIRQci8XaMBqTRVgSAZHG+S5pnOep+D6f4vjec5zn0fpfmgBgAH6TRoBYBoAh+eAmAiAgPFgNArgOQpIESdoEmCOAOAqB' +
'YfFGAgaEaBgYHYFYFmIB5UiGCJUgKCgmgeYoHk4BgCmKRQiCwApgHgYgyH8B54lQU4NkMeJlBoDgjkiXBTg0R54iYIR+koeQVBoKpkgkChKhEJBkF4SFEjkDgJhFQoeE' +
'mDJlBeehUhWJQJGIXoICWOQ6FeFIlhkfhlDsSJpiQVoamaSY2G6G5nAmRhpCOH5pkwVYdmeCZmHqHpnkmdhzhmaAIFiax8AABAEICA==');
end;
BackColorHeader := $1000000;
ForeColorHeader := RGB(128,128,128);
Background[EXGRIDLib_TLB.exHeaderFilterBarButton] := $2000000;
Background[EXGRIDLib_TLB.exBackColorFilter] := $ffffff;
Background[EXGRIDLib_TLB.exForeColorFilter] := $10000;
Background[EXGRIDLib_TLB.exSelBackColorFilter] := $1ff8000;
Background[EXGRIDLib_TLB.exSelForeColorFilter] := $f0f0f0;
Background[EXGRIDLib_TLB.exCursorHoverColumn] := $ffffffff;
HeaderHeight := 24;
BackColorLevelHeader := BackColor;
with (IUnknown(Columns.Add('Filter')) as EXGRIDLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := Integer(EXGRIDLib_TLB.exShowExclude) Or Integer(EXGRIDLib_TLB.exShowFocusItem) Or Integer(EXGRIDLib_TLB.exShowCheckBox) Or Integer(EXGRIDLib_TLB.exSortItemsAsc);
Def[EXGRIDLib_TLB.exHeaderPaddingLeft] := OleVariant(2);
Def[EXGRIDLib_TLB.exHeaderPaddingRight] := OleVariant(2);
end;
with Items do
begin
AddItem('A');
AddItem('B');
AddItem('C');
AddItem('D');
end;
EndUpdate();
end
|
1111
|
How can I change the font for entire column (method 3)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.Grid1AddItem(ASender: TObject; Item : HITEM);
begin
with Grid1 do
begin
with Items do
begin
CellFont[OleVariant(Item),OleVariant(1)] := (IUnknown(Grid1.Columns.Item[OleVariant(1)].Data) as stdole_TLB.StdFont);
CellBold[OleVariant(Item),OleVariant(1)] := True;
CellForeColor[OleVariant(Item),OleVariant(1)] := $ff;
end;
end
end;
with Grid1 do
begin
BeginUpdate();
HeaderHeight := 24;
HeaderAppearance := EXGRIDLib_TLB.Etched;
Columns.Add('C1');
with (IUnknown(Columns.Add('C2')) as EXGRIDLib_TLB.Column) do
begin
HTMLCaption := '<b><font Tahoma;14>C2';
f := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('StdFont'))) as stdole_TLB.StdFont);
with f do
begin
Name := 'Tahoma';
Size := 11;
end;
Data := (IUnknown(f) as stdole_TLB.StdFont);
end;
with Items do
begin
CellValue[OleVariant(AddItem(OleVariant(10))),OleVariant(1)] := OleVariant(11);
CellValue[OleVariant(AddItem(OleVariant(12))),OleVariant(1)] := OleVariant(13);
end;
EndUpdate();
end
|
1110
|
How can I change the font for entire column (method 2)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TForm1.Grid1AddItem(ASender: TObject; Item : HITEM);
begin
with Grid1 do
begin
with Items do
begin
f := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('StdFont'))) as stdole_TLB.StdFont);
with f do
begin
Name := 'Tahoma';
Size := 11;
end;
CellFont[OleVariant(Item),OleVariant(1)] := (IUnknown(f) as stdole_TLB.StdFont);
CellBold[OleVariant(Item),OleVariant(1)] := True;
CellForeColor[OleVariant(Item),OleVariant(1)] := $ff;
end;
end
end;
with Grid1 do
begin
BeginUpdate();
HeaderHeight := 24;
HeaderAppearance := EXGRIDLib_TLB.Etched;
Columns.Add('C1');
(IUnknown(Columns.Add('C2')) as EXGRIDLib_TLB.Column).HTMLCaption := '<b><font Tahoma;14>C2';
with Items do
begin
CellValue[OleVariant(AddItem(OleVariant(10))),OleVariant(1)] := OleVariant(11);
CellValue[OleVariant(AddItem(OleVariant(12))),OleVariant(1)] := OleVariant(13);
end;
EndUpdate();
end
|
1109
|
How can I change the font for entire column (method 1)

with Grid1 do
begin
BeginUpdate();
with ConditionalFormats.Add('1',Null) do
begin
Bold := True;
ForeColor := $ff;
f := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('StdFont'))) as stdole_TLB.StdFont);
with f do
begin
Name := 'Tahoma';
Size := 11;
end;
Font := (IUnknown(f) as stdole_TLB.StdFont);
ApplyTo := EXGRIDLib_TLB.FormatApplyToEnum($1);
end;
HeaderHeight := 24;
HeaderAppearance := EXGRIDLib_TLB.Etched;
Columns.Add('C1');
(IUnknown(Columns.Add('C2')) as EXGRIDLib_TLB.Column).HTMLCaption := '<b><font Tahoma;14>C2';
with Items do
begin
CellValue[OleVariant(AddItem(OleVariant(10))),OleVariant(1)] := OleVariant(11);
CellValue[OleVariant(AddItem(OleVariant(12))),OleVariant(1)] := OleVariant(13);
end;
EndUpdate();
end
|
1108
|
I am using ExComboBox as an user editor, how can I display a different column

// UserEditorClose event - Fired the user editor is about to be opened.
procedure TForm1.Grid1UserEditorClose(ASender: TObject; Object : IDispatch;Item : HITEM;ColIndex : Integer);
begin
// Items.CellValue(Item,ColIndex) = Object.Select("OrderID")
end;
// UserEditorOleEvent event - Occurs when an user editor fires an event.
procedure TForm1.Grid1UserEditorOleEvent(ASender: TObject; Object : IDispatch;Ev : IOleEvent;var CloseEditor : WordBool;Item : HITEM;ColIndex : Integer);
begin
with Grid1 do
begin
OutputDebugString( Ev );
end
end;
// UserEditorOpen event - Occurs when an user editor is about to be opened.
procedure TForm1.Grid1UserEditorOpen(ASender: TObject; Object : IDispatch;Item : HITEM;ColIndex : Integer);
begin
// Object.Select("OrderID") = Me.Items.CellValue(Item,ColIndex)
end;
with Grid1 do
begin
BeginUpdate();
SortOnClick := EXGRIDLib_TLB.exNoSort;
with (IUnknown(Columns.Add('Exontrol.ComboBox')) as EXGRIDLib_TLB.Column).Editor do
begin
EditType := EXGRIDLib_TLB.UserEditorType;
UserEditor('Exontrol.ComboBox','');
with (IUnknown(UserEditorObject) as EXCOMBOBOXLib_TLB.ComboBox) do
begin
BeginUpdate();
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\ExGrid\Sample\Access\misc.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
Alignment := 0;
IntegralHeight := True;
MinHeightList := 128;
MinWidthList := 648;
HeaderHeight := 36;
AllowSizeGrip := True;
SingleEdit := True;
LabelColumnIndex := 7;
SearchColumnIndex := 0;
with Columns.Item[OleVariant(0)] do
begin
HeaderBold := True;
HTMLCaption := 'OrderID<br><fgcolor=808080>(search)';
end;
with Columns.Item[OleVariant(7)] do
begin
HeaderBold := True;
HTMLCaption := 'ShipName<br><fgcolor=808080>(display)';
Width := 128;
end;
UseTabKey := False;
EndUpdate();
end;
end;
DrawGridLines := EXGRIDLib_TLB.exRowLines;
TreeColumnIndex := -1;
DefaultItemHeight := 21;
with Items do
begin
h := AddItem('shows always the drop-down editor');
CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.CenterAlignment;
ItemDivider[h] := 0;
ItemDividerLineAlignment[h] := EXGRIDLib_TLB.DividerCenter;
SelectableItem[h] := False;
EnableItem[h] := False;
CellEditorVisible[OleVariant(AddItem(OleVariant(10248))),OleVariant(0)] := EXGRIDLib_TLB.exEditorVisible;
CellEditorVisible[OleVariant(AddItem(OleVariant(10249))),OleVariant(0)] := EXGRIDLib_TLB.exEditorVisible;
CellEditorVisible[OleVariant(AddItem(OleVariant(10250))),OleVariant(0)] := EXGRIDLib_TLB.exEditorVisible;
h := AddItem('shows the drop-down editor when user clicks it');
CellHAlignment[OleVariant(h),OleVariant(0)] := EXGRIDLib_TLB.CenterAlignment;
ItemDivider[h] := 0;
ItemDividerLineAlignment[h] := EXGRIDLib_TLB.DividerCenter;
SelectableItem[h] := False;
EnableItem[h] := False;
AddItem(OleVariant(10248));
AddItem(OleVariant(10249));
AddItem(OleVariant(10250));
end;
EndUpdate();
end
|
1107
|
The ItemHeight property is not working (method 2)

with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := False;
ScrollBySingleLine := True;
(IUnknown(Columns.Add('Column')) as EXGRIDLib_TLB.Column).Width := 128;
with Items do
begin
CellSingleLine[OleVariant(AddItem('This is a bit of text that should break the line')),OleVariant(0)] := EXGRIDLib_TLB.exCaptionWordWrap;
h := AddItem('');
ItemDivider[h] := 0;
SelectableItem[h] := False;
ItemDividerLineAlignment[h] := EXGRIDLib_TLB.DividerCenter;
ItemHeight[h] := 3;
CellSingleLine[OleVariant(AddItem('This is a bit of text that should break the line')),OleVariant(0)] := EXGRIDLib_TLB.exCaptionWordWrap;
end;
EndUpdate();
end
|
1106
|
The ItemHeight property is not working (method 1)

with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := False;
ScrollBySingleLine := True;
with (IUnknown(Columns.Add('Column')) as EXGRIDLib_TLB.Column) do
begin
Width := 128;
Def[EXGRIDLib_TLB.exCellSingleLine] := OleVariant(0);
end;
with Items do
begin
AddItem('This is a bit of text that should break the line');
h := AddItem('');
ItemDivider[h] := 0;
SelectableItem[h] := False;
ItemDividerLineAlignment[h] := EXGRIDLib_TLB.DividerCenter;
ItemMinHeight[h] := 3;
ItemMaxHeight[h] := 3;
AddItem('This is a bit of text that should break the line');
end;
EndUpdate();
end
|
1105
|
How do I add a total field locked at the bottom of the control

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TForm1.Grid1AddGroupItem(ASender: TObject; Item : HITEM);
begin
with Grid1 do
begin
with Items do
begin
ItemDividerLine[Item] := EXGRIDLib_TLB.EmptyLine;
FormatCell[OleVariant(Item),OleVariant(GroupItem[Item])] := 'value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`';
CellValue[OleVariant(Item),'Min'] := 'min(current,all,dbl(%6))';
CellValueFormat[OleVariant(Item),'Min'] := EXGRIDLib_TLB.exTotalField;
CellValue[OleVariant(Item),'Max'] := 'max(current,all,dbl(%6))';
CellValueFormat[OleVariant(Item),'Max'] := EXGRIDLib_TLB.exTotalField;
CellValue[OleVariant(Item),'Sum'] := 'sum(current,all,dbl(%6))';
CellValueFormat[OleVariant(Item),'Sum'] := EXGRIDLib_TLB.exTotalField;
ItemBackColor[Item] := $f0f0f0;
end;
end
end;
// Change event - Occurs when the user changes the cell's content.
procedure TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
with Grid1 do
begin
Refresh();
end
end;
with Grid1 do
begin
BeginUpdate();
HasLines := EXGRIDLib_TLB.exNoLine;
Description[EXGRIDLib_TLB.exColumnsFloatBar] := 'Show/Hide';
ColumnsFloatBarSortOrder := EXGRIDLib_TLB.SortAscending;
ColumnsFloatBarVisible := EXGRIDLib_TLB.exColumnsFloatBarVisibleIncludeCheckColumns;
ColumnAutoResize := False;
BackColorSortBar := RGB(240,240,240);
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\ExGrid\Sample\Access\misc.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
SingleSort := False;
SortBarVisible := True;
AllowGroupBy := True;
SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
with Columns do
begin
with (IUnknown(Add('Min')) as EXGRIDLib_TLB.Column) do
begin
Visible := False;
AllowDragging := False;
end;
var_Column := (IUnknown(Add('Max')) as EXGRIDLib_TLB.Column);
with var_Column do
begin
Visible := False;
Visible := False;
AllowDragging := False;
end;
var_Column1 := (IUnknown(Add('Sum')) as EXGRIDLib_TLB.Column);
with var_Column1 do
begin
Visible := False;
Visible := False;
AllowDragging := False;
end;
end;
with Columns.Item['Freight'] do
begin
FormatColumn := 'currency(value)';
Def[EXGRIDLib_TLB.exCellBackColor] := OleVariant(12895487);
Def[EXGRIDLib_TLB.exHeaderBackColor] := Def[EXGRIDLib_TLB.exCellBackColor];
HeaderBold := True;
AllowGroupBy := False;
Alignment := EXGRIDLib_TLB.RightAlignment;
end;
ScrollBySingleLine := False;
with Items do
begin
LockedItemCount[EXGRIDLib_TLB.exBottom] := 2;
hL := LockedItem[EXGRIDLib_TLB.exBottom,0];
ItemDivider[hL] := 0;
ItemHeight[hL] := 3;
ItemDividerLineAlignment[hL] := EXGRIDLib_TLB.DividerTop;
ItemDividerLine[hL] := EXGRIDLib_TLB.DoubleLine;
hL := LockedItem[EXGRIDLib_TLB.exBottom,1];
CellValue[OleVariant(hL),OleVariant(6)] := 'sum(all,rec,dbl(%6))';
CellValueFormat[OleVariant(hL),OleVariant(6)] := EXGRIDLib_TLB.exTotalField;
ItemHeight[hL] := 24;
ItemBold[hL] := True;
end;
Columns.Item['EmployeeID'].SortOrder := True;
EndUpdate();
end
|
1104
|
How can I add a total field, when I use grouping

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TForm1.Grid1AddGroupItem(ASender: TObject; Item : HITEM);
begin
with Grid1 do
begin
with Items do
begin
ItemDividerLine[Item] := EXGRIDLib_TLB.EmptyLine;
FormatCell[OleVariant(Item),OleVariant(GroupItem[Item])] := 'value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`';
CellValue[OleVariant(Item),'Min'] := 'min(current,all,dbl(%6))';
CellValueFormat[OleVariant(Item),'Min'] := EXGRIDLib_TLB.exTotalField;
CellValue[OleVariant(Item),'Max'] := 'max(current,all,dbl(%6))';
CellValueFormat[OleVariant(Item),'Max'] := EXGRIDLib_TLB.exTotalField;
CellValue[OleVariant(Item),'Sum'] := 'sum(current,all,dbl(%6))';
CellValueFormat[OleVariant(Item),'Sum'] := EXGRIDLib_TLB.exTotalField;
ItemBackColor[Item] := $f0f0f0;
end;
end
end;
// Change event - Occurs when the user changes the cell's content.
procedure TForm1.Grid1Change(ASender: TObject; Item : HITEM;ColIndex : Integer;var NewValue : OleVariant);
begin
with Grid1 do
begin
Refresh();
end
end;
with Grid1 do
begin
BeginUpdate();
HasLines := EXGRIDLib_TLB.exNoLine;
ColumnAutoResize := False;
BackColorSortBar := RGB(240,240,240);
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\ExGrid\Sample\Access\misc.accdb',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
SingleSort := False;
SortBarVisible := True;
AllowGroupBy := True;
Columns.Item[OleVariant(1)].SortOrder := True;
with Columns do
begin
(IUnknown(Add('Min')) as EXGRIDLib_TLB.Column).Visible := False;
(IUnknown(Add('Max')) as EXGRIDLib_TLB.Column).Visible := False;
(IUnknown(Add('Sum')) as EXGRIDLib_TLB.Column).Visible := False;
end;
with Columns.Item['Freight'] do
begin
Def[EXGRIDLib_TLB.exCellBackColor] := OleVariant(12895487);
Def[EXGRIDLib_TLB.exHeaderBackColor] := Def[EXGRIDLib_TLB.exCellBackColor];
HeaderBold := True;
AllowGroupBy := False;
end;
ScrollBySingleLine := False;
with Items do
begin
LockedItemCount[EXGRIDLib_TLB.exBottom] := 1;
hL := LockedItem[EXGRIDLib_TLB.exBottom,0];
ItemDivider[hL] := 0;
ItemHeight[hL] := 24;
ItemDividerLineAlignment[hL] := EXGRIDLib_TLB.DividerTop;
ItemDividerLine[hL] := EXGRIDLib_TLB.DoubleLine;
CellValue[OleVariant(hL),OleVariant(0)] := 'sum(all,rec,dbl(%6))';
CellValueFormat[OleVariant(hL),OleVariant(0)] := Integer(EXGRIDLib_TLB.exTotalField) Or Integer(EXGRIDLib_TLB.exHTML);
CellHAlignment[OleVariant(hL),OleVariant(0)] := EXGRIDLib_TLB.RightAlignment;
FormatCell[OleVariant(hL),OleVariant(0)] := '''Freight: <bgcolor=FFC4C4> ''+(value format ``) + ` `';
end;
EndUpdate();
end
|
1103
|
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeCheckColumns

with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := False;
HeaderAppearance := EXGRIDLib_TLB.Etched;
with Columns do
begin
Add('City');
(IUnknown(Add('Start')) as EXGRIDLib_TLB.Column).Visible := False;
(IUnknown(Add('End')) as EXGRIDLib_TLB.Column).Visible := False;
end;
Description[EXGRIDLib_TLB.exColumnsFloatBar] := 'Show/Hide';
ColumnsFloatBarSortOrder := EXGRIDLib_TLB.SortAscending;
ColumnsFloatBarVisible := EXGRIDLib_TLB.exColumnsFloatBarVisibleIncludeCheckColumns;
EndUpdate();
end
|
1102
|
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeHiddenColumn

with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := False;
HeaderAppearance := EXGRIDLib_TLB.Etched;
with Columns do
begin
Add('City');
(IUnknown(Add('Start')) as EXGRIDLib_TLB.Column).Visible := False;
(IUnknown(Add('End')) as EXGRIDLib_TLB.Column).Visible := False;
end;
Description[EXGRIDLib_TLB.exColumnsFloatBar] := 'Show';
ColumnsFloatBarVisible := EXGRIDLib_TLB.exColumnsFloatBarVisibleIncludeHiddenColumns;
ColumnsFloatBarSortOrder := EXGRIDLib_TLB.SortAscending;
EndUpdate();
end
|
1101
|
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeGroupByColumns

with Grid1 do
begin
BeginUpdate();
ColumnAutoResize := False;
HeaderAppearance := EXGRIDLib_TLB.Etched;
with Columns do
begin
Add('City');
Add('Start');
Add('End');
end;
AllowGroupBy := True;
SortBarVisible := True;
SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
BackColorSortBar := RGB(250,250,250);
Description[EXGRIDLib_TLB.exColumnsFloatBar] := 'Group-By';
ColumnsFloatBarVisible := EXGRIDLib_TLB.exColumnsFloatBarVisibleIncludeGroupByColumns;
ColumnsFloatBarSortOrder := EXGRIDLib_TLB.SortAscending;
Columns.Item['City'].SortOrder := EXGRIDLib_TLB.SortAscending;
EndUpdate();
end
|