Четвертый BORLAND С++ и его окружение

       

Класс Palette


Класс Palette инкапсулирует палитру цветов Windows, которая

может использоваться с битовыми массивами и DIB. TPalette позволяет вам нестроить таблицу цветов, привести в соответствие отдельные цвета, поместить палитру в буфер обмена Clipboard и т.д.

Построить объект TPalette можно непосредственно, задав атрибуты палитры, или косвенно, задав TPalette& или указатель на

структуру LOGPALETTE. При непосредственном построении палитры

создается новый объект с заданными атрибутами.

При косвенном создании палитры новый объект также создается,

но атрибуты копируются из указанного объекта. Вы можете создать

объект TPalette и из существующего описателя HPALETTE.

Обращаться к объекту TPalette можно через HPALETTE или логическую структуру LOGPALETTE. Для получения HPALETTE из объекта

TPalette используйте операцию HPALETTE с объектом TPalette в качестве параметра. Операция HPALETTE явно почти никогда не вызывается.

Функция GetObject для TPalette функционирует аналогично

соответствующей функции API Windows. TPalette инкапсулирует также

стандартные функции API для работы с палитрами. Функция GetNearestPaletteIndex приводит цвет в соответствие с записью палитры.



Эта функция имеет единственный параметр (объект TColot) и возвращает индексный номер ближайшего цвета палитры. Функция GetNumEntries не имеет параметров и возвращает число записей в таблице цветов палитры.

Получить значения из диапазона записей таблицы цветов можно

с помощью функции GetPaletteEntries. Эта функция работает аналогично соответствующей функции API Windows. С помощью функции SetPaletteEntries вы можете задать значения в диапазоне записей таблицы цветов. Для изменения размера палитры используется функция

ResizePalette, в параметре которой задается размер новой палитры.

SetPalette устанавливает указанную индексом запись палитры соответственно значению объекту PALETTEENTRY. Эта функция работает

аналогично функции API Windows ResizePalette.

Функция AnimatePalette позволяет вам заменить записи в таблице цветов палитры. В третьем параметре этой функции задается


указатель на массив объектов PALETTEENTRY. Записи, указанные двумя первыми объектами, занимаются значениями из массива.

Для своих объектов палитры вы можете использовать функцию

UnrealizePalette, которая приводит палитру в соответствие с текущей системной палитрой. Эта функция не имеет параметров и ведет

себя как соответствующая функция API Windows.

Функция ToClipboard позволяет поместить палитру в буфер обмена. В качестве параметра этой функции задается ссылка на объект

TClipboard. Так как эта функция фактически удаляет объект из приложения, для создания временного объекта следует использовать

конструктор TPalette.

Две функции Create TPalette вызываются из конструкторов TPalette. Второй параметр Create эквивалентен элементу peFlags

структуры PALETTEENTRY. Функции Create создают LOGPALETE с помощью таблицы цветов из передаваемого во втором параметре битового массива. Вы можете использовать Create для создания 2- 16- или

256-цветных битовых массивов.


Содержание раздела