Provides user-definable palette support to the GDI.
A palette is a user-defined set of colours, which is a subset of the full range of 24-bit colours. This allows users the advantages of having a low bpp colour mode whilst being able to specify the colours available in that mode. To give an example, the EColor16 mode provides a palette of 16 colours as it provides a mapping between an integer index and a TRgb colour (see the table EGA Low-colour constants). Only a palette of 16 colour enables you to change the palette. Palettes are also used to allow 24-bit bitmaps to be stored in a more compressed form by finding the actual number of different colours used in the bitmap, creating a palette to allow the mapping of these colours to a smaller index space, and encoding the bitmaps pixels using indexes to this new index space.
A palette has a size which is set at its creation and cannot be altered the number of entries in the palette. Each entry in a palette is a mapping between that entrys index and a TRgb value. Palette entries can be got and set at any time between the palettes creation and destruction. The GDIs palette support also provides functions to find the nearest palette colour to a requested TRgb colour.