Table of Contents

Custom icons

Replace any of the grid's built-in glyphs (sort arrows, filter funnel, expand/collapse triangles, pagination buttons, …) with your own bitmaps.

Overview

Grid.Icons is a collection of bitmap slots, one per built-in glyph. Each slot accepts a TTMSFNCBitmap. Slots left at nil keep their built-in vector icon.

Grid.Icons.SortAscendingIcon  := MyAscIcon;
Grid.Icons.SortDescendingIcon := MyDescIcon;
Grid.Icons.FilterIcon         := MyFilterIcon;
Grid.Icons.FilterActiveIcon   := MyFilterActiveIcon;
Grid.Icons.ExpandIcon         := MyExpandIcon;
Grid.Icons.CollapseIcon       := MyCollapseIcon;

Quick example

procedure TForm1.FormCreate(Sender: TObject);
begin
  Grid.Icons.SortAscendingIcon  := LoadBitmap('icons/up.png');
  Grid.Icons.SortDescendingIcon := LoadBitmap('icons/down.png');
  Grid.Icons.FilterIcon         := LoadBitmap('icons/funnel.png');
  Grid.Icons.FilterActiveIcon   := LoadBitmap('icons/funnel-active.png');
end;

Available slots

Sorting

Slot Used for
SortAscendingIcon Header indicator when the column is sorted ascending.
SortDescendingIcon Same, descending.
Grid.Icons.SortAscendingIcon  := BitmapContainer.FindBitmap('sort-asc');
Grid.Icons.SortDescendingIcon := BitmapContainer.FindBitmap('sort-desc');

Filtering

Slot Used for
FilterIcon The funnel button on each filterable column header.
FilterActiveIcon Variant shown when a filter is currently active on the column.
FilterClearIcon The "clear filter" button in the filter row.
FilterTypeIcon Drop-down arrow next to the filter type selector.
Grid.Icons.FilterIcon       := BitmapContainer.FindBitmap('filter');
Grid.Icons.FilterActiveIcon := BitmapContainer.FindBitmap('filter-active');
Grid.Icons.FilterClearIcon  := BitmapContainer.FindBitmap('filter-clear');
Grid.Icons.FilterTypeIcon   := BitmapContainer.FindBitmap('filter-type');

Tree / grouping

Slot Used for
ExpandIcon Triangle/plus shown on collapsed group headers.
CollapseIcon Same, when the group is expanded.
CloseIcon Close button on a header group.
Grid.Icons.ExpandIcon   := BitmapContainer.FindBitmap('expand');
Grid.Icons.CollapseIcon := BitmapContainer.FindBitmap('collapse');
Grid.Icons.CloseIcon    := BitmapContainer.FindBitmap('close');

Paging

Slot Used for
FirstPageIcon First-page button.
PreviousPageIcon Previous-page button.
NextPageIcon Next-page button.
LastPageIcon Last-page button.

Paging

Slot Used for
FirstPageIcon First-page button.
PreviousPageIcon Previous-page button.
NextPageIcon Next-page button.
LastPageIcon Last-page button.
Grid.Icons.FirstPageIcon    := BitmapContainer.FindBitmap('page-first');
Grid.Icons.PreviousPageIcon := BitmapContainer.FindBitmap('page-prev');
Grid.Icons.NextPageIcon     := BitmapContainer.FindBitmap('page-next');
Grid.Icons.LastPageIcon     := BitmapContainer.FindBitmap('page-last');

Loading bitmaps

TTMSFNCBitmap accepts PNG, JPEG, BMP, and SVG. Load from a file:

procedure TForm1.LoadFilterIcon;
var
  Bmp: TTMSFNCBitmap;
begin
  Bmp := TTMSFNCBitmap.Create;
  Bmp.LoadFromFile('icons/funnel.png');
  Grid.Icons.FilterIcon := Bmp;
end;

Or from a TTMSFNCBitmapContainer registered on the form:

Grid.Icons.FilterIcon := BitmapContainer.FindBitmap('funnel');

Resetting to defaults

Assigning nil falls back to the built-in vector icon. To restore a single slot:

Grid.Icons.FilterIcon := nil;

Combining sort, filter, and grouping icons in one pass

Replace all interactive feature icons at form startup from a single TTMSFNCBitmapContainer:

procedure TForm1.FormCreate(Sender: TObject);
begin
  { Sorting icons }
  Grid.Icons.SortAscendingIcon  := BitmapContainer.FindBitmap('sort-asc');
  Grid.Icons.SortDescendingIcon := BitmapContainer.FindBitmap('sort-desc');

  { Filter icons — active variant highlights columns with an applied filter }
  Grid.Icons.FilterIcon       := BitmapContainer.FindBitmap('filter');
  Grid.Icons.FilterActiveIcon := BitmapContainer.FindBitmap('filter-active');
  Grid.Icons.FilterClearIcon  := BitmapContainer.FindBitmap('filter-clear');

  { Tree / grouping icons }
  Grid.Icons.ExpandIcon   := BitmapContainer.FindBitmap('expand');
  Grid.Icons.CollapseIcon := BitmapContainer.FindBitmap('collapse');

  { Paging navigation }
  Grid.Icons.FirstPageIcon    := BitmapContainer.FindBitmap('page-first');
  Grid.Icons.PreviousPageIcon := BitmapContainer.FindBitmap('page-prev');
  Grid.Icons.NextPageIcon     := BitmapContainer.FindBitmap('page-next');
  Grid.Icons.LastPageIcon     := BitmapContainer.FindBitmap('page-last');
end;

Any slot left unassigned falls back to the built-in vector icon automatically — you only need to replace the slots you want to customize.

  • Grid.Icons — the icon collection.
  • Grid.BitmapContainer — registry of named bitmaps shared across the grid.

See also

  • Sorting — sort indicator icons appear in column headers.
  • Filtering — filter button and active-filter indicators.
  • Grouping — expand/collapse triangles in group rows.
  • Paging — first/prev/next/last navigation icons.