Как изменить стандартные наборы цветов в программе?

Начнем с того, что все видимые обьекты, создаваемые вами наследованием от TView имеют метод GetPalette. Переопределяя палитру мы получаем цвет из стандартной палитры... Стандартная палитра представляет собой строку символов, каждый символ которой представляет собой байт текстового атрибута, аналогичного переменной TextAttr модуля Crt.

TV имеет в своем распоряжении 3 палитры: CAppColor, CAppBlackWhite, CAppMonochrome. К сожалению, данные переменные описаны как константы, поэтому манипулирование ими невозможно.. Вот тут и поможет метод Application.GetPallette; Достаточно создать наследника от TApplication и перекрыть его метод GetPalette;

Пример
Function TApp.GetPalette:PPalette;
var S:String;
begin
 case WhatPalette of
   1:S:=MyPalette;
   2:S:=CAppColor;
   3:S:=CAppBlackWhite;
   4:S:=CAppMonochrome;
 end;
 {и кстати, что мешает нам сделать например S[22]:=#$8A ?-)))) }
 GetPalette:=@S;
end;