18.7.2. TColorGrid - выбор или отображение цвета

Компонент предназначен для выбора и/или отображения цветов из 16-цветной палитры. Выбирать/отображать можно два цвета: основной и фоновый. Основной выбирается щелчком левой кнопки мыши и отображается символами fg, фоновый выбирается правой кнопкой и отображается символами bg (если оба цвета совпадают, соответствующая клетка таблицы помечается символами fb).

Свойства компонента:

property BackgroundColor: TColor; | Содержит выбранный фоновый цвет
property BackgroundEnabled: Boolean; | Разрешает/запрещает выбор фонового цвета. Игнорируется, если clickEnablesColor имеет значение True
property Backgroundlndex: Integer; | Содержит индекс выбранного фонового цвета
property ClickEnablesColor: Boolean; | Разрешает/запрещает выбор цветов
type TGridOrdering = (gol6xl,go8x2, go4x4, go2x8, golxl6); property GridOrdering: TGridOrdering; | Определяет конфигурацию таблицы: первая цифра - количество столбцов, вторая - количество рядов
property ForegroundColor: TColor; | Содержит выбранный основной цвет
property ForegroundEnabled: Boolean; | Разрешает/запрещает выбор основного цвета. Игнорируется, если ClickEnablesColor имеет значение True
property Foregroundlndex: Integer; | Содержит индекс выбранного основного цвета
property Selection: Integer; | Содержит индекс последнего выбранного цвета

Индекс цвета - это число в диапазоне О... 15, указывающее номер соответствующей ячейки в порядке перехода от самых темных цветов к самым светлым: 0 - ячейка с черным цветом, 1 - с коричневым, ..., 15 - с белым цветом.

Пары свойств BackgroundEnabled - ClickEnablesColor И ForegroundEnabled - ClickEnablesColor запрещают выбор и отображение соответствующего цвета только в том случае, когда каждое из них имеет значение False. Однако даже в этом случае свойство selection хранит номер ячейки таблицы, по которой последний раз был произведен щелчок левой или правой кнопкой мыши. Это свойство изменяется до возникновения события от мыши и при необходимости может использоваться для выбора цвета без его отображения. С помощью метода

function ColorToIndex(AColor: TColor): Integer;

программа может получить индекс табличного цвета, наиболее близкого к цвету AColor. Событие

property OnChange: TNotifyEvent;

возникает только при разрешенном выборе/отображении соответствующего цвета.