Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема Graph.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
176 Кб
Скачать
☆

5. Кольори та палітри.

У модулі Graph оголошено наступні константи для позначення кольорів:

Black = 0; {чорний}

Вluе = 1; {синій}

Grееn = 2; { зелений }

Cyan = 3; {смарагдовий}

Red = 4; {червоний}

Magenta = 5; {малиновий}

Brown = 6; {коричневий}

LightGray = 7; {світло-сірий}

DarkGray = 8; { темно-сірий}

LightBlue = 9; {світло-блакитний}

LightGreen = 10; {ясно-зелений}

LightCyan = 11; {світло-смарагдовий}

LightRed = 12; {ясно-червоний}

LightMagenta = 13; {світло-малиновий}

Yellow = 14; {жовтий}

White = 15; {білий}

Для гнучкості роботи з кольорами вони об'єднуються в палітри.

Палітра - це структура даних, тип якої описаний наступним чином:

const MaxColors = 15;

type

PaletteType = record

Size: byte;

Colors : array[0..MaxColors] of shortint;

end.

Один з кольорів палітри є поточним кольором (за замовчуванням білий). Цим кольором процедури модуля Graph малюють лінії та геометричні фігури. Інший колір є поточним кольором фону (за замовчуванням - чорний). Палітри зручні для забезпечення швидкої зміни кольорів. Поточний колір вибирається з палітри процедурою SetColor, поточний колір фону процедурою GetВkColor шляхом вказання номера елемента масиву Colors, який містить код цього кольору. При будь-якій зміні кольору палітри всі місця на екрані, де цей колір використовується, будуть відразу змінені відповідно до нового значення кольору.

Процедура SetColor(Color : word). Встановлює поточний колір. Color - номер елемента масиву Colors, який містить значення активного кольору. SetColor(0) задає використання першого кольору палітри як поточного кольору. Параметр Color може приймати значення в діапазоні від 0 до 15, в залежності від використовуваного графічного драйвера і графічного режиму.

Процедура SetBkColor(Color : word). Встановлює поточний колір фону. Color - номер елемента масиву Colors, який містить значення поточного кольору фону.

Функція GetPaletteSize : word. Повертає кількість кольорів у палітрі для поточного графічного режиму.

Процедура SetAllPalette(var Р). Змінює всі кольори палітри на задані параметром Р. Параметр Р в описі процедури оголошений нетипізованим параметром. Перший його байт містить довжину палітри. Наступні n байтів кольори, які замінять поточні кольори палітри. Кожен колір може приймати значення від -1 до 15. Значення -1 не змінює попереднє значення запису. Припустимі кольори залежать від поточного графічного драйвера і поточного графічного режиму. Зміни, внесені в палітру, негайно висвітлюються на екрані. При будь-якій зміні кольору палітри всі місця на екрані, де цей колір використовується, будуть змінені відповідно до нового значення. Для параметру Р можна використовувати змінну, що має тип PaletteType, описаний вище.

Процедура GetPalette(var Р : PaletteType). У змінну Р типу PaletteType записує поточну палітру і її розмір.

Процедура SetPalette(n : word; Color : byte). Змінює в палітрі колір, який міститься в n-му елементі масиву Colors (див. опис типу PaletteType) на значення Color. SetPalette(0, Уellow) або SetPalette(0, 14) встановлює значення 14 (жовтий) першим кольором палітри. В залежності від поточного графічного драйвера і поточного графічного режиму параметр n може приймати значення від 0 до 15. Внесені у палітру зміни негайно висвітлюються на екрані.